diff options
author | Kenichi Handa <handa@m17n.org> | 2007-09-20 07:49:52 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 2007-09-20 07:49:52 +0000 |
commit | 0a4bacdc2b320e9181e5f8a56b1e05dc78d3564a (patch) | |
tree | 466bf5189984b1a9b2de05b8ea055e7c12401188 /src/chartab.c | |
parent | 3e91c575a8e0e0b5c0f1deb3794e32bc7fdfe9f4 (diff) | |
download | emacs-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.c | 19 |
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; |