summaryrefslogtreecommitdiff
path: root/src/regex.h
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>2004-06-13 22:34:19 +0000
committerRichard M. Stallman <rms@gnu.org>2004-06-13 22:34:19 +0000
commitc13ecd8fca664a3b8489f568a70cc8b7dfc3b0ca (patch)
tree34b6f4e2da78294b011ed9f22cd84fdc6dd72a2a /src/regex.h
parente963215c442a6050bb610cf34d47986040ebd25f (diff)
downloademacs-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.h43
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 */
/*