Activate LC_CTYPE locale and additionly use !isprint() for 8bit characters

This commit is contained in:
Andrey A. Chernov 1996-09-30 15:45:36 +00:00
parent 4347915c16
commit 3043192bc6

View File

@ -33,7 +33,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* $Id: cat.c,v 1.3 1995/10/03 12:46:37 bde Exp $
* $Id: cat.c,v 1.4 1996/09/28 21:19:27 imp Exp $
*/
#ifndef lint
@ -53,6 +53,7 @@ static char sccsid[] = "@(#)cat.c 8.2 (Berkeley) 4/27/95";
#include <err.h>
#include <errno.h>
#include <fcntl.h>
#include <locale.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -75,6 +76,8 @@ main(argc, argv)
extern int optind;
int ch;
setlocale(LC_CTYPE, "");
while ((ch = getopt(argc, argv, "benstuv")) != EOF)
switch (ch) {
case 'b':
@ -179,7 +182,7 @@ cook_buf(fp)
continue;
}
} else if (vflag) {
if (!isascii(ch)) {
if (!isascii(ch) && !isprint(ch)) {
if (putchar('M') == EOF || putchar('-') == EOF)
break;
ch = toascii(ch);