changeset 42423:fe55eaa5dfb3

(print_object): In multibyte string, use hex escapes. Use octal only for unibyte strings. (PRINTPREPARE): Don't ever set Qprint_escape_nonascii.
author Richard M. Stallman <rms@gnu.org>
date Sun, 30 Dec 2001 03:22:55 +0000
parents d0809974975f
children 87b4443a330e
files src/print.c
diffstat 1 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/print.c	Sun Dec 30 02:39:12 2001 +0000
+++ b/src/print.c	Sun Dec 30 03:22:55 2001 +0000
@@ -226,9 +226,6 @@
        if (NILP (current_buffer->enable_multibyte_characters)		\
 	   && ! print_escape_multibyte)					\
          specbind (Qprint_escape_multibyte, Qt);			\
-       if (! NILP (current_buffer->enable_multibyte_characters)		\
-	   && ! print_escape_nonascii)					\
-         specbind (Qprint_escape_nonascii, Qt);				\
        if (print_buffer != 0)						\
 	 {								\
 	   string = make_string_from_bytes (print_buffer,		\
@@ -1384,6 +1381,7 @@
 	  /* 1 means we must ensure that the next character we output
 	     cannot be taken as part of a hex character escape.  */
 	  int need_nonhex = 0;
+	  int multibyte = STRING_MULTIBYTE (obj);
 
 	  GCPRO1 (obj);
 
@@ -1404,7 +1402,7 @@
 	      int len;
 	      int c;
 
-	      if (STRING_MULTIBYTE (obj))
+	      if (multibyte)
 		{
 		  c = STRING_CHAR_AND_LENGTH (str + i_byte,
 					      size_byte - i_byte, len);
@@ -1428,7 +1426,8 @@
 		  PRINTCHAR ('\\');
 		  PRINTCHAR ('f');
 		}
-	      else if (! SINGLE_BYTE_CHAR_P (c) && print_escape_multibyte)
+	      else if (multibyte && ! ASCII_BYTE_P (c)
+		       && (print_escape_multibyte || print_escape_nonascii))
 		{
 		  /* When multibyte is disabled,
 		     print multibyte string chars using hex escapes.  */
@@ -1437,7 +1436,8 @@
 		  strout (outbuf, -1, -1, printcharfun, 0);
 		  need_nonhex = 1;
 		}
-	      else if (SINGLE_BYTE_CHAR_P (c) && ! ASCII_BYTE_P (c)
+	      else if (! multibyte
+		       && SINGLE_BYTE_CHAR_P (c) && ! ASCII_BYTE_P (c)
 		       && print_escape_nonascii)
 		{
 		  /* When printing in a multibyte buffer