From 84e63607d2117606e15b56c975a81cbbc73834e8 Mon Sep 17 00:00:00 2001 From: tomo Date: Thu, 6 Sep 2001 08:57:43 +0000 Subject: [PATCH] (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. --- src/chartab.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) 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); } -- 1.7.10.4