Merge pull request #40 from FreeBirdLjj/issue#16
[smdp.git] / src / viewer.c
index 5413183..747329c 100644 (file)
@@ -297,6 +297,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)
@@ -313,6 +314,7 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
             // show next slide
             case KEY_DOWN:
             case KEY_RIGHT:
+            case KEY_NPAGE:
             case '\n': // ENTER
             case ' ':  // SPACE
             case 'j':
@@ -455,53 +457,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 +518,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 +589,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