Mercurial > emacs
changeset 88946:233c080b5756
(CHAR_TO_BYTE8): If C is not eight-bit char, call
multibyte_char_to_unibyte.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Wed, 31 Jul 2002 07:05:33 +0000 |
parents | 9c97427fb1f6 |
children | 894b8bce3208 |
files | src/character.h |
diffstat | 1 files changed, 8 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/character.h Wed Jul 31 07:05:17 2002 +0000 +++ b/src/character.h Wed Jul 31 07:05:33 2002 +0000 @@ -51,15 +51,18 @@ #define MAX_4_BYTE_CHAR 0x1FFFFF #define MAX_5_BYTE_CHAR 0x3FFF7F +/* Nonzero iff C is a character that corresponds to a raw 8-bit + byte. */ +#define CHAR_BYTE8_P(c) ((c) > MAX_5_BYTE_CHAR) + /* Return the character code for raw 8-bit byte BYTE. */ #define BYTE8_TO_CHAR(byte) ((byte) + 0x3FFF00) /* Return the raw 8-bit byte for character C. */ -#define CHAR_TO_BYTE8(c) ((c) - 0x3FFF00) - -/* Nonzero iff C is a character that corresponds to a raw 8-bit - byte. */ -#define CHAR_BYTE8_P(c) ((c) > MAX_5_BYTE_CHAR) +#define CHAR_TO_BYTE8(c) \ + (CHAR_BYTE8_P (c) \ + ? (c) - 0x3FFF00 \ + : multibyte_char_to_unibyte (c, Qnil)) /* Nonzero iff BYTE is the 1st byte of a multibyte form of a character that corresponds to a raw 8-bit byte. */