Loading...
include/regex.h Libc-391 Libc-583
--- Libc/Libc-391/include/regex.h
+++ Libc/Libc-583/include/regex.h
@@ -62,7 +62,6 @@
 #ifndef _REGEX_H_
 #define	_REGEX_H_
 
-#include <sys/cdefs.h>
 #include <_types.h>
 
 /* types */
@@ -86,18 +85,18 @@
 } regmatch_t;
 
 /* regcomp() flags */
-#ifndef _POSIX_C_SOURCE
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define	REG_BASIC	0000
-#endif	/* !_POSIX_C_SOURCE */
+#endif	/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
 #define	REG_EXTENDED	0001
 #define	REG_ICASE	0002
 #define	REG_NOSUB	0004
 #define	REG_NEWLINE	0010
-#ifndef _POSIX_C_SOURCE
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define	REG_NOSPEC	0020
 #define	REG_PEND	0040
 #define	REG_DUMP	0200
-#endif	/* !_POSIX_C_SOURCE */
+#endif	/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
 
 /* regerror() flags */
 #define	REG_ENOSYS	 (-1)	/* Reserved */
@@ -114,31 +113,42 @@
 #define	REG_ERANGE	11
 #define	REG_ESPACE	12
 #define	REG_BADRPT	13
-#ifndef _POSIX_C_SOURCE
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define	REG_EMPTY	14
 #define	REG_ASSERT	15
 #define	REG_INVARG	16
 #define	REG_ILLSEQ	17
 #define	REG_ATOI	255	/* convert name to number (!) */
 #define	REG_ITOA	0400	/* convert number to name (!) */
-#endif	/* !_POSIX_C_SOURCE */
+#endif	/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
 
 /* regexec() flags */
 #define	REG_NOTBOL	00001
 #define	REG_NOTEOL	00002
-#ifndef _POSIX_C_SOURCE
+#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
 #define	REG_STARTEND	00004
 #define	REG_TRACE	00400	/* tracing of execution */
 #define	REG_LARGE	01000	/* force large representation */
 #define	REG_BACKR	02000	/* force use of backref code */
-#endif	/* !_POSIX_C_SOURCE */
+#endif	/* (!_POSIX_C_SOURCE || _DARWIN_C_SOURCE) */
 
 __BEGIN_DECLS
+//Begin-Libc
+#ifndef LIBC_ALIAS_REGCOMP
+//End-Libc
 int	regcomp(regex_t * __restrict, const char * __restrict, int) __DARWIN_ALIAS(regcomp);
+//Begin-Libc
+#else /* LIBC_ALIAS_REGCOMP */
+int	regcomp(regex_t * __restrict, const char * __restrict, int) LIBC_ALIAS(regcomp);
+#endif /* !LIBC_ALIAS_REGCOMP */
+//End-Libc
 size_t	regerror(int, const regex_t * __restrict, char * __restrict, size_t);
-/* For meeting c99 stds, pass regmatch_t*, rather than the array */
-int	regexec(const regex_t * __restrict,
-	    const char * __restrict, size_t, regmatch_t * __restrict, int);
+/*
+ * gcc under c99 mode won't compile "[ __restrict]" by itself.  As a workaround,
+ * a dummy argument name is added.
+ */
+int	regexec(const regex_t * __restrict, const char * __restrict, size_t,
+	    regmatch_t __pmatch[ __restrict], int);
 void	regfree(regex_t *);
 __END_DECLS