diff options
| author | Karl Bartel <karl42@gmail.com> | 2019-10-02 13:07:03 +0200 |
|---|---|---|
| committer | Enno Boland <g@s01.de> | 2020-07-01 08:56:22 +0200 |
| commit | 028a8dadd1f61f5b773b773b022ad2ccb86e3ddc (patch) | |
| tree | c3f170b9bb057875775682b4495a50c806d7855a | |
| parent | 7fa950993c6d6deafe7787547951abdcec6e1a55 (diff) | |
Lists only continue when using same marker
```
- foo
- bar
+ baz
```
is two lists (see https://spec.commonmark.org/0.29/#example-271)
| -rw-r--r-- | smu.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -327,6 +327,7 @@ dolist(const char *begin, const char *end, int newblock) { unsigned int i, j, indent, run, ul, isblock; const char *p, *q; char *buffer = NULL; + char marker; isblock = 0; if(newblock) @@ -336,9 +337,10 @@ dolist(const char *begin, const char *end, int newblock) { else return 0; q = p; - if(*p == '-' || *p == '*' || *p == '+') + if(*p == '-' || *p == '*' || *p == '+') { ul = 1; - else { + marker = *p; + } else { ul = 0; for(; p < end && *p >= '0' && *p <= '9'; p++); if(p >= end || *p != '.') @@ -368,7 +370,7 @@ dolist(const char *begin, const char *end, int newblock) { } q = p + 1; j = 0; - if(ul && (*q == '-' || *q == '*' || *q == '+')) + if(ul && *q == marker) j = 1; else if(!ul) { for(; q + j != end && q[j] >= '0' && q[j] <= '9' && j < indent; j++); |