diff options
Diffstat (limited to 'bin/ls/util.c')
| -rw-r--r-- | bin/ls/util.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/bin/ls/util.c b/bin/ls/util.c index 0fa5ea55bf94..c638979a3239 100644 --- a/bin/ls/util.c +++ b/bin/ls/util.c @@ -36,7 +36,7 @@ #ifndef lint static char sccsid[] = "@(#)util.c 5.8 (Berkeley) 7/22/90"; -static char rcsid[] = "$Header: /a/cvs/386BSD/src/bin/ls/util.c,v 1.2 1993/06/29 02:59:34 nate Exp $"; +static char rcsid[] = "$Header: /home/cvs/386BSD/src/bin/ls/util.c,v 1.3 1993/11/13 01:40:24 ache Exp $"; #endif /* not lint */ #include <sys/types.h> @@ -47,11 +47,18 @@ prcopy(src, dest, len) register char *src, *dest; register int len; { - register int ch; + register unsigned char ch; while(len--) { ch = *src++; - *dest++ = isprint(ch) ? ch : '?'; + /* XXX: + * because *BSD don't have setlocale() (yet) + * here simple hack that allows ISO8859-x + * and koi8-r charsets in terminal mode. + * Note: range 0x80-0x9F skipped to avoid + * some kinda security hole on poor DEC VTs + */ + *dest++ = (ch >= 0xA0 || isprint(ch)) ? ch : '?'; } } |
