dolineprefix works now with doparagraph

This commit is contained in:
gottox@rootkit.lan 2007-12-11 20:14:41 +01:00
parent 857be7fb4d
commit 53443f1d56

View file

@ -113,16 +113,19 @@ dolineprefix(const char *begin, const char *end) {
if(*begin != '\n') if(*begin != '\n')
return 0; return 0;
p = begin;
if(p[1] == '\n')
p++;
for(i = 0; i < LENGTH(lineprefix); i++) { for(i = 0; i < LENGTH(lineprefix); i++) {
l = strlen(lineprefix[i].search); l = strlen(lineprefix[i].search);
if(end - begin+1 < l) if(end - p+1 < l)
continue; continue;
if(strncmp(lineprefix[i].search,begin+1,l)) if(strncmp(lineprefix[i].search,p+1,l))
continue; continue;
if(!(buffer = malloc(end - begin+1))) if(!(buffer = malloc(end - p+1)))
eprint("Malloc failed."); eprint("Malloc failed.");
printf("<%s>",lineprefix[i].tag); printf("\n<%s>",lineprefix[i].tag);
for(p = begin, j = 0; p != end; p++, j++) { for(j = 0; p != end; p++, j++) {
buffer[j] = *p; buffer[j] = *p;
if(*p == '\n') { if(*p == '\n') {
if(strncmp(lineprefix[i].search,p+1,l) != 0) if(strncmp(lineprefix[i].search,p+1,l) != 0)
@ -134,7 +137,7 @@ dolineprefix(const char *begin, const char *end) {
process(buffer,buffer+strlen(buffer)); process(buffer,buffer+strlen(buffer));
else else
hprint(buffer,buffer+strlen(buffer)); hprint(buffer,buffer+strlen(buffer));
printf("</%s>",lineprefix[i].tag); printf("</%s>\n",lineprefix[i].tag);
free(buffer); free(buffer);
return p - begin; return p - begin;
} }
@ -212,7 +215,7 @@ dolist(const char *begin, const char *end) {
buffer[0] = '\0'; buffer[0] = '\0';
for(i = 0; *p && p != end && run; p++,i++) { for(i = 0; *p && p != end && run; p++,i++) {
if(*p == '\n') { if(*p == '\n') {
if(p[1] == '\n') { if(p[1] == '\n' && p[2] == '\n') {
run = 0; run = 0;
break; break;
} }