2015-07-21 00:59:31 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
Add option to show/hide cursor.
diff --git a/main.c b/main.c index dc4002d..fe7537a 100644 --- a/main.c +++ b/main.c @@ -64,8 +64,8 @@ get_pair(Term *term, int row, int col) /* TODO: add support for A_INVISIBLE */ inverse = term->mode & M_REVERSE; - //~ if (term->mode & M_CURSORVIS) - //~ inverse = term->row == row && term->col == col ? !inverse : inverse; + if (term->mode & M_CURSORVIS) + inverse = term->row == row && term->col == col ? !inverse : inverse; cell = term->addr[row][col]; inverse = cell.attr & A_INVERSE ? !inverse : inverse; if (inverse) { @@ -129,7 +129,8 @@ render(Term *term, Font *font, GIF *gif, uint16_t delay) void convert_script(Term *term, const char *timing, const char *dialogue, - const char *mbf, const char *anim, float div, float max) + const char *mbf, const char *anim, float div, float max, + int cur) { FILE *ft; int fd; @@ -169,6 +170,8 @@ convert_script(Term *term, const char *timing, const char *dialogue, read(fd, &ch, 1); parse(term, ch); } + if (!cur) + term->mode &= ~M_CURSORVIS; i++; } render(term, font, gif, 0); @@ -194,7 +197,8 @@ help(char *name) " -f font File name of MBF font to use\n" " -o output File name of GIF output\n" " -d divisor Speedup, as in scriptreplay(1)\n" - " -m maxdelay Maximum delay, as in scriptreplay(1)\n\n" + " -m maxdelay Maximum delay, as in scriptreplay(1)\n" + " -c on|off Show/hide cursor\n\n" "timings: File generated by script(1)'s -t option\n" "dialogue: File generated by script(1)'s regular output\n" , name); @@ -210,13 +214,15 @@ main(int argc, char *argv[]) float d, m; char t[PATH_MAX]; char s[PATH_MAX]; + int c; Term *term; w = 80; h = 30; strncpy(f, "6x11.mbf", PATH_MAX); strncpy(o, "con.gif", PATH_MAX); d = 1.0; m = FLT_MAX; - while ((opt = getopt(argc, argv, "w:h:f:o:d:m:")) != -1) { + c = 1; + while ((opt = getopt(argc, argv, "w:h:f:o:d:m:c:")) != -1) { switch (opt) { case 'w': w = atoi(optarg); @@ -236,6 +242,12 @@ main(int argc, char *argv[]) case 'm': m = atof(optarg); break; + case 'c': + if (!strcmp(optarg, "on") || !strcmp(optarg, "1")) + c = 1; + else if (!strcmp(optarg, "off") || !strcmp(optarg, "0")) + c = 0; + break; default: help(argv[0]); return 1; @@ -249,7 +261,7 @@ main(int argc, char *argv[]) strncpy(t, argv[optind++], PATH_MAX); strncpy(s, argv[optind++], PATH_MAX); term = new_term(h, w); - convert_script(term, t, s, f, o, d, m); + convert_script(term, t, s, f, o, d, m, c); free(term); return 0; }