Hi Kurt, > Just a tweak or two and its ready. The preg calloc only applies to the > HAS_PCRE case and PREGCOMP isn't needed. Otherwise it looks good. I'll > test and commit it tomorrow. thanks again for reviewing and comments!
Guenter. http://www.gknw.com/test/pcre_patch4 ############################################################################### --- ./jk/native2/common/jk_uriEnv.c.orig 2004-02-24 12:30:10.000000000 +0100 +++ ./jk/native2/common/jk_uriEnv.c 2004-02-27 00:04:20.000000000 +0100 @@ -28,10 +28,14 @@ #include "jk_uriMap.h" #include "jk_registry.h" +#ifdef HAS_AP_PCRE +#include "httpd.h" +#else #ifdef HAS_PCRE #include "pcre.h" #include "pcreposix.h" #endif +#endif /* return non-zero if pattern has any glob chars in it */ @@ -65,7 +69,7 @@ int pcre = 0; if (*name == '$') { -#ifdef HAS_PCRE +#if defined(HAS_PCRE) || defined(HAS_AP_PCRE) ++name; uriEnv->uri = uriEnv->pool->pstrdup(env, uriEnv->pool, name); uriEnv->match_type = MATCH_TYPE_REGEXP; @@ -73,8 +77,13 @@ "uriEnv.parseName() parsing %s regexp\n", name); { +#ifdef HAS_AP_PCRE + regex_t *preg = ap_pregcomp((apr_pool_t *)uriEnv->pool->_private, uriEnv->uri, REG_EXTENDED); + if (preg == NULL) { +#else regex_t *preg = (regex_t *)uriEnv->pool->calloc( env, uriEnv->pool, sizeof(regex_t)); if (regcomp(preg, uriEnv->uri, REG_EXTENDED)) { +#endif env->l->jkLog(env, env->l, JK_LOG_DEBUG, "uriEnv.parseName() error compiling regexp %s\n", uri); @@ -132,14 +141,19 @@ if (pcre) { ++uri; uriEnv->match_type = MATCH_TYPE_REGEXP; -#ifdef HAS_PCRE +#if defined(HAS_PCRE) || defined(HAS_AP_PCRE) uriEnv->uri = uriEnv->pool->pstrdup(env, uriEnv->pool, uri); env->l->jkLog(env, env->l, JK_LOG_DEBUG, "uriEnv.parseName() parsing regexp %s\n", uri); { +#ifdef HAS_AP_PCRE + regex_t *preg = ap_pregcomp((apr_pool_t *)uriEnv->pool->_private, uriEnv->uri, REG_EXTENDED); + if (preg == NULL) { +#else regex_t *preg = (regex_t *)uriEnv->pool->calloc( env, uriEnv->pool, sizeof(regex_t)); if (regcomp(preg, uriEnv->uri, REG_EXTENDED)) { +#endif env->l->jkLog(env, env->l, JK_LOG_DEBUG, "uriEnv.parseName() error compiling regexp %s\n", uri); ############################################################################### --- ./jk/native2/common/jk_uriMap.c.orig 2004-02-24 12:30:10.000000000 +0100 +++ ./jk/native2/common/jk_uriMap.c 2004-02-26 19:03:32.000000000 +0100 @@ -34,9 +34,15 @@ #include "jk_uriMap.h" #include "jk_registry.h" +#ifdef HAS_AP_PCRE +#include "httpd.h" +#define REGEXEC ap_regexec +#else #ifdef HAS_PCRE #include "pcre.h" #include "pcreposix.h" +#define REGEXEC regexec +#endif #endif static INLINE const char *jk2_findExtension(jk_env_t *env, const char *uri); @@ -304,7 +310,7 @@ return uriMap->vhosts->get(env, uriMap->vhosts, "*"); } -#ifdef HAS_PCRE +#if defined(HAS_PCRE) || defined(HAS_AP_PCRE) static jk_uriEnv_t *jk2_uriMap_regexpMap(jk_env_t *env, jk_uriMap_t *uriMap, jk_map_t *mapTable, const char *uri) { @@ -317,7 +323,7 @@ if (uwr->regexp) { regex_t *r = (regex_t *)uwr->regexp; regmatch_t regm[10]; - if (!regexec(r, uri, r->re_nsub + 1, regm, 0)) { + if (!REGEXEC(r, uri, r->re_nsub + 1, regm, 0)) { return uwr; } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]