commit 71a57942af1610d801c873e829de01dc3eff12f2
parent 309ff4672b7f5cba9bca1ce8657f767b51f32220
Author: Drew DeVault <sir@cmpwn.com>
Date: Thu, 7 Feb 2019 11:37:20 -0500
Allow continuation of table cells on the next line
Diffstat:
2 files changed, 10 insertions(+), 4 deletions(-)
diff --git a/scdoc.5.scd b/scdoc.5.scd
@@ -118,10 +118,11 @@ of dashes (-), like so:
To begin a table, add an empty line followed by any number of rows.
Each line of a table should start with | or : to start a new row or column
-respectively, followed by [ or - or ] to align the contents to the left, center,
-or right, followed by a space and the contents of that cell. You may use a
-space instead of an alignment specifier to inherit the alignment of the same
-column in the previous row.
+respectively (or space to continue the previous cell on multiple lines),
+followed by [ or - or ] to align the contents to the left, center, or right,
+followed by a space and the contents of that cell. You may use a space instead
+of an alignment specifier to inherit the alignment of the same column in the
+previous row.
The first character of the first row is not limited to | and has special
meaning. [ will produce a table with borders around each cell. | will produce a
@@ -140,6 +141,7 @@ To conclude your table, add an empty line after the last row.
| *Row 2*
: こんにちは
: 世界
+ !
```
[[ *Foo*
@@ -151,6 +153,7 @@ To conclude your table, add an empty line after the last row.
| *Row 2*
: こんにちは
: 世界
+ !
## LITERAL TEXT
diff --git a/src/main.c b/src/main.c
@@ -481,6 +481,8 @@ static void parse_table(struct parser *p, uint32_t style) {
++column;
}
break;
+ case ' ':
+ goto continue_cell;
default:
parser_fatal(p, "Expected either '|' or ':'");
break;
@@ -516,6 +518,7 @@ static void parse_table(struct parser *p, uint32_t style) {
break;
}
curcell->contents = str_create();
+continue_cell:
switch (ch = parser_getch(p)) {
case ' ':
// Read out remainder of the text