summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/ereg/ereg.c2
-rw-r--r--ext/ereg/php_regex.h4
-rw-r--r--ext/ereg/regex/regex_extra.h14
-rw-r--r--ext/ereg/regex/utils.h3
-rw-r--r--ext/standard/config.m422
-rw-r--r--ext/standard/reg.c2
6 files changed, 37 insertions, 10 deletions
diff --git a/ext/ereg/ereg.c b/ext/ereg/ereg.c
index 7f50ce3170..bd40cb2191 100644
--- a/ext/ereg/ereg.c
+++ b/ext/ereg/ereg.c
@@ -92,7 +92,9 @@ static int _free_reg_cache(reg_cache *rc)
return 1;
}
+#undef regfree
#define regfree(a);
+#undef regcomp
#define regcomp(a,b,c) _php_regcomp(a,b,c)
static void php_reg_init_globals(php_reg_globals *reg_globals)
diff --git a/ext/ereg/php_regex.h b/ext/ereg/php_regex.h
index 46618379af..91cbd994c4 100644
--- a/ext/ereg/php_regex.h
+++ b/ext/ereg/php_regex.h
@@ -1,7 +1,7 @@
#ifndef _PHP_REGEX_H
#define _PHP_REGEX_H
-#if REGEX
+#if REGEX == 1
#include "regex/regex.h"
#ifndef _REGEX_H
#define _REGEX_H 1 /* this should stop Apache from loading the system version of regex.h */
@@ -18,7 +18,7 @@
#ifndef _H_REGEX
#define _H_REGEX 1 /* This one is for AIX */
#endif
-#else
+#elif REGEX == 0
#include <regex.h>
#endif
diff --git a/ext/ereg/regex/regex_extra.h b/ext/ereg/regex/regex_extra.h
new file mode 100644
index 0000000000..b839ddc2ad
--- /dev/null
+++ b/ext/ereg/regex/regex_extra.h
@@ -0,0 +1,14 @@
+
+#undef regexec
+#undef regerror
+#undef regfree
+#undef regcomp
+
+#if (defined(REGEX) && REGEX == 1) || (!defined(REGEX))
+
+#define regexec php_regexec
+#define regerror php_regerror
+#define regfree php_regfree
+#define regcomp php_regcomp
+
+#endif
diff --git a/ext/ereg/regex/utils.h b/ext/ereg/regex/utils.h
index 1a997ac8fc..cd4a96025f 100644
--- a/ext/ereg/regex/utils.h
+++ b/ext/ereg/regex/utils.h
@@ -1,4 +1,7 @@
/* utility definitions */
+
+#include "regex_extra.h"
+
#ifdef _POSIX2_RE_DUP_MAX
#define DUPMAX _POSIX2_RE_DUP_MAX
#else
diff --git a/ext/standard/config.m4 b/ext/standard/config.m4
index ce9a4682ef..c6e9c578ae 100644
--- a/ext/standard/config.m4
+++ b/ext/standard/config.m4
@@ -123,18 +123,24 @@ AC_CHECK_FUNCS(getwd)
divert(3)
-AC_ARG_WITH(system-regex,
-[ --with-system-regex Do not use the bundled regex library],
+AC_ARG_WITH(regex,
+[ --with-regex=TYPE regex library type: system, apache, php],
[
- if test "$withval" = "no"; then
- WANT_HSREGEX=yes
- else
- WANT_HSREGEX=no
- fi
+ REGEX_TYPE=$withval
],[
- WANT_HSREGEX=yes
+ REGEX_TYPE=php
])
+AC_ARG_WITH(system-regex,
+[ --with-system-regex (deprecated) Use system regex library],
+[
+ if test "$withval" = "yes"; then
+ REGEX_TYPE=system
+ else
+ REGEX_TYPE=php
+ fi
+])
+
AC_CRYPT_CAP
PHP_EXTENSION(standard)
diff --git a/ext/standard/reg.c b/ext/standard/reg.c
index 7f50ce3170..bd40cb2191 100644
--- a/ext/standard/reg.c
+++ b/ext/standard/reg.c
@@ -92,7 +92,9 @@ static int _free_reg_cache(reg_cache *rc)
return 1;
}
+#undef regfree
#define regfree(a);
+#undef regcomp
#define regcomp(a,b,c) _php_regcomp(a,b,c)
static void php_reg_init_globals(php_reg_globals *reg_globals)