summaryrefslogtreecommitdiff
path: root/src/chartab.c
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>2007-09-20 07:49:52 +0000
committerKenichi Handa <handa@m17n.org>2007-09-20 07:49:52 +0000
commit0a4bacdc2b320e9181e5f8a56b1e05dc78d3564a (patch)
tree466bf5189984b1a9b2de05b8ea055e7c12401188 /src/chartab.c
parent3e91c575a8e0e0b5c0f1deb3794e32bc7fdfe9f4 (diff)
downloademacs-0a4bacdc2b320e9181e5f8a56b1e05dc78d3564a.tar.gz
(map_sub_char_table): If the range contains just one
character, call the function with that character even if the depth is not 3. (map_char_table): Likewise.
Diffstat (limited to 'src/chartab.c')
-rw-r--r--src/chartab.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/chartab.c b/src/chartab.c
index bc97103c1e3..021b163618d 100644
--- a/src/chartab.c
+++ b/src/chartab.c
@@ -805,8 +805,7 @@ map_sub_char_table (c_function, function, table, arg, val, range,
if (! NILP (val) && different_value)
{
XSETCDR (range, make_number (c - 1));
- if (depth == 3
- && EQ (XCAR (range), XCDR (range)))
+ if (EQ (XCAR (range), XCDR (range)))
{
if (c_function)
(*c_function) (arg, XCAR (range), val);
@@ -875,10 +874,20 @@ map_char_table (c_function, function, table, arg)
if (! NILP (val))
{
- if (c_function)
- (*c_function) (arg, range, val);
+ if (EQ (XCAR (range), XCDR (range)))
+ {
+ if (c_function)
+ (*c_function) (arg, XCAR (range), val);
+ else
+ call2 (function, XCAR (range), val);
+ }
else
- call2 (function, range, val);
+ {
+ if (c_function)
+ (*c_function) (arg, range, val);
+ else
+ call2 (function, range, val);
+ }
}
UNGCPRO;