aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/syslogd/syslogd.c
diff options
context:
space:
mode:
authorAndrey A. Chernov <ache@FreeBSD.org>2000-04-18 01:12:27 +0000
committerAndrey A. Chernov <ache@FreeBSD.org>2000-04-18 01:12:27 +0000
commit8d396be510de9306b0efd32352a69860d7d195fc (patch)
tree50323ec666b16dd52001f529293a6ae7d6b3950e /usr.sbin/syslogd/syslogd.c
parent487e50ecdbbfbb4a8a2f0cafc6ebf64106c9608c (diff)
downloadsrc-8d396be510de9306b0efd32352a69860d7d195fc.tar.gz
src-8d396be510de9306b0efd32352a69860d7d195fc.zip
Enable 8bit chars excepting high controls
Notes
Notes: svn path=/head/; revision=59341
Diffstat (limited to 'usr.sbin/syslogd/syslogd.c')
-rw-r--r--usr.sbin/syslogd/syslogd.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/usr.sbin/syslogd/syslogd.c b/usr.sbin/syslogd/syslogd.c
index 0727b2bc2dab..ca5391d34e77 100644
--- a/usr.sbin/syslogd/syslogd.c
+++ b/usr.sbin/syslogd/syslogd.c
@@ -577,9 +577,14 @@ printline(hname, msg)
q = line;
- while ((c = *p++ & 0177) != '\0' &&
- q < &line[sizeof(line) - 1])
- if (iscntrl(c))
+ while ((c = (unsigned char)*p++) != '\0' &&
+ q < &line[sizeof(line) - 3]) {
+ if ((c & 0x80) && c < 0xA0) {
+ c &= 0x7F;
+ *q++ = 'M';
+ *q++ = '-';
+ }
+ if (isascii(c) && iscntrl(c)) {
if (c == '\n')
*q++ = ' ';
else if (c == '\t')
@@ -588,8 +593,9 @@ printline(hname, msg)
*q++ = '^';
*q++ = c ^ 0100;
}
- else
+ } else
*q++ = c;
+ }
*q = '\0';
logmsg(pri, line, hname, 0);