diff --git a/src/ChangeLog b/src/ChangeLog index 4d4a7a51b20b264119da2c80be2f8af8cf2cf338..804e703eadde69db62260c3e5ca790473363ca03 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2008-12-26 Andreas Schwab + + * keymap.c (map_keymap_char_table_item): Make a copy of KEY if it is a + cons. + 2008-12-26 Martin Rudalics * textprop.c (Qminibuffer_prompt): New variable. diff --git a/src/keymap.c b/src/keymap.c index 753d1991a3ef5bf20cbe6481379661dd2cd6807c..81ef32ed9391bf7f9c9d1e1c29570e1c99d73c91 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); }