summaryrefslogtreecommitdiff
path: root/src/keymap.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1994-09-18 04:02:25 +0000
committerRichard M. Stallman <rms@gnu.org>1994-09-18 04:02:25 +0000
commit47684cd9b5d68ffd40bf64bbe9cecdc07ab618ce (patch)
treee89c3cfe266fa299d3730c1099c9a0be9cbc04f0 /src/keymap.c
parentedd2556799c17c260c565f1bb43bae856a9c5b40 (diff)
(Fkey_description): Give error if KEYS not an array.
(get_keyelt, access_keymap, get_keymap_1): Use type test macros.
Diffstat (limited to 'src/keymap.c')
-rw-r--r--src/keymap.c16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/keymap.c b/src/keymap.c
index 1f32f8c622d..df12f254af9 100644
--- a/src/keymap.c
+++ b/src/keymap.c
@@ -214,7 +214,7 @@ get_keymap_1 (object, error, autoload)
/* Should we do an autoload? Autoload forms for keymaps have
Qkeymap as their fifth element. */
if (autoload
- && XTYPE (object) == Lisp_Symbol
+ && SYMBOLP (object)
&& CONSP (tem)
&& EQ (XCONS (tem)->car, Qautoload))
{
@@ -279,7 +279,7 @@ access_keymap (map, idx, t_ok, noinherit)
/* If idx is a symbol, it might have modifiers, which need to
be put in the canonical order. */
- if (XTYPE (idx) == Lisp_Symbol)
+ if (SYMBOLP (idx))
idx = reorder_modifiers (idx);
else if (INTEGERP (idx))
/* Clobber the high bits that can be present on a machine
@@ -318,7 +318,7 @@ access_keymap (map, idx, t_ok, noinherit)
break;
case Lisp_Vector:
- if (XTYPE (idx) == Lisp_Int
+ if (INTEGERP (idx)
&& XINT (idx) >= 0
&& XINT (idx) < XVECTOR (binding)->size)
{
@@ -368,14 +368,14 @@ get_keyelt (object, autoload)
use DEFN.
Keymap alist elements like (CHAR MENUSTRING . DEFN)
will be used by HierarKey menus. */
- else if (XTYPE (object) == Lisp_Cons
- && XTYPE (XCONS (object)->car) == Lisp_String)
+ else if (CONSP (object)
+ && STRINGP (XCONS (object)->car))
{
object = XCONS (object)->cdr;
/* Also remove a menu help string, if any,
following the menu item name. */
if (XTYPE (object) == Lisp_Cons
- && XTYPE (XCONS (object)->car) == Lisp_String)
+ && STRINGP (XCONS (object)->car) == Lisp_String)
object = XCONS (object)->cdr;
/* Also remove the sublist that caches key equivalences, if any. */
if (CONSP (object)
@@ -1351,7 +1351,7 @@ spaces are put between sequence elements, etc.")
Lisp_Object sep;
Lisp_Object *args;
- if (XTYPE (keys) == Lisp_String)
+ if (STRINGP (keys))
{
Lisp_Object vector;
vector = Fmake_vector (Flength (keys), Qnil);
@@ -1366,6 +1366,8 @@ spaces are put between sequence elements, etc.")
}
keys = vector;
}
+ else if (VECTORP (keys))
+ keys = wrong_type_argument (Qarrayp, keys);
/* In effect, this computes
(mapconcat 'single-key-description keys " ")