changeset 26931:234be1721197

(Fkeywordp): New function. (syms_of_data): Install it.
author Dave Love <fx@gnu.org>
date Fri, 17 Dec 1999 15:00:56 +0000
parents 1e3720f2cc94
children 571b5f1022de
files src/data.c
diffstat 1 files changed, 20 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/data.c	Thu Dec 16 19:51:49 1999 +0000
+++ b/src/data.c	Fri Dec 17 15:00:56 1999 +0000
@@ -83,7 +83,7 @@
 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 @@
   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 @@
   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 @@
   staticpro (&Qlistp);
   staticpro (&Qconsp);
   staticpro (&Qsymbolp);
+  staticpro (&Qkeywordp);
   staticpro (&Qintegerp);
   staticpro (&Qnatnump);
   staticpro (&Qwholenump);
@@ -2876,6 +2894,7 @@
 #endif /* LISP_FLOAT_TYPE */
   defsubr (&Snatnump);
   defsubr (&Ssymbolp);
+  defsubr (&Skeywordp);
   defsubr (&Sstringp);
   defsubr (&Smultibyte_string_p);
   defsubr (&Svectorp);