Mercurial > emacs
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