*/
if (state == TS_START)
{
- /* The header ends when the line sorts below "!_TAG_".
- * There may be non-header items before the header though,
- * e.g. "!" itself. When case is folded lower case letters
- * sort before "_". */
+ /* The header ends when the line sorts below "!_TAG_". When
+ * case is folded lower case letters sort before "_". */
if (STRNCMP(lbuf, "!_TAG_", 6) <= 0
|| (lbuf[0] == '!' && ASCII_ISLOWER(lbuf[1])))
{
+ if (STRNCMP(lbuf, "!_TAG_", 6) != 0)
+ /* Non-header item before the header, e.g. "!" itself.
+ */
+ goto parse_line;
+
/*
* Read header line.
*/
#endif
}
+parse_line:
/*
* Figure out where the different strings are in this line.
* For "normal" tags: Do a quick check if the tag matches.