]> git.eshelyaron.com Git - emacs.git/commitdiff
(map_sub_char_table): If the range contains just one
authorKenichi Handa <handa@m17n.org>
Thu, 20 Sep 2007 07:49:52 +0000 (07:49 +0000)
committerKenichi Handa <handa@m17n.org>
Thu, 20 Sep 2007 07:49:52 +0000 (07:49 +0000)
character, call the function with that character even if the depth
is not 3.
(map_char_table): Likewise.

src/chartab.c

index bc97103c1e351bbc4e6557fd5f27ec363eb40821..021b163618d64885fa31581f1fab7dfcedacf92d 100644 (file)
@@ -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;