summaryrefslogtreecommitdiff
path: root/src/category.h
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@linux-m68k.org>2012-06-16 10:20:19 +0200
committerAndreas Schwab <schwab@linux-m68k.org>2012-06-16 10:20:19 +0200
commit29b83cecea5cbb09a715282824feb568f03cdf54 (patch)
tree7028e7dae1d86e441d2b68dda762608fe24397d3 /src/category.h
parent4c5501e98fe2336ef7b16bd276dfbbe3917376e9 (diff)
downloademacs-29b83cecea5cbb09a715282824feb568f03cdf54.tar.gz
* category.h (CHAR_HAS_CATEGORY): Define as inline.
(CATEGORY_MEMBER): Enforce 1/0 value. * category.c (_temp_category_set): Remove.
Diffstat (limited to 'src/category.h')
-rw-r--r--src/category.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/category.h b/src/category.h
index 423270100b3..580e516afd9 100644
--- a/src/category.h
+++ b/src/category.h
@@ -1,6 +1,6 @@
/* Declarations having to do with Emacs category tables.
Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009, 2010, 2011
+ 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
National Institute of Advanced Industrial Science and Technology (AIST)
Registration Number H14PRO021
Copyright (C) 2003
@@ -69,27 +69,27 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define CHECK_CATEGORY_SET(x) \
CHECK_TYPE (CATEGORY_SET_P (x), Qcategorysetp, x)
+/* Return the category set of character C in the current category table. */
+#define CATEGORY_SET(c) char_category_set (c)
+
/* Return 1 if CATEGORY_SET contains CATEGORY, else return 0.
The faster version of `!NILP (Faref (category_set, category))'. */
#define CATEGORY_MEMBER(category, category_set) \
- (XCATEGORY_SET (category_set)->data[(category) / 8] \
- & (1 << ((category) % 8)))
-
-/* Temporary internal variable used in macro CHAR_HAS_CATEGORY. */
-extern Lisp_Object _temp_category_set;
+ ((XCATEGORY_SET (category_set)->data[(category) / 8] \
+ >> ((category) % 8)) & 1)
-/* Return 1 if category set of CH contains CATEGORY, elt return 0. */
-#define CHAR_HAS_CATEGORY(ch, category) \
- (_temp_category_set = CATEGORY_SET (ch), \
- CATEGORY_MEMBER (category, _temp_category_set))
+/* Return 1 if category set of CH contains CATEGORY, else return 0. */
+static inline int
+CHAR_HAS_CATEGORY (int ch, int category)
+{
+ Lisp_Object category_set = CATEGORY_SET (ch);
+ return CATEGORY_MEMBER (category, category_set);
+}
/* The standard category table is stored where it will automatically
be used in all new buffers. */
#define Vstandard_category_table BVAR (&buffer_defaults, category_table)
-/* Return the category set of character C in the current category table. */
-#define CATEGORY_SET(c) char_category_set (c)
-
/* Return the doc string of CATEGORY in category table TABLE. */
#define CATEGORY_DOCSTRING(table, category) \
XVECTOR (Fchar_table_extra_slot (table, make_number (0)))->contents[(category) - ' ']