From: Stefan Monnier Date: Sun, 27 Aug 2000 16:21:55 +0000 (+0000) Subject: (store_in_keymap, fix_submap_inheritance): New prototypes. X-Git-Tag: emacs-pretest-21.0.90~1944 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=5749539688a77bde9dd6fd473e7a53d6d1e0cf0c;p=emacs.git (store_in_keymap, fix_submap_inheritance): New prototypes. (KEYMAPP): New macro. (Fkeymap_parent, Fset_keymap_parent): Use it. (fix_submap_inheritance): Mark it static. (define_as_prefix, describe_buffer_bindings, describe_command) (describe_translation, describe_map): Complete prototypes. --- diff --git a/src/keymap.c b/src/keymap.c index 3d6cf0c4723..cc35da77e57 100644 --- a/src/keymap.c +++ b/src/keymap.c @@ -33,6 +33,7 @@ Boston, MA 02111-1307, USA. */ #include "intervals.h" #define min(a, b) ((a) < (b) ? (a) : (b)) +#define KEYMAPP(m) (!NILP (Fkeymapp (m))) /* The number of elements in keymap vectors. */ #define DENSE_TABLE_SIZE (0200) @@ -99,10 +100,16 @@ extern Lisp_Object meta_prefix_char; extern Lisp_Object Voverriding_local_map; -static Lisp_Object define_as_prefix (); -static Lisp_Object describe_buffer_bindings (); -static void describe_command (), describe_translation (); -static void describe_map (); +static Lisp_Object store_in_keymap P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); +static void fix_submap_inheritance P_ ((Lisp_Object, Lisp_Object, Lisp_Object)); + +static Lisp_Object define_as_prefix P_ ((Lisp_Object, Lisp_Object)); +static Lisp_Object describe_buffer_bindings P_ ((Lisp_Object)); +static void describe_command P_ ((Lisp_Object)); +static void describe_translation P_ ((Lisp_Object)); +static void describe_map P_ ((Lisp_Object, Lisp_Object, + void (*) P_ ((Lisp_Object)), + int, Lisp_Object, Lisp_Object*, int)); /* Keymap object support - constructors and predicates. */ @@ -195,6 +202,7 @@ is also allowed as an element.") (object) Lisp_Object object; { + /* FIXME: Maybe this should return t for autoloaded keymaps? -sm */ return (NILP (get_keymap_1 (object, 0, 0)) ? Qnil : Qt); } @@ -292,7 +300,7 @@ DEFUN ("keymap-parent", Fkeymap_parent, Skeymap_parent, 1, 1, 0, for (; CONSP (list); list = XCDR (list)) { /* See if there is another `keymap'. */ - if (EQ (Qkeymap, XCAR (list))) + if (KEYMAPP (list)) return list; } @@ -324,7 +332,7 @@ PARENT should be nil or another keymap.") list = XCDR (prev); /* If there is a parent keymap here, replace it. If we came to the end, add the parent in PREV. */ - if (! CONSP (list) || EQ (Qkeymap, XCAR (list))) + if (! CONSP (list) || KEYMAPP (list)) { /* If we already have the right parent, return now so that we avoid the loops below. */ @@ -373,7 +381,7 @@ PARENT should be nil or another keymap.") if EVENT is also a prefix in MAP's parent, make sure that SUBMAP inherits that definition as its own parent. */ -void +static void fix_submap_inheritance (map, event, submap) Lisp_Object map, event, submap; {