From 7e798f25b730162c8c69d88fa0d29c79f81d59fa Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Wed, 28 May 1997 04:36:22 +0000 Subject: [PATCH] (map_char_table): For sub char-table, index should be start from 0 (not from 32) considering a composite character. (Fmap_char_table): Doc-string adjusted. The variable indices is declared as an array of Lisp_Object. --- src/fns.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/fns.c b/src/fns.c index d4a48d2dc8f..b912071a5f8 100644 --- a/src/fns.c +++ b/src/fns.c @@ -1439,11 +1439,11 @@ map_char_table (c_function, function, subtable, arg, depth, indices) } else { - i = 32; + i = 0; to = SUB_CHAR_TABLE_ORDINARY_SLOTS; } - for (i; i < to; i++) + for (; i < to; i++) { Lisp_Object elt = XCHAR_TABLE (subtable)->contents[i]; @@ -1453,8 +1453,7 @@ map_char_table (c_function, function, subtable, arg, depth, indices) { if (depth >= 3) error ("Too deep char table"); - map_char_table (c_function, function, elt, arg, - depth + 1, indices); + map_char_table (c_function, function, elt, arg, depth + 1, indices); } else { @@ -1476,15 +1475,16 @@ map_char_table (c_function, function, subtable, arg, depth, indices) DEFUN ("map-char-table", Fmap_char_table, Smap_char_table, 2, 2, 0, - "Call FUNCTION for each range of like characters in CHAR-TABLE.\n\ + "Call FUNCTION for each (normal and generic) characters in CHAR-TABLE.\n\ FUNCTION is called with two arguments--a key and a value.\n\ -The key is always a possible RANGE argument to `set-char-table-range'.") +The key is always a possible IDX argument to `aref'.") (function, char_table) Lisp_Object function, char_table; { - Lisp_Object keyvec; /* The depth of char table is at most 3. */ - Lisp_Object *indices = (Lisp_Object *) alloca (3 * sizeof (Lisp_Object)); + Lisp_Object indices[3]; + + CHECK_CHAR_TABLE (char_table, 1); map_char_table (NULL, function, char_table, char_table, 0, indices); return Qnil; -- 2.39.2