Module Name: src
Committed By: christos
Date: Wed Feb 13 13:58:44 UTC 2013
Modified Files:
src/usr.bin/vis: vis.c
Log Message:
handle EILSEQ.
To generate a diff of this commit:
cvs rdiff -u -r1.16 -r1.17 src/usr.bin/vis/vis.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/usr.bin/vis/vis.c
diff -u src/usr.bin/vis/vis.c:1.16 src/usr.bin/vis/vis.c:1.17
--- src/usr.bin/vis/vis.c:1.16 Tue Feb 12 23:52:31 2013
+++ src/usr.bin/vis/vis.c Wed Feb 13 08:58:44 2013
@@ -1,4 +1,4 @@
-/* $NetBSD: vis.c,v 1.16 2013/02/13 04:52:31 christos Exp $ */
+/* $NetBSD: vis.c,v 1.17 2013/02/13 13:58:44 christos Exp $ */
/*-
* Copyright (c) 1989, 1993
@@ -39,12 +39,13 @@ __COPYRIGHT("@(#) Copyright (c) 1989, 19
#if 0
static char sccsid[] = "@(#)vis.c 8.1 (Berkeley) 6/6/93";
#endif
-__RCSID("$NetBSD: vis.c,v 1.16 2013/02/13 04:52:31 christos Exp $");
+__RCSID("$NetBSD: vis.c,v 1.17 2013/02/13 13:58:44 christos Exp $");
#endif /* not lint */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
+#include <errno.h>
#include <wchar.h>
#include <unistd.h>
#include <err.h>
@@ -162,8 +163,12 @@ process(FILE *fp)
char buff[5];
c = getwc(fp);
- while (c != EOF) {
+ if (c == WEOF && errno == EILSEQ)
+ c = (wint_t)getc(fp);
+ while (c != WEOF) {
rachar = getwc(fp);
+ if (rachar == WEOF && errno == EILSEQ)
+ rachar = (wint_t)getc(fp);
if (none) {
cp = buff;
*cp++ = c;