Added configurable list string from env.
[smdp.git] / src / parser.c
index f0d4ed3..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;
     }
 
@@ -600,7 +606,7 @@ void markdown_debug(deck_t *deck, int debug) {
 void adjust_line_length(line_t *line) {
     int l = 0;
     const static wchar_t *special = L"\\*_`"; // list of interpreted chars
-    const wchar_t *c = &line->text->value[line->offset];
+    const wchar_t *c = &line->text->value[0];
     cstack_t *stack = cstack_init();
 
     // for each char in line