diff --git a/src/modules/spider/spider.c b/src/modules/spider/spider.c index 108c5c54021979410510a964d1e196a4e1da78c2..fb4275cf9cb18a64ddf6ccefa2bbca4dc5f6fdad 100644 --- a/src/modules/spider/spider.c +++ b/src/modules/spider/spider.c @@ -307,7 +307,10 @@ void f_parse_html(INT32 args) return; } - sp[-args].type=T_INT; + ss->refs++; +#if 0 + sp[-args].type=T_INT; /* ???? */ +#endif /* 0 */ single=sp[1-args].u.mapping; cont=sp[2-args].u.mapping; @@ -514,13 +517,19 @@ INLINE int tagsequal(char *s, char *t, int len, char *end) { if(s+len >= end) return 0; - if(s[len] != '>' && s[len] != ' ') - return 0; - while(len--) if(tolower(*(t++)) != tolower(*(s++))) return 0; - return 1; + switch(*s) { + case '>': + case ' ': + case '\t': + case '\n': + case '\r': + return 1; + default: + return 0; + } } int find_endtag(struct pike_string *tag, char *s, int len, int *aftertag) @@ -534,6 +543,7 @@ int find_endtag(struct pike_string *tag, char *s, int len, int *aftertag) for (; i<len && s[i]!='<'; i++); if (i>=len) break; j=i++; + for(; i<len && (s[i]==' ' || s[i]=='\t' || s[i]=='\n' || s[i]=='\r'); i++); if (i>=len) break; if (s[i]=='/') {