small bugfix in dolist; Code cleaning

This commit is contained in:
gottox@rootkit.lan 2007-12-15 23:16:15 +01:00
parent 40e8c8ab37
commit fa7992f7d6

View file

@ -240,6 +240,7 @@ dolist(const char *begin, const char *end, int newblock) {
const char *p, *q; const char *p, *q;
char *buffer; char *buffer;
isblock = 0;
if(newblock) if(newblock)
p = begin; p = begin;
else if(*begin == '\n') else if(*begin == '\n')
@ -247,16 +248,16 @@ dolist(const char *begin, const char *end, int newblock) {
else else
return 0; return 0;
q = p; q = p;
isblock = 0; if(*p == '-' || *p == '*' || *p == '+')
if((*p == '-' || *p == '*' || *p == '+') && (p[1] == ' ' || p[1] == '\t')) {
ul = 1; ul = 1;
}
else { else {
ul = 0; ul = 0;
for(; *p && p != end && *p >= '0' && *p <= '9';p++); for(; *p && p != end && *p >= '0' && *p <= '9';p++);
if(!*p || p[0] != '.' || (p[1] != ' ' && p[1] != '\t')) if(!*p || p[0] != '.')
return 0; return 0;
} }
if(p[1] != ' ' && p[1] != '\t')
return 0;
for(p++; *p && p != end && (*p == ' ' || *p == '\t'); p++); for(p++; *p && p != end && (*p == ' ' || *p == '\t'); p++);
indent = p - q; indent = p - q;
if(!(buffer = malloc(BUFFERSIZE))) if(!(buffer = malloc(BUFFERSIZE)))
@ -274,7 +275,7 @@ dolist(const char *begin, const char *end, int newblock) {
ADDC(buffer,i) = '\n'; ADDC(buffer,i) = '\n';
i++; i++;
run = 0; run = 0;
isblock = 1; isblock++;
} }
q = p + 1; q = p + 1;
j = 0; j = 0;
@ -303,7 +304,7 @@ dolist(const char *begin, const char *end, int newblock) {
} }
ADDC(buffer,i) = '\0'; ADDC(buffer,i) = '\0';
fputs("<li>",stdout); fputs("<li>",stdout);
process(buffer,buffer+i,isblock); process(buffer,buffer+i,isblock > 1 || (isblock == 1 && run));
fputs("</li>\n",stdout); fputs("</li>\n",stdout);
} }
fputs(ul ? "</ul>\n" : "</ol>\n",stdout); fputs(ul ? "</ul>\n" : "</ol>\n",stdout);