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
Lisp_Object Q_decomposition;
Lisp_Object Q_ucs;
-Lisp_Object Qwide;
-Lisp_Object Qnarrow;
Lisp_Object Qcompat;
Lisp_Object QnoBreak;
-Lisp_Object Qsuper;
Lisp_Object Qfraction;
+Lisp_Object Qsuper;
+Lisp_Object Qsub;
+Lisp_Object Qcircle;
+Lisp_Object Qsquare;
+Lisp_Object Qwide;
+Lisp_Object Qnarrow;
+Lisp_Object Qfont;
Emchar
to_char_code (Lisp_Object v, char* err_msg, Lisp_Object err_arg)
return XINT (v);
if (CHARP (v))
return XCHAR (v);
- else if (EQ (v, Qwide))
+ else if (EQ (v, Qcompat))
return -1;
- else if (EQ (v, Qnarrow))
+ else if (EQ (v, QnoBreak))
return -2;
- else if (EQ (v, Qcompat))
+ else if (EQ (v, Qfraction))
return -3;
- else if (EQ (v, QnoBreak))
- return -4;
else if (EQ (v, Qsuper))
+ return -4;
+ else if (EQ (v, Qsub))
return -5;
- else if (EQ (v, Qfraction))
+ else if (EQ (v, Qcircle))
return -6;
+ else if (EQ (v, Qsquare))
+ return -7;
+ else if (EQ (v, Qwide))
+ return -8;
+ else if (EQ (v, Qnarrow))
+ return -9;
+ else if (EQ (v, Qfont))
+ return -10;
else
signal_simple_error (err_msg, err_arg);
}
{
Lisp_Object ccs;
+ CHECK_CHAR (character);
ccs = Ffind_charset (attribute);
if (!NILP (ccs))
{
XCHARSET_DECODING_TABLE (ccs) = v = make_vector (ccs_len, Qnil);
}
+ if (XCHARSET_GRAPHIC (ccs) == 1)
+ value = Fcopy_list (value);
rest = value;
i = -1;
while (CONSP (rest))
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);
+ if (XCHARSET_GRAPHIC (ccs) == 1)
+ {
+ i &= 0x7F;
+ Fsetcar (rest, make_int (i));
+ }
+ i -= XCHARSET_BYTE_OFFSET (ccs);
nv = XVECTOR_DATA(v)[i];
rest = Fcdr (rest);
if (CONSP (rest))
Qlatin_viscii_upper,
Qvietnamese_viscii_lower,
Qvietnamese_viscii_upper,
+ Qethiopic_ucs,
Qhiragana_jisx0208,
Qkatakana_jisx0208,
#endif
#ifdef UTF2000
defsymbol (&Q_ucs, "->ucs");
defsymbol (&Q_decomposition, "->decomposition");
- defsymbol (&Qwide, "wide");
- defsymbol (&Qnarrow, "narrow");
defsymbol (&Qcompat, "compat");
defsymbol (&QnoBreak, "noBreak");
- defsymbol (&Qsuper, "super");
defsymbol (&Qfraction, "fraction");
+ defsymbol (&Qsuper, "super");
+ defsymbol (&Qsub, "sub");
+ defsymbol (&Qcircle, "circle");
+ defsymbol (&Qsquare, "square");
+ defsymbol (&Qwide, "wide");
+ defsymbol (&Qnarrow, "narrow");
+ defsymbol (&Qfont, "font");
defsymbol (&Qucs, "ucs");
defsymbol (&Qucs_bmp, "ucs-bmp");
defsymbol (&Qlatin_viscii, "latin-viscii");
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
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',