Change the type of `fade` into bool.
[smdp.git] / src / viewer.c
index 5413183..09a0498 100644 (file)
@@ -113,11 +113,11 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
                         fprintf(stderr, "Error: Terminal width (%i columns) too small. Need at least %i columns.\n", COLS, i);
                         fprintf(stderr, "You may need to shorten some lines by inserting line breaks.\n");
 
-                        return(1);
+                        return 1;
                     }
 
                     // set max_cols
-                    max_cols = (i > max_cols) ? i : max_cols;
+                    max_cols = MAX(i, max_cols);
 
                     // iterate to next line
                     offset = prev_blank(line->text, offset + COLS);
@@ -125,16 +125,16 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
                     lc++;
                 }
                 // set max_cols one last time
-                max_cols = (i > max_cols) ? i : max_cols;
+                max_cols = MAX(i, max_cols);
             } else {
                 // set max_cols
-                max_cols = (line->length > max_cols) ? line->length : max_cols;
+                max_cols = MAX(line->length, max_cols);
             }
             lc++;
             line = line->next;
         }
 
-        max_lines = (lc > max_lines) ? lc : max_lines;
+        max_lines = MAX(lc, max_lines);
 
         slide = slide->next;
     }
@@ -149,7 +149,7 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
         fprintf(stderr, "Error: Terminal heigth (%i lines) too small. Need at least %i lines.\n", LINES, max_lines + bar_top + bar_bottom);
         fprintf(stderr, "You may need to add additional horizontal rules ('***') to split your file in shorter slides.\n");
 
-        return(1);
+        return 1;
     }
 
     // disable cursor
@@ -194,7 +194,8 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
             init_pair(CP_YELLOW, 208, trans);
 
             // enable color fading
-            if(!nofade) fade = 1;
+            if(!nofade)
+                fade = true;
 
         // 8 color mode
         } else {
@@ -285,7 +286,8 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
             fade_in(content, trans, colors, invert);
 
         // re-enable fading after any undefined key press
-        if(COLORS == 256 && !nofade) fade = 1;
+        if(COLORS == 256 && !nofade)
+            fade = true;
 
         // wait for user input
         c = getch();
@@ -297,6 +299,7 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
             // show previous slide
             case KEY_UP:
             case KEY_LEFT:
+            case KEY_PPAGE:
             case 8:   // BACKSPACE (ascii)
             case 127: // BACKSPACE (xterm)
             case 263: // BACKSPACE (getty)
@@ -306,13 +309,14 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
                     slide = slide->prev;
                     sc--;
                 } else {
-                    fade = 0;
+                    fade = false;
                 }
                 break;
 
             // show next slide
             case KEY_DOWN:
             case KEY_RIGHT:
+            case KEY_NPAGE:
             case '\n': // ENTER
             case ' ':  // SPACE
             case 'j':
@@ -321,7 +325,7 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
                     slide = slide->next;
                     sc++;
                 } else {
-                    fade = 0;
+                    fade = false;
                 }
                 break;
 
@@ -353,7 +357,7 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
                     }
                 } else {
                     // disable fading if slide n doesn't exist
-                    fade = 0;
+                    fade = false;
                 }
                 break;
 
@@ -376,13 +380,13 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
             // quit
             case 'q':
                 // do not fade out on exit
-                fade = 0;
-                slide = (void*)0;
+                fade = false;
+                slide = NULL;
                 break;
 
             default:
                 // disable fading on undefined key press
-                fade = 0;
+                fade = false;
                 break;
         }
 
@@ -393,7 +397,7 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
 
     endwin();
 
-    return(0);
+    return 0;
 }
 
 void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colors) {
@@ -455,53 +459,50 @@ void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colo
         wprintw(window,
                 "%s", &line->text->text[offset]);
 
-    } else {
-
-        // IS_H1 || IS_H2
-        if(CHECK_BIT(line->bits, IS_H1) || CHECK_BIT(line->bits, IS_H2)) {
+    // IS_H1 || IS_H2
+    } else if(CHECK_BIT(line->bits, IS_H1) || CHECK_BIT(line->bits, IS_H2)) {
 
-            // set headline color
-            if(colors)
-                wattron(window, COLOR_PAIR(CP_BLUE));
-
-            // enable underline for H1
-            if(CHECK_BIT(line->bits, IS_H1))
-                wattron(window, A_UNDERLINE);
+        // set headline color
+        if(colors)
+            wattron(window, COLOR_PAIR(CP_BLUE));
 
-            // skip hashes
-            while(line->text->text[offset] == '#')
-                offset = next_word(line->text, offset);
+        // enable underline for H1
+        if(CHECK_BIT(line->bits, IS_H1))
+            wattron(window, A_UNDERLINE);
 
-            // print whole lines
-            wprintw(window,
-                    "%s", &line->text->text[offset]);
+        // skip hashes
+        while(line->text->text[offset] == '#')
+            offset = next_word(line->text, offset);
 
-            wattroff(window, A_UNDERLINE);
+        // print whole lines
+        wprintw(window,
+                "%s", &line->text->text[offset]);
 
-        } else {
+        wattroff(window, A_UNDERLINE);
 
-            // IS_QUOTE
-            if(CHECK_BIT(line->bits, IS_QUOTE)) {
-                while(line->text->text[offset] == '>') {
-                    // print a reverse color block
-                    if(colors) {
-                        wattron(window, COLOR_PAIR(CP_BLACK));
-                        wprintw(window, "%s", " ");
-                        wattron(window, COLOR_PAIR(CP_WHITE));
-                        wprintw(window, "%s", " ");
-                    } else {
-                        wprintw(window, "%s", ">");
-                    }
+    } else {
 
-                    // find next quote or break
-                    offset++;
-                    if(line->text->text[offset] == ' ')
-                        offset = next_word(line->text, offset);
+        // IS_QUOTE
+        if(CHECK_BIT(line->bits, IS_QUOTE)) {
+            while(line->text->text[offset] == '>') {
+                // print a reverse color block
+                if(colors) {
+                    wattron(window, COLOR_PAIR(CP_BLACK));
+                    wprintw(window, "%s", " ");
+                    wattron(window, COLOR_PAIR(CP_WHITE));
+                    wprintw(window, "%s", " ");
+                } else {
+                    wprintw(window, "%s", ">");
                 }
-            }
 
-            inline_display(window, &line->text->text[offset], colors);
+                // find next quote or break
+                offset++;
+                if(line->text->text[offset] == ' ')
+                    offset = next_word(line->text, offset);
+            }
         }
+
+        inline_display(window, &line->text->text[offset], colors);
     }
 
     // fill rest off line with spaces
@@ -519,7 +520,7 @@ void inline_display(WINDOW *window, const char *c, const int colors) {
     cstack_t *stack = cstack_init();
 
     // for each char in line
-    while(*c) {
+    for(; *c; c++) {
 
         // if char is in special char list
         if(strchr(special, *c)) {
@@ -590,8 +591,6 @@ void inline_display(WINDOW *window, const char *c, const int colors) {
             // print regular char
             wprintw(window, "%c", *c);
         }
-
-        c++;
     }
 
     // pop stack until empty to prevent formated trailing spaces