aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier <[email protected]>2000-08-27 16:21:55 +0000
committerStefan Monnier <[email protected]>2000-08-27 16:21:55 +0000
commit5749539688a77bde9dd6fd473e7a53d6d1e0cf0c (patch)
treedd8a651998b11578064463ed7997169e295033a8
parent1b6be00882f02ee55812ac11a9e32bf36af0a494 (diff)
(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.
-rw-r--r--src/keymap.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/keymap.c b/src/keymap.c
index 3d6cf0c472..cc35da77e5 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;
{