summaryrefslogtreecommitdiff
path: root/src/data.c
diff options
context:
space:
mode:
authorDave Love <fx@gnu.org>1999-12-17 15:00:56 +0000
committerDave Love <fx@gnu.org>1999-12-17 15:00:56 +0000
commitcda9b832d4e8fc409345cea4a7e3af85267a2178 (patch)
tree4c90d52ea5c032797467d87550955d2945360ad8 /src/data.c
parentb1aa0883948ba3461b2213dd1e6633b52977ba85 (diff)
downloademacs-cda9b832d4e8fc409345cea4a7e3af85267a2178.tar.gz
(Fkeywordp): New function.
(syms_of_data): Install it.
Diffstat (limited to 'src/data.c')
-rw-r--r--src/data.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/src/data.c b/src/data.c
index ecd4b4b7ea7..82e050d2605 100644
--- a/src/data.c
+++ b/src/data.c
@@ -83,7 +83,7 @@ Lisp_Object Qtext_read_only;
Lisp_Object Qintegerp, Qnatnump, Qwholenump, Qsymbolp, Qlistp, Qconsp;
Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp;
Lisp_Object Qchar_or_string_p, Qmarkerp, Qinteger_or_marker_p, Qvectorp;
-Lisp_Object Qbuffer_or_string_p;
+Lisp_Object Qbuffer_or_string_p, Qkeywordp;
Lisp_Object Qboundp, Qfboundp;
Lisp_Object Qchar_table_p, Qvector_or_char_table_p;
@@ -311,6 +311,22 @@ DEFUN ("symbolp", Fsymbolp, Ssymbolp, 1, 1, 0,
return Qnil;
}
+/* Define this in C to avoid unnecessarily consing up the symbol
+ name. */
+DEFUN ("keywordp", Fkeywordp, Skeywordp, 1, 1, 0,
+ "Return t if OBJECT is a keyword.\n\
+This means that it is a symbol with a print name beginning with `:'\n\
+interned in the initial obarray.")
+ (object)
+ Lisp_Object object;
+{
+ if (SYMBOLP (object)
+ && XSYMBOL (object)->name->data[0] == ':'
+ && EQ (XSYMBOL (object)->obarray, initial_obarray))
+ return Qt;
+ return Qnil;
+}
+
DEFUN ("vectorp", Fvectorp, Svectorp, 1, 1, 0,
"Return t if OBJECT is a vector.")
(object)
@@ -2593,6 +2609,7 @@ syms_of_data ()
Qlistp = intern ("listp");
Qconsp = intern ("consp");
Qsymbolp = intern ("symbolp");
+ Qkeywordp = intern ("keywordp");
Qintegerp = intern ("integerp");
Qnatnump = intern ("natnump");
Qwholenump = intern ("wholenump");
@@ -2790,6 +2807,7 @@ syms_of_data ()
staticpro (&Qlistp);
staticpro (&Qconsp);
staticpro (&Qsymbolp);
+ staticpro (&Qkeywordp);
staticpro (&Qintegerp);
staticpro (&Qnatnump);
staticpro (&Qwholenump);
@@ -2876,6 +2894,7 @@ A keyword symbol is a symbol whose name starts with a colon (`:').");
#endif /* LISP_FLOAT_TYPE */
defsubr (&Snatnump);
defsubr (&Ssymbolp);
+ defsubr (&Skeywordp);
defsubr (&Sstringp);
defsubr (&Smultibyte_string_p);
defsubr (&Svectorp);