diff options
author | 1995-11-17 12:39:20 +0000 | |
---|---|---|
committer | 1995-11-17 12:39:20 +0000 | |
commit | 996f35a12d480d934ab6ca9bd931b57fbe2cf38e (patch) | |
tree | e3f37e832d49d661ed6b9eccb2dc57dc22e14186 /usr.bin/write/write.c | |
parent | add si1 (diff) | |
download | wireguard-openbsd-996f35a12d480d934ab6ca9bd931b57fbe2cf38e.tar.xz wireguard-openbsd-996f35a12d480d934ab6ca9bd931b57fbe2cf38e.zip |
handle meta characters; good security idea from freebsd
Diffstat (limited to 'usr.bin/write/write.c')
-rw-r--r-- | usr.bin/write/write.c | 15 |
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; |