(print) <Lisp_String>: When multibyte is enabled, print

single-byte non-ASCII chars using octal escapes.
This commit is contained in:
Karl Heuer 1998-01-18 04:51:16 +00:00
parent e7fc914b02
commit 974a6ff52f

View file

@ -1149,8 +1149,8 @@ print (obj, printcharfun, escapeflag)
PRINTCHAR ('\\');
PRINTCHAR ('f');
}
else if (! SINGLE_BYTE_CHAR_P (c)
&& NILP (current_buffer->enable_multibyte_characters))
else if ((! SINGLE_BYTE_CHAR_P (c)
&& NILP (current_buffer->enable_multibyte_characters)))
{
/* When multibyte is disabled,
print multibyte string chars using hex escapes. */
@ -1158,6 +1158,17 @@ print (obj, printcharfun, escapeflag)
sprintf (outbuf, "\\x%x", c);
strout (outbuf, -1, -1, printcharfun, 0);
}
else if (SINGLE_BYTE_CHAR_P (c)
&& ! ASCII_BYTE_P (c)
&& ! NILP (current_buffer->enable_multibyte_characters))
{
/* When multibyte is enabled,
print single-byte non-ASCII string chars
using octal escapes. */
unsigned char outbuf[5];
sprintf (outbuf, "\\%03o", c);
strout (outbuf, -1, -1, printcharfun, 0);
}
else
{
if (c == '\"' || c == '\\')