Module Name: src
Committed By: roy
Date: Fri Sep 26 13:48:00 UTC 2014
Modified Files:
src/lib/libc/gen: vis.c
Log Message:
Don't encode any characters in VIS_CSTYLE that have a special meaning
in unvis(3), such as n r b, etc.
To generate a diff of this commit:
cvs rdiff -u -r1.64 -r1.65 src/lib/libc/gen/vis.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libc/gen/vis.c
diff -u src/lib/libc/gen/vis.c:1.64 src/lib/libc/gen/vis.c:1.65
--- src/lib/libc/gen/vis.c:1.64 Fri Sep 26 05:01:44 2014
+++ src/lib/libc/gen/vis.c Fri Sep 26 13:48:00 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: vis.c,v 1.64 2014/09/26 05:01:44 christos Exp $ */
+/* $NetBSD: vis.c,v 1.65 2014/09/26 13:48:00 roy Exp $ */
/*-
* Copyright (c) 1989, 1993
@@ -57,7 +57,7 @@
#include <sys/cdefs.h>
#if defined(LIBC_SCCS) && !defined(lint)
-__RCSID("$NetBSD: vis.c,v 1.64 2014/09/26 05:01:44 christos Exp $");
+__RCSID("$NetBSD: vis.c,v 1.65 2014/09/26 13:48:00 roy Exp $");
#endif /* LIBC_SCCS and not lint */
#ifdef __FBSDID
__FBSDID("$FreeBSD$");
@@ -216,8 +216,22 @@ do_mbyte(wchar_t *dst, wint_t c, int fla
*dst++ = L'0';
}
return dst;
+ /* We cannot encode these characters in VIS_CSTYLE
+ * because they special meaning */
+ case L'n':
+ case L'r':
+ case L'b':
+ case L'a':
+ case L'v':
+ case L't':
+ case L'f':
+ case L's':
+ case L'0':
+ case L'M':
+ case L'^':
+ break;
default:
- if (iswgraph(c)) {
+ if (iswgraph(c) && !iswoctal(c)) {
*dst++ = L'\\';
*dst++ = c;
return dst;