X-Git-Url: http://lists.indexdata.com/cgi-bin?a=blobdiff_plain;f=src%2Fhtml_parser.cpp;h=3f1a4f4fdba224f819527b7b0c612f631d0b5bc8;hb=489bd9188aed44d93c29f996311e0477152d592a;hp=abbdeba0d5516eead9302f82347e15284efad105;hpb=55fdfbb42225f71fb791bb8f9ec033ca0fddbe44;p=metaproxy-moved-to-github.git diff --git a/src/html_parser.cpp b/src/html_parser.cpp index abbdeba..3f1a4f4 100644 --- a/src/html_parser.cpp +++ b/src/html_parser.cpp @@ -264,20 +264,21 @@ void mp::HTMLParser::Rep::parse_str(HTMLParserEvent &event, const char *cp) else if (*cp == '/' && isAlpha(cp[1])) { int i; - tagText(event, text_start, cp - 1); - + i = skipName(++cp); if (!nest) { if (i == 6 && !yaz_strncasecmp(cp, "script", i)) - nest = true; - else { - text_start = cp - 1; // points to '/' - continue; + int ws = skipSpace(cp + 6); + if (cp[ws + 6] == '>') + nest = true; /* really terminated */ } + if (!nest) + continue; } + tagText(event, text_start, cp - 2); event.closeTag(cp, i); if (m_verbose) printf("------ tag close %.*s\n", i, cp);