]> code.delx.au - gnu-emacs/blobdiff - src/category.c
* window.c (Fdelete_window_internal): Invalidate the mouse highlight.
[gnu-emacs] / src / category.c
index bba030360c4102cac3e2e55fe0b743135e040644..819e7cba364e6824381f775b5b10a76e4d955b25 100644 (file)
@@ -1,6 +1,6 @@
 /* GNU Emacs routines to deal with category tables.
 
-Copyright (C) 1998, 2001-2011  Free Software Foundation, Inc.
+Copyright (C) 1998, 2001-2012  Free Software Foundation, Inc.
 Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
   2005, 2006, 2007, 2008, 2009, 2010, 2011
   National Institute of Advanced Industrial Science and Technology (AIST)
@@ -48,11 +48,16 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
    For the moment, we are not using this feature.  */
 static int category_table_version;
 
-Lisp_Object Qcategory_table, Qcategoryp, Qcategorysetp, Qcategory_table_p;
+static Lisp_Object Qcategory_table, Qcategoryp, Qcategorysetp, Qcategory_table_p;
 
 /* Temporary internal variable used in macro CHAR_HAS_CATEGORY.  */
 Lisp_Object _temp_category_set;
 
+/* Make CATEGORY_SET includes (if VAL is t) or excludes (if VAL is
+   nil) CATEGORY.  */
+#define SET_CATEGORY_SET(category_set, category, val) \
+  set_category_set (category_set, category, val)
+static void set_category_set (Lisp_Object, Lisp_Object, Lisp_Object);
 \f
 /* Category set staff.  */
 
@@ -62,8 +67,8 @@ static Lisp_Object
 hash_get_category_set (Lisp_Object table, Lisp_Object category_set)
 {
   struct Lisp_Hash_Table *h;
-  int i;
-  unsigned hash;
+  ptrdiff_t i;
+  EMACS_UINT hash;
 
   if (NILP (XCHAR_TABLE (table)->extras[1]))
     XCHAR_TABLE (table)->extras[1]
@@ -111,7 +116,7 @@ those categories.  */)
 \f
 /* Category staff.  */
 
-Lisp_Object check_category_table (Lisp_Object table);
+static Lisp_Object check_category_table (Lisp_Object table);
 
 DEFUN ("define-category", Fdefine_category, Sdefine_category, 2, 3, 0,
        doc: /* Define CATEGORY as a category which is described by DOCSTRING.
@@ -185,7 +190,7 @@ DEFUN ("category-table-p", Fcategory_table_p, Scategory_table_p, 1, 1, 0,
    valid, return TABLE itself, but if not valid, signal an error of
    wrong-type-argument.  */
 
-Lisp_Object
+static Lisp_Object
 check_category_table (Lisp_Object table)
 {
   if (NILP (table))
@@ -325,7 +330,7 @@ The return value is a string containing those same categories.  */)
   return build_string (str);
 }
 
-void
+static void
 set_category_set (Lisp_Object category_set, Lisp_Object category, Lisp_Object val)
 {
   do {
@@ -448,8 +453,7 @@ void
 init_category_once (void)
 {
   /* This has to be done here, before we call Fmake_char_table.  */
-  Qcategory_table = intern_c_string ("category-table");
-  staticpro (&Qcategory_table);
+  DEFSYM (Qcategory_table, "category-table");
 
   /* Intern this now in case it isn't already done.
      Setting this variable twice is harmless.
@@ -470,12 +474,9 @@ init_category_once (void)
 void
 syms_of_category (void)
 {
-  Qcategoryp = intern_c_string ("categoryp");
-  staticpro (&Qcategoryp);
-  Qcategorysetp = intern_c_string ("categorysetp");
-  staticpro (&Qcategorysetp);
-  Qcategory_table_p = intern_c_string ("category-table-p");
-  staticpro (&Qcategory_table_p);
+  DEFSYM (Qcategoryp, "categoryp");
+  DEFSYM (Qcategorysetp, "categorysetp");
+  DEFSYM (Qcategory_table_p, "category-table-p");
 
   DEFVAR_LISP ("word-combining-categories", Vword_combining_categories,
               doc: /* List of pair (cons) of categories to determine word boundary.