summaryrefslogtreecommitdiff
path: root/usr.bin/write
diff options
context:
space:
mode:
Diffstat (limited to 'usr.bin/write')
-rw-r--r--usr.bin/write/write.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/usr.bin/write/write.c b/usr.bin/write/write.c
index 3dc298f8cd1..00d5e169e2e 100644
--- a/usr.bin/write/write.c
+++ b/usr.bin/write/write.c
@@ -304,12 +304,17 @@ wr_fputs(s)
c = toascii(*s);
if (c == '\n') {
PUTC('\r');
- PUTC('\n');
} else if (!isprint(c) && !isspace(c) && c != '\007') {
- PUTC('^');
- PUTC(c^0x40); /* DEL to ?, others to alpha */
- } else
- PUTC(c);
+ if (c & 0x80) {
+ PUTC('M');
+ PUTC('-');
+ c &= ~0x80;
+ } else {
+ PUTC('^');
+ c &= ~0x40;
+ }
+ }
+ PUTC(c);
}
return;