リビジョン | f881433f40d82bffc5c2986250bafa0dffae7991 (tree) |
---|---|
日時 | 2019-11-19 20:16:22 |
作者 | IWAMOTO Kouichi <sue@iwmt...> |
コミッター | IWAMOTO Kouichi |
add new-line mode
@@ -62,6 +62,8 @@ int lin, col, attr; | ||
62 | 62 | int savelin, savecol, saveattr; |
63 | 63 | int scrtop, scrend; |
64 | 64 | |
65 | +int nlmode = FALSE; | |
66 | + | |
65 | 67 | int verbose = FALSE; |
66 | 68 | int keepgr = FALSE; |
67 | 69 |
@@ -150,6 +152,9 @@ char ***avp; | ||
150 | 152 | case 'm': |
151 | 153 | keepgr = TRUE; |
152 | 154 | break; |
155 | + case 'n': | |
156 | + nlmode = TRUE; | |
157 | + break; | |
153 | 158 | case 'v': |
154 | 159 | verbose = TRUE; |
155 | 160 | break; |
@@ -188,11 +193,12 @@ done: | ||
188 | 193 | void |
189 | 194 | usage() |
190 | 195 | { |
191 | - printf("Usage: %s [-gCOLSxLINES] [-k[ejs]] [-m] [-v] file ...\n", progname); | |
196 | + printf("Usage: %s [-gCOLSxLINES] [-k[ejs]] [-m] [-n] [-v] file ...\n", progname); | |
192 | 197 | printf("Options:\n"); |
193 | 198 | printf(" -g: set screen size (default: -g80x24)\n"); |
194 | 199 | printf(" -k: set input code (don't care if no kana exists)\n"); |
195 | 200 | printf(" -m: retain graphic renditions (reverse, underline)\n"); |
201 | + printf(" -n: new-line mode\n"); | |
196 | 202 | printf(" -v: verbose output\n"); |
197 | 203 | |
198 | 204 | } |
@@ -302,6 +308,9 @@ FILE *fp; | ||
302 | 308 | } else if (lin == lines) { |
303 | 309 | lin = lines - 1; |
304 | 310 | } |
311 | + if (nlmode) { | |
312 | + col = 0; | |
313 | + } | |
305 | 314 | break; |
306 | 315 | case '\t': /* tab */ |
307 | 316 | if (col < cols) |
@@ -442,7 +451,7 @@ csi(fp) | ||
442 | 451 | FILE *fp; |
443 | 452 | { |
444 | 453 | int c, i, j, k, n, np, p[10]; |
445 | - int leader, ich = '\0'; | |
454 | + int leader = '\0', ich = '\0'; | |
446 | 455 | cell *tmp; |
447 | 456 | |
448 | 457 | c = getc(fp); |
@@ -682,7 +691,22 @@ FILE *fp; | ||
682 | 691 | attr = saveattr; |
683 | 692 | break; |
684 | 693 | case 'h': /* set mode */ |
694 | + if (leader == '\0') { | |
695 | + for (i=0; i<np; i++) { | |
696 | + if (p[i] == 20) { | |
697 | + nlmode = TRUE; | |
698 | + } | |
699 | + } | |
700 | + } | |
701 | + break; | |
685 | 702 | case 'l': /* reset mode */ |
703 | + if (leader == '\0') { | |
704 | + for (i=0; i<np; i++) { | |
705 | + if (p[i] == 20) { | |
706 | + nlmode = FALSE; | |
707 | + } | |
708 | + } | |
709 | + } | |
686 | 710 | break; |
687 | 711 | default: |
688 | 712 | break; |