]> code.delx.au - gnu-emacs/blobdiff - src/category.h
Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-29
[gnu-emacs] / src / category.h
index f1c40f9cff0ab71e813ae547c76b64ac4302c7b3..adad3d713f8328f9a55bb0cf3c24b87152d5c4a7 100644 (file)
@@ -1,6 +1,9 @@
 /* Declarations having to do with Emacs category tables.
    Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
      Licensed to the Free Software Foundation.
+   Copyright (C) 2003
+     National Institute of Advanced Industrial Science and Technology (AIST)
+     Registration Number H13PRO009
 
 This file is part of GNU Emacs.
 
@@ -53,7 +56,7 @@ Boston, MA 02111-1307, USA.  */
 #define CATEGORYP(x) \
   (INTEGERP ((x)) && XFASTINT ((x)) >= 0x20 && XFASTINT ((x)) <= 0x7E)
 
-#define CHECK_CATEGORY(x, i)                                           \
+#define CHECK_CATEGORY(x)                                              \
   do {                                                                 \
     if (!CATEGORYP ((x))) x = wrong_type_argument (Qcategoryp, (x));   \
   } while (0)
@@ -71,7 +74,7 @@ Boston, MA 02111-1307, USA.  */
 #define SET_CATEGORY_SET(category_set, category, val) \
   (Faset (category_set, category, val))
 
-#define CHECK_CATEGORY_SET(x, i)                                          \
+#define CHECK_CATEGORY_SET(x)                                     \
   do {                                                                    \
     if (!CATEGORY_SET_P ((x))) x = wrong_type_argument (Qcategorysetp, (x)); \
   } while (0)
@@ -95,27 +98,7 @@ extern Lisp_Object _temp_category_set;
 #define Vstandard_category_table buffer_defaults.category_table
 
 /* Return the category set of character C in the current category table.  */
-#ifdef __GNUC__
-#define CATEGORY_SET(c)                                                             \
-  ({ Lisp_Object table = current_buffer->category_table;                    \
-     Lisp_Object temp;                                                      \
-     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                                                                   \
-       temp = Faref (table,                                                 \
-                    make_number (COMPOSITE_CHAR_P (c)                       \
-                                 ? cmpchar_component (c, 0) : (c)));        \
-     temp; })
-#else
-#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,                                 \
-           make_number (COMPOSITE_CHAR_P (c)                                \
-                        ? cmpchar_component ((c), 0) : (c))))
-#endif   
+#define CATEGORY_SET(c) char_category_set (c)
 
 /* Return the doc string of CATEGORY in category table TABLE.  */
 #define CATEGORY_DOCSTRING(table, category) \
@@ -128,8 +111,13 @@ extern Lisp_Object _temp_category_set;
 
 /* Return 1 if there is a word boundary between two word-constituent
    characters C1 and C2 if they appear in this order, else return 0.
-   There is no word boundary between two word-constituent ASCII
-   characters.  */
+   There is no word boundary between two word-constituent ASCII and
+   Latin-1 characters.  */
 #define WORD_BOUNDARY_P(c1, c2)                                        \
   (!(SINGLE_BYTE_CHAR_P (c1) && SINGLE_BYTE_CHAR_P (c2))       \
    && word_boundary_p (c1, c2))
+
+extern int word_boundary_p P_ ((int, int));
+
+/* arch-tag: 309dfe83-c3e2-4d22-8e81-faae5aece0ff
+   (do not change this comment) */