Subversion Repositories SvarDOS

Rev

Rev 1410 | Rev 1414 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1410 Rev 1412
Line 52... Line 52...
52
                     SCHEME_SCROLL = 0x70,
52
                     SCHEME_SCROLL = 0x70,
53
                     SCHEME_MSG    = 0x70,
53
                     SCHEME_MSG    = 0x70,
54
                     SCHEME_ERR    = 0x70;
54
                     SCHEME_ERR    = 0x70;
55
 
55
 
56
static unsigned char screenw, screenh;
56
static unsigned char screenw, screenh;
-
 
57
static unsigned char glob_monomode, glob_tablessmode;
57
 
58
 
58
static struct {
59
static struct {
59
    unsigned char from;
60
    unsigned char from;
60
    unsigned char to;
61
    unsigned char to;
61
    unsigned char statusbar;
62
    unsigned char statusbar;
Line 277... Line 278...
277
  if (uidirty.from > y) uidirty.from = y;
278
  if (uidirty.from > y) uidirty.from = y;
278
  if (uidirty.to < y+4) uidirty.to = y+4;
279
  if (uidirty.to < y+4) uidirty.to = y+4;
279
}
280
}
280
 
281
 
281
 
282
 
282
static unsigned char ui_confirm_if_unsaved(struct file *db) {
283
static unsigned char ui_confirm_if_unsaved(const struct file *db) {
283
  unsigned char r = 0;
284
  unsigned char r = 0;
284
  if (db->modflag == 0) return(0);
285
  if (db->modflag == 0) return(0);
285
 
286
 
286
  mdr_cout_cursor_hide();
287
  mdr_cout_cursor_hide();
287
 
288
 
Line 592... Line 593...
592
      }
593
      }
593
      eolfound = 0;
594
      eolfound = 0;
594
    }
595
    }
595
 
596
 
596
    /* append 8 spaces if tab char found */
597
    /* append 8 spaces if tab char found */
597
    if ((consumedbytes < len) && (buffptr[consumedbytes] == '\t')) {
598
    if ((consumedbytes < len) && (buffptr[consumedbytes] == '\t') && (glob_tablessmode == 0)) {
598
      consumedbytes++;
599
      consumedbytes++;
599
      if (line_append(db, "        ", 8) != 0) {
600
      if (line_append(db, "        ", 8) != 0) {
600
        goto IOERR;
601
        goto IOERR;
601
      }
602
      }
602
    }
603
    }
Line 659... Line 660...
659
    *tail = 0;
660
    *tail = 0;
660
    tail++;
661
    tail++;
661
 
662
 
662
    /* look at the arg now */
663
    /* look at the arg now */
663
    if (*arg == '/') {
664
    if (*arg == '/') {
-
 
665
      if (arg[1] == 't') { /* /t = do not expand tabs */
-
 
666
        glob_tablessmode = 1;
-
 
667
 
-
 
668
      } else if (arg[1] == 'm') { /* /m = force mono mode */
-
 
669
        glob_monomode = 1;
-
 
670
 
-
 
671
      } else {  /* help screen */
664
      const char far *self = mdr_dos_selfexe();
672
        const char far *self = mdr_dos_selfexe();
665
      unsigned short i;
673
        unsigned short i;
666
      if (self == NULL) self = "sved";
674
        if (self == NULL) self = "sved";
667
      for (i = 0; self[i] != 0; i++) {
675
        for (i = 0; self[i] != 0; i++) {
668
        if (self[i] == '\\') {
676
          if (self[i] == '\\') {
669
          self += i + 1;
677
            self += i + 1;
670
          i = 0;
678
            i = 0;
-
 
679
          }
-
 
680
        }
-
 
681
        mdr_coutraw_str(svarlang_str(1,3));
-
 
682
        mdr_coutraw_str(" [");
-
 
683
        mdr_coutraw_str(svarlang_str(1,4));
-
 
684
        mdr_coutraw_puts(" " PVER "]");
-
 
685
        mdr_coutraw_puts("Copyright (C) " PDATE " Mateusz Viste");
-
 
686
        mdr_coutraw_crlf();
-
 
687
        mdr_coutraw_str(svarlang_str(1,0)); /* usage: */
-
 
688
        mdr_coutraw_char(' ');
-
 
689
        while (*self != 0) {
-
 
690
          mdr_coutraw_char(*self);
-
 
691
          self++;
671
        }
692
        }
-
 
693
        mdr_coutraw_char(' ');
-
 
694
        mdr_coutraw_puts(svarlang_str(1,1)); /* args syntax */
-
 
695
        mdr_coutraw_crlf();
-
 
696
        mdr_coutraw_puts(svarlang_str(1,10)); /* /m */
-
 
697
        mdr_coutraw_puts(svarlang_str(1,11)); /* /t */
-
 
698
        return(-1);
672
      }
699
      }
673
      mdr_coutraw_str(svarlang_str(1,3));
-
 
674
      mdr_coutraw_str(" [");
-
 
675
      mdr_coutraw_str(svarlang_str(1,4));
-
 
676
      mdr_coutraw_puts(" " PVER "]");
-
 
677
      mdr_coutraw_puts("Copyright (C) " PDATE " Mateusz Viste");
-
 
678
      mdr_coutraw_crlf();
-
 
679
      mdr_coutraw_str(svarlang_str(1,0)); /* usage: */
-
 
680
      mdr_coutraw_char(' ');
-
 
681
      while (*self != 0) {
-
 
682
        mdr_coutraw_char(*self);
-
 
683
        self++;
700
      continue;
684
      }
-
 
685
      mdr_coutraw_char(' ');
-
 
686
      mdr_coutraw_puts(svarlang_str(1,1)); /* args syntax */
-
 
687
      return(-1);
-
 
688
    }
701
    }
