]> git.eshelyaron.com Git - emacs.git/commitdiff
(CHAR_STRING): Optimized for single byte characters.
authorKenichi Handa <handa@m17n.org>
Tue, 10 Oct 2000 02:00:52 +0000 (02:00 +0000)
committerKenichi Handa <handa@m17n.org>
Tue, 10 Oct 2000 02:00:52 +0000 (02:00 +0000)
src/charset.h

index 83b31abf1f6380421df329b58871af9df963a61c..b8ee0af40f7e46163daed6952c70ee39131e6879 100644 (file)
@@ -524,9 +524,11 @@ extern int iso_charset_table[2][2][128];
    advance.  Returns the length of the multi-byte form.  If C is an
    invalid character code, signal an error.  */
 
-#define CHAR_STRING(c, str)            \
-  (ASCII_BYTE_P (c)                    \
-   ? (*(str) = (unsigned char)(c), 1)  \
+#define CHAR_STRING(c, str)                                              \
+  (SINGLE_BYTE_CHAR_P (c)                                                \
+   ? ((ASCII_BYTE_P (c) || c >= 0xA0)                                    \
+      ? (*(str) = (unsigned char)(c), 1)                                 \
+      : (*(str) = LEADING_CODE_8_BIT_CONTROL, *((str)+ 1) = c + 0x20, 2)) \
    : char_to_string (c, (unsigned char *) str))
 
 /* Return a character code of the character of which multi-byte form