X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/315f675857250c2204d024748e9eafa57c68410f..3a45383a47009a5e6a15a4005ad95ecf63539182:/src/category.h diff --git a/src/category.h b/src/category.h index 423270100b..580e516afd 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 . */ #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) - ' ']