]> git.eshelyaron.com Git - emacs.git/commitdiff
Add amcros for keyword symbols
authorGerd Möllmann <gerd@gnu.org>
Tue, 18 Oct 2022 13:07:47 +0000 (15:07 +0200)
committerGerd Möllmann <gerd@gnu.org>
Tue, 18 Oct 2022 13:07:47 +0000 (15:07 +0200)
* src/lisp.h (SYMBOL_KEYWORD_P): Returns true if symbol is a keyword.
(LISP_SYMBOL_NAME): Basically the same as Fsymbol_name, a shortcut.
* src/data.c (Fsymbol_name): Use SYMBOL_KEYWORD_P.
* src/pkg.c (pkg_intern_keyword): Use SYMBOL_KEYWORD_P.

src/data.c
src/lisp.h
src/pkg.c

index 2f6b25805f2c1ce395f5ef64f0e1540f301f0b72..dbf9f029b59f8b09ad4460ea69d4c740d0271195 100644 (file)
@@ -768,7 +768,7 @@ DEFUN ("symbol-name", Fsymbol_name, Ssymbol_name, 1, 1, 0,
   (register Lisp_Object symbol)
 {
   CHECK_SYMBOL (symbol);
-  if (EQ (SYMBOL_PACKAGE (symbol), Vkeyword_package))
+  if (SYMBOL_KEYWORD_P (symbol))
     return concat2 (build_string (":"), SYMBOL_NAME (symbol));
   return SYMBOL_NAME (symbol);
 }
index fa1f48b933b1e1aff7e12fd734994b9efef16ce9..42f356562329cc8007921c0e370f4e1fedf96a8a 100644 (file)
@@ -2425,6 +2425,20 @@ SYMBOL_EXTERNAL_P (Lisp_Object sym)
   return XSYMBOL (sym)->u.s.external;
 }
 
+INLINE bool
+SYMBOL_KEYWORD_P (Lisp_Object sym)
+{
+  return EQ (XSYMBOL (sym)->u.s.package, Vkeyword_package);
+}
+
+INLINE Lisp_Object
+LISP_SYMBOL_NAME (Lisp_Object sym)
+{
+  if (SYMBOL_KEYWORD_P (sym))
+    return Fsymbol_name (sym);
+  return SYMBOL_NAME (sym);
+}
+
 /* Value is non-zero if symbol cannot be changed through a simple set,
    i.e. it's a constant (e.g. nil, t, :keywords), or it has some
    watching functions.  */
index 0da7aac4a97e2358b743fa91fc2e939f33f6d461..3745dd69fb8756e8706b93181a4e3ce7402f1ada 100644 (file)
--- a/src/pkg.c
+++ b/src/pkg.c
@@ -530,7 +530,7 @@ pkg_intern_keyword (Lisp_Object name)
       pkg_add_symbol (keyword, Vkeyword_package);
     }
   else
-    eassert (EQ (SYMBOL_PACKAGE (keyword), Vkeyword_package));
+    eassert SYMBOL_KEYWORD_P (keyword);
 
   return keyword;
 }