diff src/charset.h @ 32353:803ca8bc08b2

(CHAR_STRING): Optimized for single byte characters.
author Kenichi Handa <handa@m17n.org>
date Tue, 10 Oct 2000 02:00:52 +0000
parents b5664da02625
children 9a2cf1e0032c
line wrap: on
line diff
--- a/src/charset.h	Tue Oct 10 02:00:33 2000 +0000
+++ b/src/charset.h	Tue Oct 10 02:00:52 2000 +0000
@@ -524,9 +524,11 @@
    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