summaryrefslogtreecommitdiff
path: root/src/print.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2002-03-03 20:04:17 +0000
committerRichard M. Stallman <rms@gnu.org>2002-03-03 20:04:17 +0000
commitae7367d33b9b0762667345b480f1ee3f22479828 (patch)
tree71da47c386861063c24530525ce95b003ea82099 /src/print.c
parentae02e06a51271468e880d85acff4b600a9cb2421 (diff)
downloademacs-ae7367d33b9b0762667345b480f1ee3f22479828.tar.gz
(print_object): Output multibyte chars 128...255
using \x even if ! print_escape_multibyte.
Diffstat (limited to 'src/print.c')
-rw-r--r--src/print.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/print.c b/src/print.c
index f0501bd0fb7..6f9d4a0120c 100644
--- a/src/print.c
+++ b/src/print.c
@@ -1429,11 +1429,15 @@ print_object (obj, printcharfun, escapeflag)
PRINTCHAR ('\\');
PRINTCHAR ('f');
}
- else if (multibyte && ! ASCII_BYTE_P (c)
- && print_escape_multibyte)
+ else if (multibyte
+ && ! ASCII_BYTE_P (c)
+ && (SINGLE_BYTE_CHAR_P (c) || print_escape_multibyte))
{
/* When multibyte is disabled,
- print multibyte string chars using hex escapes. */
+ print multibyte string chars using hex escapes.
+ For a char code that could be in a unibyte string,
+ when found in a multibyte string, always use a hex escape
+ so it reads back as multibyte. */
unsigned char outbuf[50];
sprintf (outbuf, "\\x%x", c);
strout (outbuf, -1, -1, printcharfun, 0);