]> code.delx.au - gnu-emacs/blobdiff - src/category.h
frame-override-unsplittable/inhibit-frame-unsplittable name change.
[gnu-emacs] / src / category.h
index 956c6284b365660de21590c0ea650c8210535bfa..4d1c14c7c2c66ce03226223f314fcca66a3be014 100644 (file)
@@ -1,7 +1,7 @@
 /* Declarations having to do with Emacs category tables.
-   Ver.1.0
    Copyright (C) 1995 Free Software Foundation, Inc.
    Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+     Licensed to the Free Software Foundation.
 
 This file is part of GNU Emacs.
 
@@ -37,12 +37,12 @@ Boston, MA 02111-1307, USA.  */
    categories.  Total number of categories is limited to 95.
 
    A category set is a set of categories represented by Lisp
-   bool-vector of length 128 (only elements of 31th through 125th
+   bool-vector of length 128 (only elements of 31th through 126th
    are used).
 
    A category table is like syntax-table, represented by a Lisp
    char-table.  The contents are category sets or nil.  It has two
-   extra slots. for a vector of doc string of each category and a
+   extra slots, for a vector of doc string of each category and a
    version number.
 
    The first extra slot is a vector of doc strings of categories, the
@@ -101,8 +101,8 @@ extern Lisp_Object _temp_category_set;
 #define CATEGORY_SET(c)                                                             \
   ({ Lisp_Object table = current_buffer->category_table;                    \
      Lisp_Object temp;                                                      \
-     if (c < CHAR_TABLE_ORDINARY_SLOTS)                                             \
-       while (NILP (temp = XCHAR_TABLE (table)->contents[c])                \
+     if ((c) < CHAR_TABLE_SINGLE_BYTE_SLOTS)                                \
+       while (NILP (temp = XCHAR_TABLE (table)->contents[(unsigned char) c]) \
              && NILP (temp = XCHAR_TABLE (table)->defalt))                  \
         table = XCHAR_TABLE (table)->parent;                                \
      else                                                                   \
@@ -110,9 +110,11 @@ extern Lisp_Object _temp_category_set;
                     COMPOSITE_CHAR_P (c) ? cmpchar_component (c, 0) : (c)); \
      temp; })
 #else
-#define CATEGORY_SET(c)                                \
-  Faref (current_buffer->category_table,       \
-        COMPOSITE_CHAR_P (c) ? cmpchar_component (c, 0) : (c))
+#define CATEGORY_SET(c)                                                             \
+  ((c) < CHAR_TABLE_SINGLE_BYTE_SLOTS                                       \
+   ? Faref (current_buffer->category_table, make_number ((unsigned char) c)) \
+   : Faref (current_buffer->category_table,                                 \
+                  COMPOSITE_CHAR_P (c) ? cmpchar_component ((c), 0) : (c)))
 #endif   
 
 /* Return the doc string of CATEGORY in category table TABLE.  */