diff options
| author | gottox@rootkit.lan <gottox@rootkit.lan> | 2007-12-15 23:16:15 +0100 |
|---|---|---|
| committer | gottox@rootkit.lan <gottox@rootkit.lan> | 2007-12-15 23:16:15 +0100 |
| commit | fa7992f7d6db84607280a004e8c8c903ade55aad (patch) | |
| tree | 2b6ba68b4b9eddb8bddb87a8b9e09e3289915548 | |
| parent | 40e8c8ab375b200f49ee96065de01b383794bad5 (diff) | |
small bugfix in dolist; Code cleaning
| -rw-r--r-- | cmarkdown.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/cmarkdown.c b/cmarkdown.c index 5fc3fa8..5d873f5 100644 --- a/cmarkdown.c +++ b/cmarkdown.c @@ -240,6 +240,7 @@ dolist(const char *begin, const char *end, int newblock) { const char *p, *q; char *buffer; + isblock = 0; if(newblock) p = begin; else if(*begin == '\n') @@ -247,16 +248,16 @@ dolist(const char *begin, const char *end, int newblock) { else return 0; q = p; - isblock = 0; - if((*p == '-' || *p == '*' || *p == '+') && (p[1] == ' ' || p[1] == '\t')) { + if(*p == '-' || *p == '*' || *p == '+') ul = 1; - } else { ul = 0; for(; *p && p != end && *p >= '0' && *p <= '9';p++); - if(!*p || p[0] != '.' || (p[1] != ' ' && p[1] != '\t')) + if(!*p || p[0] != '.') return 0; } + if(p[1] != ' ' && p[1] != '\t') + return 0; for(p++; *p && p != end && (*p == ' ' || *p == '\t'); p++); indent = p - q; if(!(buffer = malloc(BUFFERSIZE))) @@ -274,7 +275,7 @@ dolist(const char *begin, const char *end, int newblock) { ADDC(buffer,i) = '\n'; i++; run = 0; - isblock = 1; + isblock++; } q = p + 1; j = 0; @@ -303,7 +304,7 @@ dolist(const char *begin, const char *end, int newblock) { } ADDC(buffer,i) = '\0'; fputs("<li>",stdout); - process(buffer,buffer+i,isblock); + process(buffer,buffer+i,isblock > 1 || (isblock == 1 && run)); fputs("</li>\n",stdout); } fputs(ul ? "</ul>\n" : "</ol>\n",stdout); |