static int skipName(const char *cp)
{
int i;
- for (i = 0; cp[i] && !strchr(SPACECHR "/>=", cp[i]); i++)
+ for (i = 0; cp[i] && !strchr(SPACECHR "/>=<", cp[i]); i++)
;
return i;
}
const char *cp)
{
int i = skipSpace(cp);
- while (cp[i] && cp[i] != '>' && cp[i] != '/')
+ while (cp[i] && cp[i] != '>' && cp[i] != '/' && cp[i] != '<')
{
const char *attr_name = cp + i;
int attr_len;
{
int i = 0;
int close_it = 0;
- for (; cp[i] && cp[i] != '/' && cp[i] != '>'; i++)
+ for (; cp[i] && cp[i] != '/' && cp[i] != '>' && cp[i] != '<'; i++)
;
if (i > 0)
{
}
}
+BOOST_AUTO_TEST_CASE( test_html_parser_6 )
+{
+ try
+ {
+ mp::HTMLParser hp;
+ const char* html =
+ "<html><script><x;</script></html>";
+
+ const char* expected = html;
+ MyEvent e;
+ hp.set_verbose(0);
+ hp.parse(e, html);
+
+ BOOST_CHECK_EQUAL(std::string(expected), e.out);
+ if (std::string(expected) != e.out)
+ {
+ std::cout << "Expected" << std::endl;
+ std::cout << expected << std::endl;
+ std::cout << "Got" << std::endl;
+ std::cout << e.out << std::endl;
+ }
+ }
+ catch (std::exception & e)
+ {
+ std::cout << e.what();
+ std::cout << std::endl;
+ BOOST_CHECK (false);
+ }
+}
+
/*
* Local variables: