login

<     >

2015-07-21 21:45:57 (UTC-03:00)

Marcel Rodrigues <marcelgmr@gmail.com>

Make progress bar optional.

diff --git a/main.c b/main.c
index f5a9072..c412824 100644
--- a/main.c
+++ b/main.c
@@ -174,24 +174,28 @@ convert_script(Term *term, const char *timing, const char *dialogue,
     rewind(ft);
     /* discard first line of dialogue */
     do read(fd, &ch, 1); while (ch != '\n');
-    pb[0] = '[';
-    pb[pbcols-1] = ']';
-    pb[pbcols] = '\0';
-    for (i = 1; i < pbcols-1; i++)
-        pb[i] = '-';
+    if (pbcols) {
+        pb[0] = '[';
+        pb[pbcols-1] = ']';
+        pb[pbcols] = '\0';
+        for (i = 1; i < pbcols-1; i++)
+            pb[i] = '-';
+        lastdone = 0;
+        printf("%s\r[", pb);
+    }
     i = 0;
     d = 0;
-    lastdone = 0;
-    printf("%s\r[", pb);
     while (fscanf(ft, "%f %d\n", &t, &n) == 2) {
         d += ((t > max ? max : t) * 100.0 / div);
-        done = i * (pbcols-1) / c;
-        if (done > lastdone) {
-            while (done > lastdone) {
-                putchar('#');
-                lastdone++;
+        if (pbcols) {
+            done = i * (pbcols-1) / c;
+            if (done > lastdone) {
+                while (done > lastdone) {
+                    putchar('#');
+                    lastdone++;
+                }
+                fflush(stdout);
             }
-            fflush(stdout);
         }
         if (i && d > 5) {
             render(term, font, gif, (uint16_t) (d + 0.5));
@@ -233,7 +237,8 @@ help(char *name)
         "  -d divisor   Speedup, as in scriptreplay(1)\n"
         "  -m maxdelay  Maximum delay, as in scriptreplay(1)\n"
         "  -c on|off    Show/hide cursor\n"
-        "  -v           Verbose mode\n"
+        "  -v           Verbose mode (show parser logs)\n"
+        "  -q           Quiet mode (don't show progress bar)\n"
     , name);
 }
 
@@ -248,6 +253,7 @@ main(int argc, char *argv[])
     char *t;
     char *s;
     int c;
+    int q;
     int ret;
     Term *term;
     struct winsize size;
@@ -259,7 +265,8 @@ main(int argc, char *argv[])
     o = "con.gif";
     d = 1.0; m = FLT_MAX;
     c = 1;
-    while ((opt = getopt(argc, argv, "w:h:f:o:d:m:c:v")) != -1) {
+    q = 0;
+    while ((opt = getopt(argc, argv, "w:h:f:o:d:m:c:vq")) != -1) {
         switch (opt) {
         case 'w':
             w = atoi(optarg);
@@ -288,6 +295,9 @@ main(int argc, char *argv[])
         case 'v':
             set_verbosity(1);
             break;
+        case 'q':
+            q = 1;
+            break;
         default:
             help(argv[0]);
             return 1;
@@ -301,7 +311,7 @@ main(int argc, char *argv[])
     t = argv[optind++];
     s = argv[optind++];
     term = new_term(h, w);
-    ret = convert_script(term, t, s, f, o, d, m, c, size.ws_col-1);
+    ret = convert_script(term, t, s, f, o, d, m, c, q ? 0 : size.ws_col-1);
     free(term);
     return ret;
 }