aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorStefan Monnier2014-07-01 21:49:31 -0400
committerStefan Monnier2014-07-01 21:49:31 -0400
commit1dc6f7e738e3ffe130626814f721c83c448fe9a8 (patch)
treedb4c2c50f9eec5e688b726b7ab147d05ec79d7c3 /src
parent8b3c1354a94cc7533e65a691053090b9096e69d7 (diff)
downloademacs-1dc6f7e738e3ffe130626814f721c83c448fe9a8.tar.gz
emacs-1dc6f7e738e3ffe130626814f721c83c448fe9a8.zip
* doc/lispref/keymaps.texi (Key Lookup): Remove mention of indirect entries.
(Scanning Keymaps): Reword the `noindirect' argument. * src/keymap.c (get_keyelt): Simplify. (copy_keymap_item): Remove left-over code for when we had key-shortcut caches.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog9
-rw-r--r--src/keymap.c42
2 files changed, 10 insertions, 41 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 17dbd106df3..7eb789ca341 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,9 @@
12014-07-02 Stefan Monnier <monnier@iro.umontreal.ca>
2
3 * keymap.c (get_keyelt): Simplify.
4 (copy_keymap_item): Remove left-over code for when we had
5 key-shortcut caches.
6
12014-06-30 Jan Djärv <jan.h.d@swipnet.se> 72014-06-30 Jan Djärv <jan.h.d@swipnet.se>
2 8
3 * nsterm.m (judge): EmacsScroller: Move dealloc code here. 9 * nsterm.m (judge): EmacsScroller: Move dealloc code here.
@@ -19,8 +25,7 @@
19 (mouseMoved:): Set any_help_event_p to YES if help event is 25 (mouseMoved:): Set any_help_event_p to YES if help event is
20 generated. Remove else with empty help event that triggered redisplay 26 generated. Remove else with empty help event that triggered redisplay
21 for every mouse move. 27 for every mouse move.
22 (windowDidResignKey:): If any_help_event_p, generate empty help 28 (windowDidResignKey:): If any_help_event_p, generate empty help event.
23 event.
24 29
252014-06-29 Dmitry Antipov <dmantipov@yandex.ru> 302014-06-29 Dmitry Antipov <dmantipov@yandex.ru>
26 31
diff --git a/src/keymap.c b/src/keymap.c
index 0b2b61dcc05..76119606643 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -727,11 +727,6 @@ get_keyelt (Lisp_Object object, bool autoload)
727 /* This is really the value. */ 727 /* This is really the value. */
728 return object; 728 return object;
729 729
730 /* If the keymap contents looks like (keymap ...) or (lambda ...)
731 then use itself. */
732 else if (EQ (XCAR (object), Qkeymap) || EQ (XCAR (object), Qlambda))
733 return object;
734
735 /* If the keymap contents looks like (menu-item name . DEFN) 730 /* If the keymap contents looks like (menu-item name . DEFN)
736 or (menu-item name DEFN ...) then use DEFN. 731 or (menu-item name DEFN ...) then use DEFN.
737 This is a new format menu item. */ 732 This is a new format menu item. */
@@ -768,25 +763,8 @@ get_keyelt (Lisp_Object object, bool autoload)
768 Keymap alist elements like (CHAR MENUSTRING . DEFN) 763 Keymap alist elements like (CHAR MENUSTRING . DEFN)
769 will be used by HierarKey menus. */ 764 will be used by HierarKey menus. */
770 else if (STRINGP (XCAR (object))) 765 else if (STRINGP (XCAR (object)))
771 { 766 object = XCDR (object);
772 object = XCDR (object);
773 /* Also remove a menu help string, if any,
774 following the menu item name. */
775 if (CONSP (object) && STRINGP (XCAR (object)))
776 object = XCDR (object);
777 /* Also remove the sublist that caches key equivalences, if any. */
778 if (CONSP (object) && CONSP (XCAR (object)))
779 {
780 Lisp_Object carcar;
781 carcar = XCAR (XCAR (object));
782 if (NILP (carcar) || VECTORP (carcar))
783 object = XCDR (object);
784 }
785 }
786 767
787 /* If the contents are (KEYMAP . ELEMENT), go indirect. */
788 else if (KEYMAPP (XCAR (object)))
789 error ("Wow, indirect keymap entry!!");
790 else 768 else
791 return object; 769 return object;
792 } 770 }
@@ -990,9 +968,6 @@ copy_keymap_item (Lisp_Object elt)
990 if (CONSP (tem) && EQ (XCAR (tem), Qkeymap)) 968 if (CONSP (tem) && EQ (XCAR (tem), Qkeymap))
991 XSETCAR (elt, Fcopy_keymap (tem)); 969 XSETCAR (elt, Fcopy_keymap (tem));
992 tem = XCDR (elt); 970 tem = XCDR (elt);
993 if (CONSP (tem) && CONSP (XCAR (tem)))
994 /* Delete cache for key equivalences. */
995 XSETCDR (elt, XCDR (tem));
996 } 971 }
997 } 972 }
998 else 973 else
@@ -1011,16 +986,6 @@ copy_keymap_item (Lisp_Object elt)
1011 elt = XCDR (elt); 986 elt = XCDR (elt);
1012 tem = XCDR (elt); 987 tem = XCDR (elt);
1013 } 988 }
1014 /* There may also be a list that caches key equivalences.
1015 Just delete it for the new keymap. */
1016 if (CONSP (tem)
1017 && CONSP (XCAR (tem))
1018 && (NILP (XCAR (XCAR (tem)))
1019 || VECTORP (XCAR (XCAR (tem)))))
1020 {
1021 XSETCDR (elt, XCDR (tem));
1022 tem = XCDR (tem);
1023 }
1024 if (CONSP (tem) && EQ (XCAR (tem), Qkeymap)) 989 if (CONSP (tem) && EQ (XCAR (tem), Qkeymap))
1025 XSETCDR (elt, Fcopy_keymap (tem)); 990 XSETCDR (elt, Fcopy_keymap (tem));
1026 } 991 }
@@ -2572,9 +2537,8 @@ If FIRSTONLY has another non-nil value, prefer bindings
2572that use the modifier key specified in `where-is-preferred-modifier' 2537that use the modifier key specified in `where-is-preferred-modifier'
2573\(or their meta variants) and entirely reject menu bindings. 2538\(or their meta variants) and entirely reject menu bindings.
2574 2539
2575If optional 4th arg NOINDIRECT is non-nil, don't follow indirections 2540If optional 4th arg NOINDIRECT is non-nil, don't extract the commands inside
2576to other keymaps or slots. This makes it possible to search for an 2541menu-items. This makes it possible to search for a menu-item itself.
2577indirect definition itself.
2578 2542
2579The optional 5th arg NO-REMAP alters how command remapping is handled: 2543The optional 5th arg NO-REMAP alters how command remapping is handled:
2580 2544