diff --git a/src/modules/Parser/html.c b/src/modules/Parser/html.c index fa6b62834267159a297ff45d18a7a21b7a00bb7b..5bde1ecd364afd599ddc985f3509225bb88c9676 100644 --- a/src/modules/Parser/html.c +++ b/src/modules/Parser/html.c @@ -24,6 +24,8 @@ #define DEBUG(X) do; while(0) #endif +#define free(X) fprintf(stderr,"free line %d: %p\n",__LINE__,X); free(X) + #define MAX_FEED_STACK_DEPTH 10 struct location @@ -445,6 +447,8 @@ static int scan_forward(struct piece *feed, { int ce=feed->s->len-c; p_wchar2 f=*look_for; + fprintf(stderr,"%p:%d .. %p:%d (%d)\n", + feed,c,feed,feed->s->len,ce); switch (feed->s->size_shift) { case 0: @@ -485,6 +489,7 @@ static int scan_forward(struct piece *feed, error("unknown width of string\n"); } if (!feed->next) break; + c=0; feed=feed->next; } break; @@ -547,6 +552,7 @@ static int scan_forward(struct piece *feed, error("unknown width of string\n"); } if (!feed->next) break; + c=0; feed=feed->next; } break; @@ -839,6 +845,10 @@ static void html_feed(INT32 args) { struct piece *f; + DEBUG((stderr,"feed %d chars\n", + (args&&sp[-args].type==T_STRING)? + sp[-args].u.string->len:-1)); + if (args) { if (sp[-args].type!=T_STRING) @@ -1005,7 +1015,7 @@ void html__inspect(INT32 args) while (f) { - push_string(f->s); + ref_push_string(f->s); p++; f=f->next; } @@ -1043,7 +1053,7 @@ void html__inspect(INT32 args) f=THIS->out; while (f) { - push_string(f->s); + ref_push_string(f->s); p++; f=f->next; }