emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

scratch/pkg ba213150c59 3/5: Add locked member to Lisp_Package


From: Gerd Moellmann
Subject: scratch/pkg ba213150c59 3/5: Add locked member to Lisp_Package
Date: Tue, 22 Aug 2023 10:29:50 -0400 (EDT)

branch: scratch/pkg
commit ba213150c5967cb20bd71869ea5dd2db50f424ea
Author: Gerd Möllmann <gerd@gnu.org>
Commit: Gerd Möllmann <gerd@gnu.org>

    Add locked member to Lisp_Package
    
    * src/lisp.h (GCALIGNED_STRUCT): Add locked member to Lisp_Package.
    * src/pkg.c (Fpackage_percent_locked): New function.
    (Fpackage_percent_set_locked): New function.
    (syms_of_pkg): Defsubr new functions.
---
 src/lisp.h |  3 +++
 src/pkg.c  | 18 ++++++++++++++++++
 2 files changed, 21 insertions(+)

diff --git a/src/lisp.h b/src/lisp.h
index 516157c8c6b..742fce58eac 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -2230,6 +2230,9 @@ struct Lisp_Package
      package.  */
   Lisp_Object use_list;
 
+  /* T means the package is locked, i.e. no symbols can be added to it.  */
+  Lisp_Object locked;
+
   /* List of shadowing symbols.  */
   Lisp_Object shadowing_symbols;
 
diff --git a/src/pkg.c b/src/pkg.c
index 622a5391f6d..6869f721475 100644
--- a/src/pkg.c
+++ b/src/pkg.c
@@ -858,6 +858,22 @@ DEFUN ("package-%set-shadowing-symbols", 
Fpackage_percent_set_shadowing_symbols,
   return XPACKAGE (package)->shadowing_symbols = shadowing_symbols;
 }
 
+DEFUN ("package-%locked", Fpackage_percent_locked,
+       Spackage_percent_locked, 1, 1, 0, doc:  /* Internal use only.  */)
+  (Lisp_Object package)
+{
+  CHECK_PACKAGE (package);
+  return XPACKAGE (package)->locked;
+}
+
+DEFUN ("package-%set-locked", Fpackage_percent_set_locked,
+       Spackage_percent_set_locked, 2, 2, 0, doc: /* Internal use only.  */)
+  (Lisp_Object package, Lisp_Object locked)
+{
+  CHECK_PACKAGE (package);
+  return XPACKAGE (package)->locked = locked;
+}
+
 DEFUN ("package-%symbols", Fpackage_percent_symbols,
        Spackage_percent_symbols, 1, 1, 0, doc:  /* Internal use only.  */)
   (Lisp_Object package)
@@ -991,6 +1007,8 @@ syms_of_pkg (void)
   defsubr (&Spackage_percent_set_symbol_package);
   defsubr (&Spackage_percent_set_use_list);
   defsubr (&Spackage_percent_shadowing_symbols);
+  defsubr (&Spackage_percent_locked);
+  defsubr (&Spackage_percent_set_locked);
   defsubr (&Spackage_percent_symbols);
   defsubr (&Spackage_percent_use_list);
   defsubr (&Spackagep);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]