From: tomo Date: Thu, 6 Sep 2001 08:57:43 +0000 (+0000) Subject: (map_char_table): Check a character is found in range->charset instead X-Git-Tag: r21-2-41-utf-2000-0_18-1~537 X-Git-Url: http://git.chise.org/gitweb/?a=commitdiff_plain;h=84e63607d2117606e15b56c975a81cbbc73834e8;p=chise%2Fxemacs-chise.git (map_char_table): Check a character is found in range->charset instead of non default value is defined in char-table when range is CHARTAB_RANGE_ROW. --- diff --git a/src/chartab.c b/src/chartab.c index d5cdf69..d85a58f 100644 --- a/src/chartab.c +++ b/src/chartab.c @@ -2750,18 +2750,21 @@ map_char_table (Lisp_Char_Table *ct, for (retval =0, i = cell_min; i <= cell_max && retval == 0; i++) { Emchar ch = DECODE_CHAR (range->charset, (range->row << 8) | i); - Lisp_Object val - = get_byte_table (get_byte_table - (get_byte_table - (get_byte_table - (ct->table, - (unsigned char)(ch >> 24)), - (unsigned char) (ch >> 16)), - (unsigned char) (ch >> 8)), - (unsigned char) ch); - - if (!UNBOUNDP (val)) + + if ( charset_code_point (range->charset, ch) >= 0 ) { + Lisp_Object val + = get_byte_table (get_byte_table + (get_byte_table + (get_byte_table + (ct->table, + (unsigned char)(ch >> 24)), + (unsigned char) (ch >> 16)), + (unsigned char) (ch >> 8)), + (unsigned char) ch); + + if (UNBOUNDP (val)) + val = ct->default_value; rainj.ch = ch; retval = (fn) (&rainj, val, arg); }