Include wchar.h before wctype.h to please buggy Solaris.
[kopensolaris-gnu/glibc.git] / posix / regex.c
index 1051cc3..26c876a 100644 (file)
@@ -49,8 +49,9 @@
 /* For platform which support the ISO C amendement 1 functionality we
    support user defined character classes.  */
 #if defined _LIBC || (defined HAVE_WCTYPE_H && defined HAVE_WCHAR_H)
-# include <wctype.h>
+/* Solaris 2.5 has a bug: <wchar.h> must be included before <wctype.h>.  */
 # include <wchar.h>
+# include <wctype.h>
 
 /* We have to keep the namespace clean.  */
 # define regfree(preg) __regfree (preg)
@@ -968,13 +969,7 @@ printchar (c)
    syntax, so it can be changed between regex compilations.  */
 /* This has no initializer because initialized variables in Emacs
    become read-only after dumping.  */
-#ifdef _LIBC
-reg_syntax_t __re_syntax_options;
-weak_alias (__re_syntax_options, re_syntax_options)
-# define re_syntax_options __re_syntax_options
-#else
 reg_syntax_t re_syntax_options;
-#endif
 
 
 /* Specify the precise syntax of regexps for compilation.  This provides
@@ -1089,17 +1084,9 @@ static const char *re_error_msgid[] =
 # if defined MATCH_MAY_ALLOCATE
 /* 4400 was enough to cause a crash on Alpha OSF/1,
    whose default stack limit is 2mb.  */
-#  ifdef _LIBC
-long int __re_max_failures = 4000;
-#  else
 long int re_max_failures = 4000;
-#  endif
 # else
-#  ifdef _LIBC
-long int __re_max_failures = 2000;
-#  else
 long int re_max_failures = 2000;
-#  endif
 # endif
 
 union fail_stack_elt
@@ -1122,24 +1109,11 @@ typedef struct
 # if defined MATCH_MAY_ALLOCATE
 /* 4400 was enough to cause a crash on Alpha OSF/1,
    whose default stack limit is 2mb.  */
-#  ifdef _LIBC
-int __re_max_failures = 20000;
-#  else
 int re_max_failures = 20000;
-#  endif
 # else
-#  ifdef _LIBC
-int __re_max_failures = 2000;
-#  else
 int re_max_failures = 2000;
-#  endif
 # endif
 
-#ifdef _LIBC
-weak_alias (__re_max_failures, re_max_failures)
-# define re_max_failures __re_max_failures
-#endif
-
 union fail_stack_elt
 {
   unsigned char *pointer;
@@ -2752,7 +2726,7 @@ regex_compile (pattern, size, syntax, bufp)
 
 
             case 'w':
-             if (re_syntax_options & RE_NO_GNU_OPS)
+             if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
               laststart = b;
               BUF_PUSH (wordchar);
@@ -2760,7 +2734,7 @@ regex_compile (pattern, size, syntax, bufp)
 
 
             case 'W':
-             if (re_syntax_options & RE_NO_GNU_OPS)
+             if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
               laststart = b;
               BUF_PUSH (notwordchar);
@@ -2768,37 +2742,37 @@ regex_compile (pattern, size, syntax, bufp)
 
 
             case '<':
-             if (re_syntax_options & RE_NO_GNU_OPS)
+             if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
               BUF_PUSH (wordbeg);
               break;
 
             case '>':
-             if (re_syntax_options & RE_NO_GNU_OPS)
+             if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
               BUF_PUSH (wordend);
               break;
 
             case 'b':
-             if (re_syntax_options & RE_NO_GNU_OPS)
+             if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
               BUF_PUSH (wordbound);
               break;
 
             case 'B':
-             if (re_syntax_options & RE_NO_GNU_OPS)
+             if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
               BUF_PUSH (notwordbound);
               break;
 
             case '`':
-             if (re_syntax_options & RE_NO_GNU_OPS)
+             if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
               BUF_PUSH (begbuf);
               break;
 
             case '\'':
-             if (re_syntax_options & RE_NO_GNU_OPS)
+             if (syntax & RE_NO_GNU_OPS)
                goto normal_char;
               BUF_PUSH (endbuf);
               break;
@@ -5761,7 +5735,7 @@ weak_alias (__regexec, regexec)
    from either regcomp or regexec.   We don't use PREG here.  */
 
 size_t
-regerror (errcode, preg, errbuf, errbuf_size)
+__regerror (errcode, preg, errbuf, errbuf_size)
     int errcode;
     const regex_t *preg;
     char *errbuf;