summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2006-06-23 14:06:00 +1000
committerNeil Brown <neilb@suse.de>2006-06-23 14:06:00 +1000
commitff42180930a444cea7f19e55e2cd2bfe6d3f108b (patch)
tree2bd74d1fe9dc1fc086e2e7e51626cfde22cf3c16
parentbec968578d97eabc63ae4a12bdeb2b33f40baec4 (diff)
downloadnfs-utils-ff42180930a444cea7f19e55e2cd2bfe6d3f108b.tar.gz
nfs-utils-ff42180930a444cea7f19e55e2cd2bfe6d3f108b.tar.xz
nfs-utils-ff42180930a444cea7f19e55e2cd2bfe6d3f108b.zip
Fix comment parsing (again)
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.
-rw-r--r--support/nfs/xio.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/support/nfs/xio.c b/support/nfs/xio.c
index 1ce5157..221cce6 100644
--- a/support/nfs/xio.c
+++ b/support/nfs/xio.c
@@ -95,11 +95,6 @@ xgettok(XFILE *xfp, char sepa, char *tok, int len)
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;
@@ -164,7 +159,12 @@ xskip(XFILE *xfp, char *str)
{
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);
}