changeset 5320:31be2a3d121d

Move Qcount, Q_default, Q_test to general-slots.h; add SYMBOL_KEYWORD_GENERAL() 2010-12-30 Aidan Kehoe <kehoea@parhasard.net> * elhash.c (syms_of_elhash): * chartab.c (syms_of_chartab): * abbrev.c (syms_of_abbrev): * general-slots.h: Move Qcount, Q_default, Q_test to general-slots.h, they're about to be used by other files. Rename Q_default to Q_default_, for the sake of the PARSE_KEYWORDS macro (given that default is a reserved identifier in C). Add SYMBOL_KEYWORD_GENERAL(), analogous to SYMBOL_GENERAL() to make this easier.
author Aidan Kehoe <kehoea@parhasard.net>
date Thu, 30 Dec 2010 00:50:10 +0000
parents ed5d4f081fa9
children 57a64ab2ae45
files src/ChangeLog src/abbrev.c src/chartab.c src/elhash.c src/general-slots.h src/general.c src/lisp.h
diffstat 7 files changed, 40 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/ChangeLog	Thu Dec 30 00:18:50 2010 +0000
+++ b/src/ChangeLog	Thu Dec 30 00:50:10 2010 +0000
@@ -1,3 +1,15 @@
+2010-12-30  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* elhash.c (syms_of_elhash): 
+	* chartab.c (syms_of_chartab):
+	* abbrev.c (syms_of_abbrev):
+	* general-slots.h:
+	Move Qcount, Q_default, Q_test to general-slots.h, they're about
+	to be used by other files. Rename Q_default to Q_default_, for the
+	sake of the PARSE_KEYWORDS macro (given that default is a reserved
+	identifier in C). Add SYMBOL_KEYWORD_GENERAL(), analogous to
+	SYMBOL_GENERAL() to make this easier.
+
 2010-12-29  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* floatfns.c (Ffloat): If we've been handed a bigfloat here, it's
--- a/src/abbrev.c	Thu Dec 30 00:18:50 2010 +0000
+++ b/src/abbrev.c	Thu Dec 30 00:50:10 2010 +0000
@@ -75,7 +75,7 @@
 /* Hook to run before expanding any abbrev.  */
 Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;
 
-Lisp_Object Qsystem_type, Qcount;
+Lisp_Object Qsystem_type;
 
 struct abbrev_match_mapper_closure
 {
@@ -558,9 +558,6 @@
 void
 syms_of_abbrev (void)
 {
-  DEFSYMBOL(Qcount);
-  Qcount = intern ("count");
-  staticpro (&Qcount);
   DEFSYMBOL(Qsystem_type);
   Qsystem_type = intern ("system-type");
   DEFSYMBOL (Qpre_abbrev_expand_hook);
--- a/src/chartab.c	Thu Dec 30 00:18:50 2010 +0000
+++ b/src/chartab.c	Thu Dec 30 00:50:10 2010 +0000
@@ -42,7 +42,7 @@
 #include "chartab.h"
 #include "syntax.h"
 
-Lisp_Object Qchar_tablep, Qchar_table, Q_default;
+Lisp_Object Qchar_tablep, Qchar_table;
 
 Lisp_Object Vall_syntax_tables;
 
@@ -1581,7 +1581,7 @@
 	    {
 	      type = value;
 	    }
-	  else if (EQ (key, Q_default))
+	  else if (EQ (key, Q_default_))
 	    {
 	      default_ = value;
 	    }
@@ -1626,7 +1626,11 @@
       check_valid_char_table_value (default_, XCHAR_TABLE_TYPE (chartab),
 				    ERROR_ME);
       set_char_table_default (chartab, default_);
-      set_char_table_default (XCHAR_TABLE (chartab)->mirror_table, default_);
+      if (!NILP (XCHAR_TABLE (chartab)->mirror_table))
+        {
+          set_char_table_default (XCHAR_TABLE (chartab)->mirror_table,
+                                  default_);
+        }
     }
 
   while (!NILP (dataval))
@@ -1902,7 +1906,6 @@
 
   DEFSYMBOL (Qchar_table);
   DEFSYMBOL_MULTIWORD_PREDICATE (Qchar_tablep);
-  DEFKEYWORD (Q_default);
 
   DEFSUBR (Fchar_table_p);
   DEFSUBR (Fchar_table_type_list);
@@ -1957,7 +1960,7 @@
 
   define_structure_type_keyword (st, Q_type, chartab_type_validate);
   define_structure_type_keyword (st, Q_data, chartab_data_validate);
-  define_structure_type_keyword (st, Q_default, chartab_default_validate);
+  define_structure_type_keyword (st, Q_default_, chartab_default_validate);
 }
 
 void
--- a/src/elhash.c	Thu Dec 30 00:18:50 2010 +0000
+++ b/src/elhash.c	Thu Dec 30 00:50:10 2010 +0000
@@ -93,7 +93,7 @@
 static Lisp_Object Qweakness, Qvalue, Qkey_or_value, Qkey_and_value;
 static Lisp_Object Vall_weak_hash_tables;
 static Lisp_Object Qrehash_size, Qrehash_threshold;
-static Lisp_Object Q_size, Q_test, Q_weakness, Q_rehash_size, Q_rehash_threshold;
+static Lisp_Object Q_size, Q_weakness, Q_rehash_size, Q_rehash_threshold;
 static Lisp_Object Vhash_table_test_eq, Vhash_table_test_eql;
 static Lisp_Object Vhash_table_test_weak_list;
 
