fixed window refresh behavior for #100
[smdp.git] / src / parser.c
index cbe46b1..eb50016 100644 (file)
@@ -2,7 +2,7 @@
  * Functions necessary to parse a file and transform its content into
  * a deck of slides containing lines. All based on markdown formating
  * rules.
- * Copyright (C) 2015 Michael Goehler
+ * Copyright (C) 2016 Michael Goehler
  *
  * This file is part of mdp.
  *
@@ -89,7 +89,8 @@ deck_t *markdown_load(FILE *input) {
                 slide = next_slide(slide);
                 sc++;
 
-            } else if(CHECK_BIT(bits, IS_TILDE_CODE) && CHECK_BIT(bits, IS_EMPTY)) {
+            } else if(CHECK_BIT(bits, IS_TILDE_CODE) &&
+                      CHECK_BIT(bits, IS_EMPTY)) {
                 // remove tilde code markers
                 (text->reset)(text);
 
@@ -339,6 +340,11 @@ int markdown_analyse(cstring_t *text, int prev) {
     // return IS_EMPTY on null pointers
     if(!text || !text->value) {
         SET_BIT(bits, IS_EMPTY);
+
+        // continue fenced code blocks across empty lines
+        if(num_tilde_characters > 0)
+            SET_BIT(bits, IS_CODE);
+
         return bits;
     }