changeset 47046:37cf6131b734

(get_next_display_element): In unibyte case, don't use octal form for such eight-bit characters that can be converted to multibyte char.
author Kenichi Handa <handa@m17n.org>
date Tue, 27 Aug 2002 00:59:55 +0000
parents eb9f660c2993
children 808507a40399
files src/xdisp.c
diffstat 1 files changed, 14 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/src/xdisp.c	Tue Aug 27 00:59:34 2002 +0000
+++ b/src/xdisp.c	Tue Aug 27 00:59:55 2002 +0000
@@ -4258,14 +4258,22 @@
 	     the translation.  This could easily be changed but I
 	     don't believe that it is worth doing.
 
-	     Non-printable multibyte characters are also translated
-	     octal form.  */
-	  else if ((it->c < ' '
+	     If it->multibyte_p is nonzero, eight-bit characters and
+	     non-printable multibyte characters are also translated to
+	     octal form.
+
+	     If it->multibyte_p is zero, eight-bit characters that
+	     don't have corresponding multibyte char code are also
+	     translated to octal form.  */
+	  else if (((it->c < ' ' || it->c == 127)
 		    && (it->area != TEXT_AREA
 			|| (it->c != '\n' && it->c != '\t')))
-		   || (it->c >= 127
-		       && it->len == 1)
-		   || !CHAR_PRINTABLE_P (it->c))
+		   || (it->multibyte_p
+		       ? ((it->c >= 127
+			   && it->len == 1)
+			  || !CHAR_PRINTABLE_P (it->c))
+		       : (it->c >= 128
+			  && it->c == unibyte_char_to_multibyte (it->c))))
 	    {
 	      /* IT->c is a control character which must be displayed
 		 either as '\003' or as `^C' where the '\\' and '^'