Bruce Fields noticed that I broke comment parsing...
as xskip() is always called before xgettok(), that is the
best place to put xskipcomment and still maintain proper
semantics of xskip and xgettok.
while (i < len && (c = xgetc(xfp)) != EOF &&
(quoted || (c != sepa && !isspace(c)))) {
- if (!quoted && i == 0 && c == '#') {
- c = xskipcomment(xfp);
- xfp->x_line++;
- break;
- }
if (c == '"') {
quoted = !quoted;
continue;
{
int c;
- while ((c = xgetc(xfp)) != EOF && strchr(str, c));
+ while ((c = xgetc(xfp)) != EOF) {
+ if (c == '#')
+ c = xskipcomment(xfp);
+ if (strchr(str, c) == NULL)
+ break;
+ }
xungetc(c, xfp);
}