From f139309c06a66d018ff8743b1fc7d87e90927a90 Mon Sep 17 00:00:00 2001 From: ache Date: Sun, 5 Nov 1995 09:02:10 +0000 Subject: Do unctrl in right way Handle '\377' properly --- usr.bin/write/write.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) (limited to 'usr.bin/write') diff --git a/usr.bin/write/write.c b/usr.bin/write/write.c index 8bf8ab6..fdd4827 100644 --- a/usr.bin/write/write.c +++ b/usr.bin/write/write.c @@ -301,7 +301,7 @@ done() * turns \n into \r\n */ wr_fputs(s) - register char *s; + register unsigned char *s; { #define PUTC(c) if (putchar(c) == EOF) goto err; @@ -309,12 +309,18 @@ wr_fputs(s) for (; *s != '\0'; ++s) { if (*s == '\n') { PUTC('\r'); - PUTC('\n'); } else if (!isprint(*s) && !isspace(*s) && *s != '\007') { - PUTC('^'); - PUTC((*s^0x40)&~0x80); /* DEL to ?, others to alpha */ - } else - PUTC(*s); + if (*s & 0x80) { + *s &= ~0x80; + PUTC('M'); + PUTC('-'); + } + if (iscntrl(*s)) { + *s ^= 0x40; + PUTC('^'); + } + } + PUTC(*s); } return; -- cgit v1.1