update.
[chise/xemacs-chise.git] / src / mule-charset.c
index fe66cef..d093f54 100644 (file)
@@ -62,6 +62,7 @@ Lisp_Object Vcharset_ucs_bmp;
 Lisp_Object Vcharset_latin_viscii;
 Lisp_Object Vcharset_latin_viscii_lower;
 Lisp_Object Vcharset_latin_viscii_upper;
+Lisp_Object Vcharset_ethiopic_ucs;
 Lisp_Object Vcharset_hiragana_jisx0208;
 Lisp_Object Vcharset_katakana_jisx0208;
 #endif
@@ -570,9 +571,11 @@ Store CHARACTER's ATTRIBUTE with VALUE.
          Lisp_Object ei = Fcar (rest);
          
          if (!INTP (ei))
-           signal_simple_error ("Invalid value for coded-charset",
-                                value);
-         i = XINT (ei) - XCHARSET_BYTE_OFFSET (ccs);
+           signal_simple_error ("Invalid value for coded-charset", value);
+         i = XINT (ei);
+         if ((i < 0) || (255 < i))
+           signal_simple_error ("Invalid value for coded-charset", value);
+         i -= XCHARSET_BYTE_OFFSET (ccs);
          nv = XVECTOR_DATA(v)[i];
          rest = Fcdr (rest);
          if (CONSP (rest))
@@ -793,6 +796,7 @@ Lisp_Object Qascii,
   Qlatin_viscii_upper,
   Qvietnamese_viscii_lower,
   Qvietnamese_viscii_upper,
+  Qethiopic_ucs,
   Qhiragana_jisx0208,
   Qkatakana_jisx0208,
 #endif
@@ -2505,6 +2509,7 @@ syms_of_mule_charset (void)
   defsymbol (&Qlatin_viscii_upper,     "latin-viscii-upper");
   defsymbol (&Qvietnamese_viscii_lower,        "vietnamese-viscii-lower");
   defsymbol (&Qvietnamese_viscii_upper,        "vietnamese-viscii-upper");
+  defsymbol (&Qethiopic_ucs,           "ethiopic-ucs");
   defsymbol (&Qhiragana_jisx0208,      "hiragana-jisx0208");
   defsymbol (&Qkatakana_jisx0208,      "katakana-jisx0208");
 #endif
@@ -2833,6 +2838,15 @@ complex_vars_of_mule_charset (void)
                  build_string ("VISCII 1.1 (Vietnamese)"),
                  build_string ("VISCII1\\.1"),
                  Qnil, 0, 0, 0, 0);
+  Vcharset_ethiopic_ucs =
+    make_charset (LEADING_BYTE_ETHIOPIC_UCS, Qethiopic_ucs,
+                 CHARSET_TYPE_256X256, 2, 2, 0,
+                 CHARSET_LEFT_TO_RIGHT,
+                 build_string ("Ethiopic (UCS)"),
+                 build_string ("Ethiopic (UCS)"),
+                 build_string ("Ethiopic of UCS"),
+                 build_string ("Ethiopic-Unicode"),
+                 Qnil, 0x1200, 0x137F, 0x1200, 0);
   Vcharset_hiragana_jisx0208 =
     make_charset (LEADING_BYTE_HIRAGANA_JISX0208, Qhiragana_jisx0208,
                  CHARSET_TYPE_94X94, 2, 0, 'B',