diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/keymap.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/keymap.c b/src/keymap.c index 5aed4129bb7..0b7de3e9cc5 100644 --- a/src/keymap.c +++ b/src/keymap.c | |||
| @@ -975,10 +975,12 @@ copy_keymap_item (Lisp_Object elt, int depth) | |||
| 975 | } | 975 | } |
| 976 | 976 | ||
| 977 | static void | 977 | static void |
| 978 | copy_keymap_set_char_table (Lisp_Object chartable, Lisp_Object idx, | 978 | copy_keymap_set_char_table (Lisp_Object chartable_and_depth, Lisp_Object idx, |
| 979 | Lisp_Object elt) | 979 | Lisp_Object elt) |
| 980 | { | 980 | { |
| 981 | Fset_char_table_range (chartable, idx, copy_keymap_item (elt, 0)); | 981 | Fset_char_table_range |
| 982 | (XCAR (chartable_and_depth), idx, | ||
| 983 | copy_keymap_item (elt, XFIXNUM (XCDR (chartable_and_depth)))); | ||
| 982 | } | 984 | } |
| 983 | 985 | ||
| 984 | static Lisp_Object | 986 | static Lisp_Object |
| @@ -999,7 +1001,8 @@ copy_keymap_1 (Lisp_Object keymap, int depth) | |||
| 999 | if (CHAR_TABLE_P (elt)) | 1001 | if (CHAR_TABLE_P (elt)) |
| 1000 | { | 1002 | { |
| 1001 | elt = Fcopy_sequence (elt); | 1003 | elt = Fcopy_sequence (elt); |
| 1002 | map_char_table (copy_keymap_set_char_table, Qnil, elt, elt); | 1004 | map_char_table (copy_keymap_set_char_table, Qnil, elt, |
| 1005 | Fcons (elt, make_fixnum (depth + 1))); | ||
| 1003 | } | 1006 | } |
| 1004 | else if (VECTORP (elt)) | 1007 | else if (VECTORP (elt)) |
| 1005 | { | 1008 | { |