diff options
author | Richard M. Stallman <rms@gnu.org> | 2004-06-13 22:34:19 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2004-06-13 22:34:19 +0000 |
commit | c13ecd8fca664a3b8489f568a70cc8b7dfc3b0ca (patch) | |
tree | 34b6f4e2da78294b011ed9f22cd84fdc6dd72a2a /src/regex.h | |
parent | e963215c442a6050bb610cf34d47986040ebd25f (diff) | |
download | emacs-c13ecd8fca664a3b8489f568a70cc8b7dfc3b0ca.tar.gz |
(CHAR_CLASS_MAX_LENGTH, re_wctype_t, re_wchar_t)
(re_wctype, re_iswctype, re_wctype_to_bit):
Non-function definitions moved here from regex.c.
Diffstat (limited to 'src/regex.h')
-rw-r--r-- | src/regex.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/src/regex.h b/src/regex.h index 1818d5f9681..f969c9c5e74 100644 --- a/src/regex.h +++ b/src/regex.h @@ -562,6 +562,49 @@ extern void regfree _RE_ARGS ((regex_t *__preg)); } #endif /* C++ */ +/* For platform which support the ISO C amendement 1 functionality we + support user defined character classes. */ +#if WIDE_CHAR_SUPPORT +/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>. */ +# include <wchar.h> +# include <wctype.h> +#endif + +#if WIDE_CHAR_SUPPORT +/* The GNU C library provides support for user-defined character classes + and the functions from ISO C amendement 1. */ +# ifdef CHARCLASS_NAME_MAX +# define CHAR_CLASS_MAX_LENGTH CHARCLASS_NAME_MAX +# else +/* This shouldn't happen but some implementation might still have this + problem. Use a reasonable default value. */ +# define CHAR_CLASS_MAX_LENGTH 256 +# endif +typedef wctype_t re_wctype_t; +typedef wchar_t re_wchar_t; +# define re_wctype wctype +# define re_iswctype iswctype +# define re_wctype_to_bit(cc) 0 +#else +# define CHAR_CLASS_MAX_LENGTH 9 /* Namely, `multibyte'. */ +# define btowc(c) c + +/* Character classes. */ +typedef enum { RECC_ERROR = 0, + RECC_ALNUM, RECC_ALPHA, RECC_WORD, + RECC_GRAPH, RECC_PRINT, + RECC_LOWER, RECC_UPPER, + RECC_PUNCT, RECC_CNTRL, + RECC_DIGIT, RECC_XDIGIT, + RECC_BLANK, RECC_SPACE, + RECC_MULTIBYTE, RECC_NONASCII, + RECC_ASCII, RECC_UNIBYTE +} re_wctype_t; + +typedef int re_wchar_t; + +#endif /* not WIDE_CHAR_SUPPORT */ + #endif /* regex.h */ /* |