diff --git a/usr.bin/vis/vis.c b/usr.bin/vis/vis.c index e2677493e145..003cbdc29a8f 100644 --- a/usr.bin/vis/vis.c +++ b/usr.bin/vis/vis.c @@ -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, 1993\ #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 #include #include +#include #include #include #include @@ -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;