diff options
Diffstat (limited to 'src/parser.c')
-rw-r--r-- | src/parser.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/parser.c b/src/parser.c index f0d4ed3..eb50016 100644 --- a/src/parser.c +++ b/src/parser.c @@ -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 |