X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fhtml_parser.cpp;h=36411950093c29c0a8d54a9d0744509ebd5dd156;hb=a8b25eb1e4dee0290182ca69fe49a01557c58811;hp=22d4a31db94f9b4607b0e18e34348851052a9f25;hpb=dd17e564b39fa38a3d611853a3b13dacdff3d070;p=metaproxy-moved-to-github.git diff --git a/src/html_parser.cpp b/src/html_parser.cpp index 22d4a31..3641195 100644 --- a/src/html_parser.cpp +++ b/src/html_parser.cpp @@ -222,9 +222,22 @@ void mp::HTMLParser::Rep::parse_str(HTMLParserEvent &event, const char *cp) { int i; tagText(event, text_start, cp - 1); - for (i = 1; cp[i] && cp[i] != '>'; i++) - ; - event.openTagStart(cp, i); + if (cp[1] == '-' && cp[2] == '-') + { + for (i = 3; cp[i]; i++) + if (cp[i] == '-' && cp[i+1] == '-' && cp[i+2] == '>') + { + i+= 2; + event.openTagStart(cp, i); + break; + } + } + else + { + for (i = 1; cp[i] && cp[i] != '>'; i++) + ; + event.openTagStart(cp, i); + } if (m_verbose) printf("------ dtd %.*s\n", i, cp); i += tagEnd(event, cp, i, cp + i); @@ -274,6 +287,10 @@ void mp::HTMLParser::Rep::parse_str(HTMLParserEvent &event, const char *cp) tagText(event, text_start, cp); } +mp::HTMLParserEvent::~HTMLParserEvent() +{ +} + /* * Local variables: * c-basic-offset: 4