-int mp::HTMLParser::Rep::tagStart(HTMLParserEvent &event,
- int *tag_len,
- const char *cp, const char which)
-{
- int i;
- switch (which)
- {
- case '/':
- i = skipName(cp);
- *tag_len = i;
- if (m_verbose)
- printf("------ tag close %.*s\n", i, cp);
- event.closeTag(cp, i);
- break;
- case '!':
- for (i = 0; cp[i] && cp[i] != '>'; i++)
- ;
- *tag_len = i;
- event.openTagStart(cp, i);
- if (m_verbose)
- printf("------ dtd %.*s\n", i, cp);
- break;
- case '?':
- for (i = 0; cp[i] && cp[i] != '>'; i++)
- ;
- *tag_len = i;
- event.openTagStart(cp, i);
- if (m_verbose)
- printf("------ pi %.*s\n", i, cp);
- break;
- default:
- i = skipName(cp);
- *tag_len = i;
- if (m_verbose)
- printf("------ tag open %.*s\n", i, cp);
- event.openTagStart(cp, i);
-
- i += tagAttrs(event, cp, i, cp + i);
-
- break;
- }
- return i;
-}
-