X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Fmule-charset.c;h=db6b2b8d97f7e77868b225969a3059a16507e67b;hb=d5e4e63d5665c99c6ae51a2a7e8dd6783400fd90;hp=6494259e1ba12f59ec2c733d3d23bb3e6bce2f31;hpb=ba7145fab6cd42b144547faa9aa18b311c73da19;p=chise%2Fxemacs-chise.git- diff --git a/src/mule-charset.c b/src/mule-charset.c index 6494259..db6b2b8 100644 --- a/src/mule-charset.c +++ b/src/mule-charset.c @@ -142,9 +142,9 @@ put_byte_from_character_table (Emchar ch, unsigned char val, { if (table->base == NULL) { - table->base = xmalloc (128); - table->offset = ch - (ch % 128); - table->size = 128; + table->base = xmalloc (256); + table->offset = ch - (ch % 256); + table->size = 256; table->base[ch - table->offset] = val; } else @@ -156,7 +156,7 @@ put_byte_from_character_table (Emchar ch, unsigned char val, size_t new_size = table->size - i; size_t j; - new_size += 128 - (new_size % 128); + new_size += 256 - (new_size % 256); table->base = xrealloc (table->base, new_size); memmove (table->base + (new_size - table->size), table->base, table->size); @@ -171,7 +171,7 @@ put_byte_from_character_table (Emchar ch, unsigned char val, size_t new_size = i + 1; size_t j; - new_size += 128 - (new_size % 128); + new_size += 256 - (new_size % 256); table->base = xrealloc (table->base, new_size); for (j = table->size; j < new_size; j++) table->base[j] = 0; @@ -237,6 +237,8 @@ Lisp_Object Qascii, Qucs_bmp, Qlatin_viscii_lower, Qlatin_viscii_upper, + Qvietnamese_viscii_lower, + Qvietnamese_viscii_upper, Qhiragana_jisx0208, Qkatakana_jisx0208, #endif @@ -611,7 +613,9 @@ mark_charset (Lisp_Object obj, void (*markobj) (Lisp_Object)) markobj (cs->doc_string); markobj (cs->registry); markobj (cs->ccl_program); +#ifdef UTF2000 markobj (cs->decoding_table); +#endif return cs->name; } @@ -1322,7 +1326,7 @@ NEW-NAME is the name of the new charset. Return the new charset. CHARSET_CODE_OFFSET(cs), CHARSET_BYTE_OFFSET(cs) #else - Qnil, 0, 0, 0 + Qnil, 0, 0, 0, 0 #endif ); @@ -1332,6 +1336,16 @@ NEW-NAME is the name of the new charset. Return the new charset. return new_charset; } +DEFUN ("define-charset-alias", Fdefine_charset_alias, 2, 2, 0, /* +Define symbol ALIAS as an alias for CHARSET. +*/ + (alias, charset)) +{ + CHECK_SYMBOL (alias); + charset = Fget_charset (charset); + return Fputhash (alias, charset, Vcharset_hash_table); +} + /* #### Reverse direction charsets not yet implemented. */ #if 0 DEFUN ("charset-reverse-direction-charset", Fcharset_reverse_direction_charset, @@ -1844,6 +1858,7 @@ syms_of_mule_charset (void) DEFSUBR (Fmake_charset); DEFSUBR (Fmake_reverse_direction_charset); /* DEFSUBR (Freverse_direction_charset); */ + DEFSUBR (Fdefine_charset_alias); DEFSUBR (Fcharset_from_attributes); DEFSUBR (Fcharset_short_name); DEFSUBR (Fcharset_long_name); @@ -1904,8 +1919,10 @@ syms_of_mule_charset (void) defsymbol (&Qchinese_cns11643_2, "chinese-cns11643-2"); #ifdef UTF2000 defsymbol (&Qucs_bmp, "ucs-bmp"); - defsymbol (&Qlatin_viscii_lower, "vietnamese-viscii-lower"); - defsymbol (&Qlatin_viscii_upper, "vietnamese-viscii-upper"); + defsymbol (&Qlatin_viscii_lower, "latin-viscii-lower"); + defsymbol (&Qlatin_viscii_upper, "latin-viscii-upper"); + defsymbol (&Qvietnamese_viscii_lower, "vietnamese-viscii-lower"); + defsymbol (&Qvietnamese_viscii_upper, "vietnamese-viscii-upper"); defsymbol (&Qhiragana_jisx0208, "hiragana-jisx0208"); defsymbol (&Qkatakana_jisx0208, "katakana-jisx0208"); #endif