689
 
702
 
690
    /* looks to be a filename */
703
    /* looks to be a filename */
691
    if (count == 10) {
704
    if (count == 10) {
692
      mdr_coutraw_puts(svarlang_str(0,12));
705
      mdr_coutraw_puts(svarlang_str(0,12));
Line 911... Line 924...
911
  }
924
  }
912
 
925
 
913
  /* parse argv (and load files, if any passed on) */
926
  /* parse argv (and load files, if any passed on) */
914
  if (parseargv(dbarr) != 0) return;
927
  if (parseargv(dbarr) != 0) return;
915
 
928
 
916
  if (mdr_cout_init(&screenw, &screenh)) {
929
  if ((mdr_cout_init(&screenw, &screenh) != 0) && (glob_monomode == 0)) {
917
    /* load color scheme if mdr_cout_init returns a color flag */
930
    /* load color scheme if mdr_cout_init returns a color flag */
918
    SCHEME_TEXT = 0x17;
931
    SCHEME_TEXT = 0x17;
919
    SCHEME_MENU = 0x70;
932
    SCHEME_MENU = 0x70;
920
    SCHEME_MENU_CUR = 0x6f;
933
    SCHEME_MENU_CUR = 0x6f;
921
    SCHEME_MENU_SEL = 0x66;
934
    SCHEME_MENU_SEL = 0x66;
Line 1141... Line 1154...
1141
    } else if ((k >= 0x20) && (k <= 0xff)) { /* "normal" character */
1154
    } else if ((k >= 0x20) && (k <= 0xff)) { /* "normal" character */
1142
      char c = k;
1155
      char c = k;
1143
      insert_in_line(db, &c, 1);
1156
      insert_in_line(db, &c, 1);
1144
 
1157
 
1145
    } else if (k == 0x009) { /* TAB */
1158
    } else if (k == 0x009) { /* TAB */
-
 
1159
      if (glob_tablessmode == 0) {
1146
      insert_in_line(db, "        ", 8);
1160
        insert_in_line(db, "        ", 8);
-
 
1161
      } else {
-
 
1162
        insert_in_line(db, "\t", 1);
-
 
1163
      }
1147
 
1164
 
1148
    } else if ((k >= 0x13b) && (k <= 0x144)) { /* F1..F10 */
1165
    } else if ((k >= 0x13b) && (k <= 0x144)) { /* F1..F10 */
1149
      curfile = k - 0x13b;
1166
      curfile = k - 0x13b;
1150
      db = select_slot(dbarr, curfile);
1167
      db = select_slot(dbarr, curfile);
1151
 
1168
 
Line 1211... Line 1228...
1211
            cursor_up(db);
1228
            cursor_up(db);
1212
          }
1229
          }
1213
          line_free(clipboard->prev);
1230
          line_free(clipboard->prev);
1214
          uidirty.from = 0;
1231
          uidirty.from = 0;
1215
          uidirty.to = 0xff;
1232
          uidirty.to = 0xff;
-
 
1233
          recompute_curline(db);
1216
        }
1234
        }
1217
      }
1235
      }
1218
 
1236
 
1219
    } else if (k == 0x016) { /* CTRL+V */
1237
    } else if (k == 0x016) { /* CTRL+V */
1220
      if (clipboard != NULL) {
1238
      if (clipboard != NULL) {
Line 1235... Line 1253...
1235
          cursor_down(db);
1253
          cursor_down(db);
1236
        }
1254
        }
1237
      }
1255
      }
1238
      uidirty.from = 0;
1256
      uidirty.from = 0;
1239
      uidirty.to = 0xff;
1257
      uidirty.to = 0xff;
-
 
1258
      recompute_curline(db);
1240
 
1259
 
1241
#ifdef DBG_UNHKEYS
1260
#ifdef DBG_UNHKEYS
1242
    } else { /* UNHANDLED KEY - TODO IGNORE THIS IN PRODUCTION RELEASE */
1261
    } else { /* UNHANDLED KEY - TODO IGNORE THIS IN PRODUCTION RELEASE */
1243
      char buff[4];
1262
      char buff[4];
1244
      const char *HEX = "0123456789ABCDEF";
1263
      const char *HEX = "0123456789ABCDEF";