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;

Reply via email to