changeset 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 565db62c7ee1
children eaa80d9a03d4
files src/charset.h
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
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