corrected include path for Debian derivatives (closes #46)
[smdp.git] / src / viewer.c
index 2de71e4..1946e99 100644 (file)
@@ -418,7 +418,7 @@ void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colo
         char prompt[13];
         strcpy(&prompt[0], CHECK_BIT(line->bits, IS_UNORDERED_LIST_1)? " |  " : "    ");
         strcpy(&prompt[4], CHECK_BIT(line->bits, IS_UNORDERED_LIST_2)? " |  " : "    ");
-        strcpy(&prompt[8], line->next && CHECK_BIT(line->next->bits, IS_UNORDERED_LIST_3)? " +- " : " `- ");
+        strcpy(&prompt[8], " +- ");
         wprintw(window,
                 "%s", prompt);
 
@@ -429,7 +429,7 @@ void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colo
         offset = next_nonblank(line->text, 0);
         char prompt[9];
         strcpy(&prompt[0], CHECK_BIT(line->bits, IS_UNORDERED_LIST_1)? " |  " : "    ");
-        strcpy(&prompt[4], line->next && CHECK_BIT(line->next->bits, IS_UNORDERED_LIST_2)? " +- " : " `- ");
+        strcpy(&prompt[4], " +- ");
         wprintw(window,
                 "%s", prompt);
 
@@ -439,7 +439,7 @@ void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colo
     } else if(CHECK_BIT(line->bits, IS_UNORDERED_LIST_1)) {
         offset = next_nonblank(line->text, 0);
         char prompt[5];
-        strcpy(&prompt[0], line->next && CHECK_BIT(line->next->bits, IS_UNORDERED_LIST_1)? " +- " : " `- ");
+        strcpy(&prompt[0], " +- ");
         wprintw(window,
                 "%s", prompt);
 
@@ -459,50 +459,62 @@ void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colo
         wprintw(window,
                 "%s", &line->text->text[offset]);
 
-    // IS_H1 || IS_H2
-    } else if(CHECK_BIT(line->bits, IS_H1) || CHECK_BIT(line->bits, IS_H2)) {
+    // IS_QUOTE
+    } else 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", ">");
+            }
 
-        // set headline color
-        if(colors)
-            wattron(window, COLOR_PAIR(CP_BLUE));
+            // find next quote or break
+            offset++;
+            if(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);
+        inline_display(window, &line->text->text[offset], colors);
 
-        // skip hashes
-        while(line->text->text[offset] == '#')
-            offset = next_word(line->text, offset);
+    } else {
 
-        // print whole lines
-        wprintw(window,
-                "%s", &line->text->text[offset]);
+        // IS_CENTER
+        if(CHECK_BIT(line->bits, IS_CENTER)) {
+            if(line->length < max_cols) {
+                wmove(window, y, x + ((max_cols - line->length) / 2));
+            }
+        }
 
-        wattroff(window, A_UNDERLINE);
+        // IS_H1 || IS_H2
+        if(CHECK_BIT(line->bits, IS_H1) || CHECK_BIT(line->bits, IS_H2)) {
 
-    } else {
+            // set headline color
+            if(colors)
+                wattron(window, COLOR_PAIR(CP_BLUE));
 
-        // 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", ">");
-                }
+            // enable underline for H1
+            if(CHECK_BIT(line->bits, IS_H1))
+                wattron(window, A_UNDERLINE);
 
-                // find next quote or break
-                offset++;
-                if(line->text->text[offset] == ' ')
-                    offset = next_word(line->text, offset);
-            }
-        }
+            // skip hashes
+            while(line->text->text[offset] == '#')
+                offset = next_word(line->text, offset);
 
-        inline_display(window, &line->text->text[offset], colors);
+            // print whole lines
+            wprintw(window,
+                    "%s", &line->text->text[offset]);
+
+            wattroff(window, A_UNDERLINE);
+
+        // no line-wide markdown
+        } else {
+
+            inline_display(window, &line->text->text[offset], colors);
+        }
     }
 
     // fill rest off line with spaces