diff --git a/scdoc.5.scd b/scdoc.5.scd index b94952e..dfe5353 100644 --- a/scdoc.5.scd +++ b/scdoc.5.scd @@ -133,7 +133,7 @@ To conclude your table, add an empty line after the last row. ``` [[ *Foo* :- _Bar_ -:- _Baz_ +:- | *Row 1* : Hello :] world! @@ -144,7 +144,7 @@ To conclude your table, add an empty line after the last row. [[ *Foo* :- _Bar_ -:- _Baz_ +:- | *Row 1* : Hello :] world! diff --git a/src/main.c b/src/main.c index 72173c6..10ba587 100644 --- a/src/main.c +++ b/src/main.c @@ -487,21 +487,26 @@ static void parse_table(struct parser *p, uint32_t style) { parser_fatal(p, "Expected one of '[', '-', ']', or ' '"); break; } - if ((ch = parser_getch(p)) != ' ') { - parser_fatal(p, "Expected ' '"); - break; - } - // Read out remainder of the text curcell->contents = str_create(); - while ((ch = parser_getch(p)) != UTF8_INVALID) { - switch (ch) { - case '\n': - goto commit_cell; - default:; - int ret = str_append_ch(curcell->contents, ch); - assert(ret != -1); - break; + switch (ch = parser_getch(p)) { + case ' ': + // Read out remainder of the text + while ((ch = parser_getch(p)) != UTF8_INVALID) { + switch (ch) { + case '\n': + goto commit_cell; + default:; + int ret = str_append_ch(curcell->contents, ch); + assert(ret != -1); + break; + } } + break; + case '\n': + goto commit_cell; + default: + parser_fatal(p, "Expected ' ' or a newline"); + break; } commit_cell: if (strstr(curcell->contents->str, "T{")