@@ -2291,7 +2291,6 @@
   DEFSYMBOL (Qnon_weak);     /* obsolete */
 
   DEFKEYWORD (Q_data);
-  DEFKEYWORD (Q_test);
   DEFKEYWORD (Q_size);
   DEFKEYWORD (Q_rehash_size);
   DEFKEYWORD (Q_rehash_threshold);
--- a/src/general-slots.h	Thu Dec 30 00:18:50 2010 +0000
+++ b/src/general-slots.h	Thu Dec 30 00:50:10 2010 +0000
@@ -32,6 +32,8 @@
    SYMBOL_KEYWORD (Q_foo); declares a keyword symbol ":foo"
    SYMBOL_GENERAL (Qfoo, "bar"); declares a symbol named "bar" but stored in
      the variable Qfoo
+   SYMBOL_KEYWORD_GENERAL (Q_foo_, ":bar"); declares a keyword named ":bar"
+      but stored in the variable Q_foo_. 
 
 To sort the crap in this file, use the following:
 
@@ -92,6 +94,7 @@
 SYMBOL (Qconsole);
 SYMBOL (Qcontrol_1);
 SYMBOL (Qcopies);
+SYMBOL (Qcount);
 SYMBOL_MODULE_API (Qcritical);
 SYMBOL (Qctext);
 SYMBOL (Qcurrent);
@@ -102,6 +105,9 @@
 SYMBOL (Qdead);
 SYMBOL (Qdebug);
 SYMBOL (Qdefault);
+/* We name the C variable corresponding to the keyword Q_default_, not
+   Q_default, to allow it to be useful with PARSE_KEYWORDS (). */
+SYMBOL_KEYWORD_GENERAL (Q_default_, ":default");
 SYMBOL_MODULE_API (Qdelete);
 SYMBOL (Qdelq);
 SYMBOL (Qdescription);
@@ -270,6 +276,7 @@
 SYMBOL_KEYWORD (Q_start);
 SYMBOL (Qstream);
 SYMBOL (Qstring);
+SYMBOL (Qstring_match);
 SYMBOL_KEYWORD (Q_style);
 SYMBOL_KEYWORD (Q_suffix);
 SYMBOL (Qsubtype);
@@ -279,6 +286,7 @@
 SYMBOL (Qsystem_default);
 SYMBOL (Qterminal);
 SYMBOL (Qtest);
+SYMBOL_KEYWORD (Q_test);
 SYMBOL (Qtext);
 SYMBOL_KEYWORD (Q_text);
 SYMBOL (Qthis_command);
--- a/src/general.c	Thu Dec 30 00:18:50 2010 +0000
+++ b/src/general.c	Thu Dec 30 00:50:10 2010 +0000
@@ -29,8 +29,9 @@
 
 #define SYMBOL(fou) Lisp_Object fou
 #define SYMBOL_MODULE_API(fou) Lisp_Object fou
-#define SYMBOL_KEYWORD(la_cle_est_fou) Lisp_Object la_cle_est_fou
+#define SYMBOL_KEYWORD(la_cle_est_folle) Lisp_Object la_cle_est_folle
 #define SYMBOL_GENERAL(tout_le_monde, est_fou) Lisp_Object tout_le_monde
+#define SYMBOL_KEYWORD_GENERAL(ponle, la_clave) Lisp_Object ponle
 
 #include "general-slots.h"
 
@@ -38,6 +39,7 @@
 #undef SYMBOL_MODULE_API
 #undef SYMBOL_KEYWORD
 #undef SYMBOL_GENERAL
+#undef SYMBOL_KEYWORD_GENERAL
 
 void
 syms_of_general (void)
@@ -46,10 +48,13 @@
 #define SYMBOL_MODULE_API(loco) DEFSYMBOL (loco)
 #define SYMBOL_KEYWORD(meshugeneh) DEFKEYWORD (meshugeneh)
 #define SYMBOL_GENERAL(vachement, fou) defsymbol (&vachement, fou)
+#define SYMBOL_KEYWORD_GENERAL(bescheuert, gaaanz_bescheuert)	\
+	defkeyword (&bescheuert, gaaanz_bescheuert)
 
 #include "general-slots.h"
 
 #undef SYMBOL
 #undef SYMBOL_KEYWORD
 #undef SYMBOL_GENERAL
+#undef SYMBOL_KEYWORD_GENERAL
 }
--- a/src/lisp.h	Thu Dec 30 00:18:50 2010 +0000
+++ b/src/lisp.h	Thu Dec 30 00:50:10 2010 +0000
@@ -5305,9 +5305,11 @@
 /* Defined in general.c */
 #define SYMBOL(fou) extern Lisp_Object fou
 #define SYMBOL_MODULE_API(fou) extern MODULE_API Lisp_Object fou
-#define SYMBOL_KEYWORD(la_cle_est_fou) extern Lisp_Object la_cle_est_fou
+#define SYMBOL_KEYWORD(la_cle_est_folle) extern Lisp_Object la_cle_est_folle
 #define SYMBOL_GENERAL(tout_le_monde, est_fou) \
   extern Lisp_Object tout_le_monde
+#define SYMBOL_KEYWORD_GENERAL(y_compris_ben, mais_que_peut_on_faire) \
+  extern Lisp_Object y_compris_ben
 
 #include "general-slots.h"
 
@@ -5315,6 +5317,7 @@
 #undef SYMBOL_MODULE_API
 #undef SYMBOL_KEYWORD
 #undef SYMBOL_GENERAL
+#undef SYMBOL_KEYWORD_GENERAL
 
 extern Lisp_Object Qeq;
 extern Lisp_Object Qeql;