added hint to terminal geometry error as suggested in #15
[smdp.git] / viewer.c
index ba76f2f..e31dbcb 100644 (file)
--- a/viewer.c
+++ b/viewer.c
@@ -104,9 +104,19 @@ int ncurses_display(deck_t *deck, int notrans, int nofade, int invert) {
     if((max_cols > COLS) ||
        (max_lines + bar_top + bar_bottom + 2 > LINES)) {
 
+        // disable ncurses
+        endwin();
+
+        // print error
         fprintf(stderr, "Error: Terminal size %ix%i too small. Need at least %ix%i.\n",
             COLS, LINES, max_cols, max_lines + bar_top + bar_bottom + 2);
-        endwin();
+
+        // print hint to solve it
+        if(max_lines + bar_top + bar_bottom + 2 > LINES)
+            fprintf(stderr, "You may need to add additional horizontal rules ('***') to split your file in shorter slides.\n");
+        if(max_cols > COLS)
+            fprintf(stderr, "Automatic line wrapping is not supported jet. You may need to shorten some lines by inserting line breaks.\n");
+
         return(1);
     }
 
@@ -472,6 +482,10 @@ void add_line(WINDOW *window, int y, int x, line_t *line, int max_cols, int colo
                         }
 
                     } else {
+                        // remove backslash from stack
+                        if((stack->top)(stack, '\\'))
+                            (stack->pop)(stack);
+
                         // print regular char
                         wprintw(window, "%c", *c);
                     }