summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2008-12-26 14:43:21 +0000
committerAndreas Schwab <schwab@suse.de>2008-12-26 14:43:21 +0000
commitd704470f14a59d218aaf843f01ce4e0b1af4ea82 (patch)
tree97df951de64a36013b780861d286e47e02b6be4f /src
parent54b33868432b9727a27ce9fe4698ace9da120631 (diff)
downloademacs-d704470f14a59d218aaf843f01ce4e0b1af4ea82.tar.gz
(map_keymap_char_table_item): Make a copy of KEY if it is a
cons.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog5
-rw-r--r--src/keymap.c4
2 files changed, 9 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 4d4a7a51b20..804e703eadd 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -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.
diff --git a/src/keymap.c b/src/keymap.c
index 753d1991a3e..81ef32ed939 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -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);
}