changeset 55162:4903fe69b0fa

(print_object): Print non-ascii characters in bool vector representation as octal escapes. Use BOOL_VECTOR_BITS_PER_CHAR instead of BITS_PER_CHAR.
author Andreas Schwab <schwab@suse.de>
date Mon, 26 Apr 2004 21:56:26 +0000
parents beac72c0215f
children 19df3b88b837
files src/print.c
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/print.c	Mon Apr 26 21:44:22 2004 +0000
+++ b/src/print.c	Mon Apr 26 21:56:26 2004 +0000
@@ -1,5 +1,5 @@
 /* Lisp object printing and output streams.
-   Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 01, 2003
+   Copyright (C) 1985, 86, 88, 93, 94, 95, 97, 98, 1999, 2000, 01, 03, 2004
 	Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -1783,7 +1783,8 @@
 	  register unsigned char c;
 	  struct gcpro gcpro1;
 	  int size_in_chars
-	    = (XBOOL_VECTOR (obj)->size + BITS_PER_CHAR - 1) / BITS_PER_CHAR;
+	    = ((XBOOL_VECTOR (obj)->size + BOOL_VECTOR_BITS_PER_CHAR - 1)
+	       / BOOL_VECTOR_BITS_PER_CHAR);
 
 	  GCPRO1 (obj);
 
@@ -1814,6 +1815,14 @@
 		  PRINTCHAR ('\\');
 		  PRINTCHAR ('f');
 		}
+	      else if (c > '\177')
+		{
+		  /* Use octal escapes to avoid encoding issues.  */
+		  PRINTCHAR ('\\');
+		  PRINTCHAR ('0' + ((c >> 6) & 3));
+		  PRINTCHAR ('0' + ((c >> 3) & 7));
+		  PRINTCHAR ('0' + (c & 7));
+		}
 	      else
 		{
 		  if (c == '\"' || c == '\\')