From 5cc18d83ce16a6766b8151054740d26677d0ae42 Mon Sep 17 00:00:00 2001 From: tomo Date: Wed, 8 Sep 1999 01:59:21 +0000 Subject: [PATCH] (Vcharset_ucs_bmp): New variable. (MAKE_CHAR): Modify for `ucs-bmp'. (breakup_char_1): Return `ucs-bmp' and code point of BMP for non-MULE characters of BMP. --- src/char-ucs.h | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/src/char-ucs.h b/src/char-ucs.h index aa78574..fe680f6 100644 --- a/src/char-ucs.h +++ b/src/char-ucs.h @@ -315,6 +315,7 @@ CHARSET_BY_LEADING_BYTE (Charset_ID lb) #define MIN_CHAR_96x96 0xF4C000 #define MAX_CHAR_96x96 (MIN_CHAR_96x96 + 96 * 96 * 80 - 1) +extern Lisp_Object Vcharset_ucs_bmp; /* Return a character whose charset is CHARSET and position-codes are C1 and C2. TYPE9N character ignores C2. */ @@ -327,6 +328,8 @@ MAKE_CHAR (Lisp_Object charset, int c1, int c2) return c1; else if (EQ (charset, Vcharset_control_1)) return c1 | 0x80; + else if (EQ (charset, Vcharset_ucs_bmp)) + return (c1 << 8) | c2; else if (EQ (charset, Vcharset_latin_iso8859_1)) return c1 | 0x80; else if (EQ (charset, Vcharset_greek_iso8859_7)) @@ -409,8 +412,9 @@ breakup_char_1 (Emchar c, Lisp_Object *charset, int *c1, int *c2) } else if (c < MIN_CHAR_GREEK) { - printf("not break up u+%x", c); - abort (); + *charset = Vcharset_ucs_bmp; + *c1 = c >> 8; + *c2 = c & 0xff; } else if (c <= MAX_CHAR_GREEK) { @@ -420,8 +424,9 @@ breakup_char_1 (Emchar c, Lisp_Object *charset, int *c1, int *c2) } else if (c < MIN_CHAR_CYRILLIC) { - printf("not break up u+%x", c); - abort (); + *charset = Vcharset_ucs_bmp; + *c1 = c >> 8; + *c2 = c & 0xff; } else if (c <= MAX_CHAR_CYRILLIC) { @@ -431,8 +436,9 @@ breakup_char_1 (Emchar c, Lisp_Object *charset, int *c1, int *c2) } else if (c < MIN_CHAR_HEBREW) { - printf("not break up u+%x", c); - abort (); + *charset = Vcharset_ucs_bmp; + *c1 = c >> 8; + *c2 = c & 0xff; } else if (c <= MAX_CHAR_HEBREW) { @@ -442,8 +448,9 @@ breakup_char_1 (Emchar c, Lisp_Object *charset, int *c1, int *c2) } else if (c < MIN_CHAR_THAI) { - printf("not break up u+%x", c); - abort (); + *charset = Vcharset_ucs_bmp; + *c1 = c >> 8; + *c2 = c & 0xff; } else if (c <= MAX_CHAR_THAI) { @@ -453,8 +460,9 @@ breakup_char_1 (Emchar c, Lisp_Object *charset, int *c1, int *c2) } else if (c < MIN_CHAR_HALFWIDTH_KATAKANA) { - printf("not break up u+%x", c); - abort (); + *charset = Vcharset_ucs_bmp; + *c1 = c >> 8; + *c2 = c & 0xff; } else if (c <= MAX_CHAR_HALFWIDTH_KATAKANA) { -- 1.7.10.4