diff options
author | Andreas Schwab <schwab@suse.de> | 2008-12-26 14:43:21 +0000 |
---|---|---|
committer | Andreas Schwab <schwab@suse.de> | 2008-12-26 14:43:21 +0000 |
commit | d704470f14a59d218aaf843f01ce4e0b1af4ea82 (patch) | |
tree | 97df951de64a36013b780861d286e47e02b6be4f /src | |
parent | 54b33868432b9727a27ce9fe4698ace9da120631 (diff) | |
download | emacs-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/ChangeLog | 5 | ||||
-rw-r--r-- | src/keymap.c | 4 |
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); } |