summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--support/include/xio.h2
-rw-r--r--support/nfs/xio.c9
2 files changed, 7 insertions, 4 deletions
diff --git a/support/include/xio.h b/support/include/xio.h
index 858f5bb..608d265 100644
--- a/support/include/xio.h
+++ b/support/include/xio.h
@@ -19,7 +19,7 @@ void xfunlock(int lockid);
void xfclose(XFILE *xfp);
int xgettok(XFILE *xfp, char sepa, char *tok, int len);
char xgetc(XFILE *xfp);
-void xungetc(char c, XFILE *xfp);
+void xungetc(int c, XFILE *xfp);
void xskip(XFILE *xfp, char *str);
char xskipcomment(XFILE *xfp);
diff --git a/support/nfs/xio.c b/support/nfs/xio.c
index 1bcd41b..de51a15 100644
--- a/support/nfs/xio.c
+++ b/support/nfs/xio.c
@@ -92,7 +92,7 @@ xgettok(XFILE *xfp, char sepa, char *tok, int len)
while (i < len && (c = xgetc(xfp)) != EOF && c != sepa && !isspace(c))
tok[i++] = c;
if (c == '\n')
- ungetc(c, xfp->x_fp);
+ xungetc(c, xfp->x_fp);
if (!i)
return 0;
if (i >= len || (sepa && c != sepa))
@@ -126,10 +126,13 @@ xgetc(XFILE *xfp)
}
void
-xungetc(char c, XFILE *xfp)
+xungetc(int c, XFILE *xfp)
{
- if (c != EOF)
+ if (c != EOF) {
ungetc(c, xfp->x_fp);
+ if (c == '\n')
+ xfp->x_line--;
+ }
}
void