]> git.eshelyaron.com Git - emacs.git/commitdiff
(map_keymap_char_table_item): Make a copy of KEY if it is a
authorAndreas Schwab <schwab@suse.de>
Fri, 26 Dec 2008 14:43:21 +0000 (14:43 +0000)
committerAndreas Schwab <schwab@suse.de>
Fri, 26 Dec 2008 14:43:21 +0000 (14:43 +0000)
cons.

src/ChangeLog
src/keymap.c

index 4d4a7a51b20b264119da2c80be2f8af8cf2cf338..804e703eadde69db62260c3e5ca790473363ca03 100644 (file)
@@ -1,3 +1,8 @@
+2008-12-26  Andreas Schwab  <schwab@suse.de>
+
+       * keymap.c (map_keymap_char_table_item): Make a copy of KEY if it is a
+       cons.
+
 2008-12-26  Martin Rudalics  <rudalics@gmx.at>
 
        * textprop.c (Qminibuffer_prompt): New variable.
index 753d1991a3ef5bf20cbe6481379661dd2cd6807c..81ef32ed9391bf7f9c9d1e1c29570e1c99d73c91 100644 (file)
@@ -650,6 +650,10 @@ map_keymap_char_table_item (args, key, val)
     {
       map_keymap_function_t fun = XSAVE_VALUE (XCAR (args))->pointer;
       args = XCDR (args);
+      /* If the key is a range, make a copy since map_char_table modifies
+        it in place.  */
+      if (CONSP (key))
+       key = Fcons (XCAR (key), XCDR (key));
       map_keymap_item (fun, XCDR (args), key, val,
                       XSAVE_VALUE (XCAR (args))->pointer);
     }