]> git.pld-linux.org Git - packages/apache-mod_perl.git/commitdiff
- rm, updated mp2 to 2.0.4
authorradek <radek@pld-linux.org>
Wed, 23 Apr 2008 12:44:24 +0000 (12:44 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    apache-mod_perl-branch.diff -> 1.2

apache-mod_perl-branch.diff [deleted file]

diff --git a/apache-mod_perl-branch.diff b/apache-mod_perl-branch.diff
deleted file mode 100644 (file)
index 18f9ee6..0000000
+++ /dev/null
@@ -1,9141 +0,0 @@
-Index: RELEASE
-===================================================================
---- RELEASE    (.../tags/2_0_3)        (revision 630610)
-+++ RELEASE    (.../trunk)     (revision 630610)
-@@ -30,7 +30,7 @@
-        make sure you give the correct permissions to them.
- 1. 'make dist' - to make sure nothing is missing from the manifest,
--   etc. Now test this generated package mod_perl-2.0.3.tar.gz (not
-+   etc. Now test this generated package mod_perl-2.0.4.tar.gz (not
-    the current build) with as many
-    configurations as possible on as many platforms as possible,
-    unpacking the package each time afresh.  
-@@ -55,7 +55,7 @@
-    to the modperl/dev list (may be longer to give most people a chance
-    to catch up). no need to tag this package
--   Subject: [RELEASE CANDIDATE]: mod_perl-2.0.3 RC\d+
-+   Subject: [RELEASE CANDIDATE]: mod_perl-2.0.4 RC\d+
- 2a. if problems are detected during stage 2, repeat stages 1 and 2.
-@@ -82,8 +82,8 @@
-   f. Update the svn:externals in the new tag
-      (you can't propedit remotely yet in svn)
--     svn co https://svn.apache.org/repos/asf/perl/tags/2_0_3
--     svn propedit svn:xternals 2_0_3
-+     svn co https://svn.apache.org/repos/asf/perl/modperl/tags/2_0_3
-+     svn propedit svn:externals 2_0_3
-      Update the Apache-Test line to the tag you previously created.
-      Update the docs line to the current tag.
-      svn ci
-@@ -93,29 +93,29 @@
-   h. test the final package again at least once
--4. Release the package and update links (e.g. mod_perl-2.0.3.tar.gz)
-+4. Release the package and update links (e.g. mod_perl-2.0.4.tar.gz)
-   a. upload to www.apache.org:/www/perl.apache.org/dist/
--    %  scp mod_perl-2.0.3.tar.gz perl.apache.org:/www/perl.apache.org/dist/
-+    %  scp mod_perl-2.0.4.tar.gz perl.apache.org:/www/perl.apache.org/dist/
-   b. ssh to perl.apache.org, unpack the package, update symlinks to the
-      tar ball and unpacked distro:
-     % ssh perl.apache.org
-     % cd /www/perl.apache.org/dist/
--    % ln -sf mod_perl-2.0.3.tar.gz mod_perl-2.0-current.tar.gz
--    % tar -xzvf mod_perl-2.0.3.tar.gz
-+    % ln -sf mod_perl-2.0.4.tar.gz mod_perl-2.0-current.tar.gz
-+    % tar -xzvf mod_perl-2.0.4.tar.gz
-     % rm /www/perl.apache.org/dist/mod_perl-2.0-current
--    % ln -sf  mod_perl-2.0.3 mod_perl-2.0-current
-+    % ln -sf  mod_perl-2.0.4 mod_perl-2.0-current
-   c. archive older releases (keep current + one prior release)
--    % mv /www/perl.apache.org/dist/mod_perl-2.0.0.tar.gz \
-+    % mv /www/perl.apache.org/dist/mod_perl-2.0.2.tar.gz \
-          /www/perl.apache.org/dist/old
--    % mv /www/perl.apache.org/dist/mod_perl-2.0.0.tar.gz.asc \
-+    % mv /www/perl.apache.org/dist/mod_perl-2.0.2.tar.gz.asc \
-          /www/perl.apache.org/dist/old
--    % rm -rf /www/perl.apache.org/dist/mod_perl-2.0.0
-+    % rm -rf /www/perl.apache.org/dist/mod_perl-2.0.2
-   d. update the version and release date
-      modperl-docs/src/download/index_top.html and commit. It'll be
-@@ -138,27 +138,27 @@
-   a. sign your local copy of the tarball:
--    % gpg --detach-sign --armor mod_perl-2.0.3.tar.gz
-+    % gpg --detach-sign --armor mod_perl-2.0.4.tar.gz
--    % pgps -b --armor mod_perl-2.0.3.tar.gz
-+    % pgps -b --armor mod_perl-2.0.4.tar.gz
-   b. upload the generated sig file to www.apache.org:
--    % scp mod_perl-2.0.3.tar.gz.asc perl.apache.org:/www/perl.apache.org/dist/
-+    % scp mod_perl-2.0.4.tar.gz.asc perl.apache.org:/www/perl.apache.org/dist/
-     % ssh www.apache.org
-     % cd /www/perl.apache.org/dist/
--    % chmod 0664 mod_perl-2.0.3.tar.gz.asc
--    % ln -sf mod_perl-2.0.3.tar.gz.asc mod_perl-2.0-current.tar.gz.asc
-+    % chmod 0664 mod_perl-2.0.4.tar.gz.asc
-+    % ln -sf mod_perl-2.0.4.tar.gz.asc mod_perl-2.0-current.tar.gz.asc
-   c. ask one of the other developers to double check the signature file
-      and tarball: download both files and verify the signature:
--    http://perl.apache.org/dist/mod_perl-2.0.3.tar.gz.asc
--    http://perl.apache.org/dist/mod_perl-2.0.3.tar.gz
-+    http://perl.apache.org/dist/mod_perl-2.0.4.tar.gz.asc
-+    http://perl.apache.org/dist/mod_perl-2.0.4.tar.gz
--    % gpg --verify mod_perl-2.0.3.tar.gz.asc
-+    % gpg --verify mod_perl-2.0.4.tar.gz.asc
--    % pgpv mod_perl-2.0.3.tar.gz.asc
-+    % pgpv mod_perl-2.0.4.tar.gz.asc
-   d. make sure that the files you just created are group rw so
-      all the dist admins can make changes:
-@@ -172,10 +172,10 @@
-   a. unpack the package, update symlinks to the tarball and unpacked distro:
-    % cd /www/www.apache.org/dist/perl/
--   % cp /www/perl.apache.org/dist/mod_perl-2.0.3.tar.gz* .
--   % tar -xzvf mod_perl-2.0.3.tar.gz
--   % mv mod_perl-2.0.0.tar.gz* /www/archive.apache.org/dist/perl/
--   % rm -rf mod_perl-2.0.0
-+   % cp /www/perl.apache.org/dist/mod_perl-2.0.4.tar.gz* .
-+   % tar -xzvf mod_perl-2.0.4.tar.gz
-+   % mv mod_perl-2.0.2.tar.gz* /www/archive.apache.org/dist/perl/
-+   % rm -rf mod_perl-2.0.2
-   b. make sure that the files you just created are group rw so
-@@ -188,11 +188,11 @@
-   a. post ... to the modperl, announce lists
-   Note, to post to announce@, you must be sending from an apache.org address.
--  Subject: [ANNOUNCE] mod_perl 2.0.3 
-+  Subject: [ANNOUNCE] mod_perl 2.0.4 
-      include 
-   - link at perl.apache.org:
--    http://apache.org/dist/perl/mod_perl-2.0.3.tar.gz
--    http://apache.org/dist/perl/mod_perl-2.0.3.tar.gz.asc (pgp sig)
-+    http://apache.org/dist/perl/mod_perl-2.0.4.tar.gz
-+    http://apache.org/dist/perl/mod_perl-2.0.4.tar.gz.asc (pgp sig)
-   - MD5 sig (as it comes from CPAN upload announce).
-   - the latest Changes
-@@ -203,7 +203,7 @@
-   b. edit ./Changes:
-      - start a new item with incremented version + '-dev'
--  =item 2.0.3-dev
-+  =item 2.0.5-dev
-   c. add a release entry in STATUS
-@@ -214,7 +214,7 @@
-   e. commit the changed files
--     % svn ci -m "start 2.0.3-dev cycle" Changes lib/mod_perl2.pm \
-+     % svn ci -m "start 2.0.4-dev cycle" Changes lib/mod_perl2.pm \
-        STATUS RELEASE
- 10. Old Versions
-Index: STATUS
-===================================================================
---- STATUS     (.../tags/2_0_3)        (revision 630610)
-+++ STATUS     (.../trunk)     (revision 630610)
-@@ -3,6 +3,7 @@
- Release:
- --------
-+   2.000.03   : Released Nov 29, 2006
-    2.000.02   : Released Oct 20, 2005
-    2.000.01   : Released Jun 17, 2005
-    2.000.00   : Released May 20, 2005
-Index: src/modules/perl/modperl_handler.c
-===================================================================
---- src/modules/perl/modperl_handler.c (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_handler.c (.../trunk)     (revision 630610)
-@@ -18,7 +18,7 @@
- modperl_handler_t *modperl_handler_new(apr_pool_t *p, const char *name)
- {
--    modperl_handler_t *handler = 
-+    modperl_handler_t *handler =
-         (modperl_handler_t *)apr_pcalloc(p, sizeof(*handler));
-     switch (*name) {
-@@ -38,7 +38,7 @@
-     handler->cv = NULL;
-     handler->name = name;
--    MP_TRACE_h(MP_FUNC, "[%s] new handler %s\n",
-+    MP_TRACE_h(MP_FUNC, "[%s] new handler %s",
-                modperl_pid_tid(p), handler->name);
-     return handler;
-@@ -72,7 +72,7 @@
-  * when perl_clone is called, each clone will clone that CV value, but
-  * we will still be able to find it, since we stored it in the
-  * hash. so we retrieve the CV value, whatever it is and we run it.
-- * 
-+ *
-  * that explanation can be written and run in perl:
-  *
-  * use threads;
-@@ -97,7 +97,7 @@
- {
-     /* re-use modperl_mgv_t entry which is otherwise is not used
-      * by anon handlers */
--    modperl_mgv_t *anon = 
-+    modperl_mgv_t *anon =
-         (modperl_mgv_t *)apr_pcalloc(p, sizeof(*anon));
-     anon->name = apr_psprintf(p, "anon%d", modperl_global_anon_cnt_next());
-@@ -157,7 +157,7 @@
- static
- modperl_handler_t *modperl_handler_new_anon(pTHX_ apr_pool_t *p, CV *cv)
- {
--    modperl_handler_t *handler = 
-+    modperl_handler_t *handler =
-         (modperl_handler_t *)apr_pcalloc(p, sizeof(*handler));
-     MpHandlerPARSED_On(handler);
-     MpHandlerANON_On(handler);
-@@ -174,7 +174,7 @@
-     handler->cv   = cv;
-     handler->name = NULL;
--    MP_TRACE_h(MP_FUNC, "[%s] new cached cv anon handler\n",
-+    MP_TRACE_h(MP_FUNC, "[%s] new cached cv anon handler",
-                modperl_pid_tid(p));
- #endif
-@@ -244,7 +244,7 @@
- modperl_handler_t *modperl_handler_dup(apr_pool_t *p,
-                                        modperl_handler_t *h)
- {
--    MP_TRACE_h(MP_FUNC, "dup handler %s\n", modperl_handler_name(h));
-+    MP_TRACE_h(MP_FUNC, "dup handler %s", modperl_handler_name(h));
-     return modperl_handler_new(p, h->name);
- }
-@@ -279,12 +279,12 @@
-     for (i=0; i<base_a->nelts; i++) {
-         for (j=0; j<add_a->nelts; j++) {
-             if (modperl_handler_equal(base_h[i], add_h[j])) {
--                MP_TRACE_d(MP_FUNC, "both base and new config contain %s\n",
-+                MP_TRACE_d(MP_FUNC, "both base and new config contain %s",
-                            add_h[j]->name);
-             }
-             else {
-                 modperl_handler_array_push(mrg_a, add_h[j]);
--                MP_TRACE_d(MP_FUNC, "base does not contain %s\n",
-+                MP_TRACE_d(MP_FUNC, "base does not contain %s",
-                            add_h[j]->name);
-             }
-         }
-@@ -363,7 +363,7 @@
-  * $r->push/set at request time will create entries in r->request_config
-  * push will first merge with configured handlers, unless an entry
-  * in r->request_config already exists.  in this case, push or set has
-- * already been called for the given handler, 
-+ * already been called for the given handler,
-  * r->request_config entries then override those in r->per_dir_config
-  */
-@@ -427,15 +427,17 @@
-         /* just a lookup */
-         break;
-       case MP_HANDLER_ACTION_PUSH:
--        if (ravp && !*ravp) {
--            if (*avp) {
--                /* merge with existing configured handlers */
--                *ravp = apr_array_copy(p, *avp);
-+        if (ravp) {
-+            if (!*ravp) {
-+                if (*avp) {
-+                    /* merge with existing configured handlers */
-+                    *ravp = apr_array_copy(p, *avp);
-+                }
-+                else {
-+                    /* no request handlers have been previously pushed or set */
-+                    *ravp = modperl_handler_array_new(p);
-+                }
-             }
--            else {
--                /* no request handlers have been previously pushed or set */
--                *ravp = modperl_handler_array_new(p);
--            }
-         }
-         else if (!*avp) {
-             /* directly modify the configuration at startup time */
-@@ -514,6 +516,7 @@
-         }
-         name = apr_pstrcat(p, HvNAME(GvSTASH(gv)), "::", GvNAME(gv), NULL);
-         return modperl_handler_new(p, apr_pstrdup(p, name));
-+      default:
-         break;
-     };
-@@ -530,7 +533,7 @@
-         return TRUE;
-     }
--    MP_TRACE_h(MP_FUNC, "unable to push_handler 0x%lx\n",
-+    MP_TRACE_h(MP_FUNC, "unable to push_handler 0x%lx",
-                (unsigned long)sv);
-     return FALSE;
-@@ -569,7 +572,7 @@
-             }
-             if (!modperl_mgv_resolve(aTHX_ handler, p, handler->name, TRUE)) {
--                MP_TRACE_h(MP_FUNC, "failed to resolve handler %s\n",
-+                MP_TRACE_h(MP_FUNC, "failed to resolve handler %s",
-                            handler->name);
-             }
-Index: src/modules/perl/modperl_common_types.h
-===================================================================
---- src/modules/perl/modperl_common_types.h    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_common_types.h    (.../trunk)     (revision 630610)
-@@ -26,4 +26,3 @@
- } modperl_uri_t;
- #endif /* MODPERL_COMMON_TYPES_H */
--
-Index: src/modules/perl/modperl_handler.h
-===================================================================
---- src/modules/perl/modperl_handler.h (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_handler.h (.../trunk)     (revision 630610)
-@@ -27,7 +27,7 @@
- MP_INLINE modperl_mgv_t *modperl_handler_anon_next(pTHX_ apr_pool_t *p);
- MP_INLINE void modperl_handler_anon_add(pTHX_ modperl_mgv_t *anon, CV *cv);
- MP_INLINE CV *modperl_handler_anon_get(pTHX_ modperl_mgv_t *anon);
--    
-+
- #define modperl_handler_array_new(p) \
- apr_array_make(p, 1, sizeof(modperl_handler_t *))
-@@ -45,7 +45,7 @@
- modperl_handler_t *modperl_handler_new_from_sv(pTHX_ apr_pool_t *p, SV *sv);
- MP_INLINE const char *modperl_handler_name(modperl_handler_t *handler);
--    
-+
- int modperl_handler_resolve(pTHX_ modperl_handler_t **handp,
-                             apr_pool_t *p, server_rec *s);
-@@ -66,7 +66,7 @@
-                                        modperl_handler_action_e action,
-                                        const char **desc);
--MpAV **modperl_handler_get_handlers(request_rec *r, conn_rec *c,server_rec *s, 
-+MpAV **modperl_handler_get_handlers(request_rec *r, conn_rec *c,server_rec *s,
-                                     apr_pool_t *p, const char *name,
-                                     modperl_handler_action_e action);
-Index: src/modules/perl/modperl_apache_compat.c
-===================================================================
---- src/modules/perl/modperl_apache_compat.c   (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_apache_compat.c   (.../trunk)     (revision 630610)
-@@ -27,3 +27,45 @@
-  * and don't forget to insert comments explaining exactly
-  * which httpd release allows us to remove the compat code
-  */
-+
-+/* pre-APACHE_2.2.4 */
-+#if ! AP_MODULE_MAGIC_AT_LEAST(20051115,4)
-+
-+#define modperl_warn_fallback_http_function(ver, fallback) \
-+    { \
-+        dTHX; \
-+        Perl_warn(aTHX_ "%s() not available until httpd/%s " \
-+                        "falling back to %s()", \
-+                  __func__, ver, fallback); \
-+    }
-+
-+/* added in APACHE_2.2.4 */
-+AP_DECLARE(const char *) ap_get_server_description(void) {
-+    modperl_warn_fallback_http_function("2.2.4", "ap_get_server_version");
-+    return ap_get_server_version();
-+}
-+
-+AP_DECLARE(const char *) ap_get_server_banner(void) {
-+    modperl_warn_fallback_http_function("2.2.4", "ap_get_server_version");
-+    return ap_get_server_version();
-+}
-+
-+#endif /* pre-APACHE_2.2.4 */
-+
-+/* since-APACHE-2.3.0 */
-+#if AP_MODULE_MAGIC_AT_LEAST(20060905,0)
-+#define modperl_warn_deprecated_http_function(ver, fallback) \
-+    { \
-+        dTHX; \
-+        Perl_warn(aTHX_ "%s() is deprecated since httpd/%s " \
-+                        "try using %s() instead", \
-+                  __func__, ver, fallback); \
-+    }
-+
-+AP_DECLARE(const char *) ap_get_server_version(void) {
-+    modperl_warn_deprecated_http_function("2.3.0",
-+        "ap_get_server_(description|banner)");
-+    return ap_get_server_banner();
-+}
-+
-+#endif /* since-APACHE-2.3.0 */
-Index: src/modules/perl/modperl_module.c
-===================================================================
---- src/modules/perl/modperl_module.c  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_module.c  (.../trunk)     (revision 630610)
-@@ -120,7 +120,7 @@
-     modperl_svptr_table_delete(aTHX_ cleanup->table, cleanup->ptr);
--    MP_TRACE_c(MP_FUNC, "deleting ptr 0x%lx from table 0x%lx\n",
-+    MP_TRACE_c(MP_FUNC, "deleting ptr 0x%lx from table 0x%lx",
-                (unsigned long)cleanup->ptr,
-                (unsigned long)cleanup->table);
-@@ -211,7 +211,7 @@
-         int count;
-         dSP;
--        MP_TRACE_c(MP_FUNC, "calling %s->%s\n",
-+        MP_TRACE_c(MP_FUNC, "calling %s->%s",
-                    SvCLASS(base_obj), modperl_mgv_last_name(method));
-         ENTER;SAVETMPS;
-@@ -250,7 +250,7 @@
-        modperl_interp_unselect(interp); */
-     MP_PERL_CONTEXT_RESTORE;
- #endif
--    
-+
-     return (void *)mrg;
- }
-@@ -296,7 +296,7 @@
-         return NULL;
-     }
--    MP_TRACE_c(MP_FUNC, "%s cfg=0x%lx for %s.%s\n",
-+    MP_TRACE_c(MP_FUNC, "%s cfg=0x%lx for %s.%s",
-                method, (unsigned long)cfg,
-                mname, parms->cmd->name);
-@@ -420,7 +420,7 @@
-     }
-     if (obj) {
--        MP_TRACE_c(MP_FUNC, "found per-dir obj=0x%lx for %s.%s\n",
-+        MP_TRACE_c(MP_FUNC, "found per-dir obj=0x%lx for %s.%s",
-                    (unsigned long)obj,
-                    info->modp->name, cmd->name);
-     }
-@@ -440,7 +440,7 @@
-         }
-         if (srv_obj) {
--            MP_TRACE_c(MP_FUNC, "found per-srv obj=0x%lx for %s.%s\n",
-+            MP_TRACE_c(MP_FUNC, "found per-srv obj=0x%lx for %s.%s",
-                        (unsigned long)srv_obj,
-                        info->modp->name, cmd->name);
-         }
-@@ -647,7 +647,7 @@
- #ifdef USE_ITHREADS
-     MP_dSCFG(s);
-     dTHXa(scfg->mip->parent->perl);
--#endif 
-+#endif
-     module_cmds = (AV*)SvRV(mod_cmds);
-     fill = AvFILL(module_cmds);
-@@ -772,7 +772,7 @@
-     HV *stash = gv_stashpv(modp->name, FALSE);
-     GV *gv = gv_fetchmethod_autoload(stash, method, FALSE);
--    MP_TRACE_c(MP_FUNC, "looking for method %s in package `%s'...%sfound\n", 
-+    MP_TRACE_c(MP_FUNC, "looking for method %s in package `%s'...%sfound",
-                method, modp->name,
-                MP_isGV(gv) ? "" : "not ");
-@@ -809,7 +809,7 @@
-     /* use this slot for our context */
-     modp->dynamic_load_handle = minfo;
--    /* 
-+    /*
-      * XXX: we should lookup here if the Perl methods exist,
-      * and set these pointers only if they do.
-      */
-@@ -854,7 +854,7 @@
-     apr_hash_set(scfg->modules, apr_pstrdup(p, name), APR_HASH_KEY_STRING, modp);
- #ifdef USE_ITHREADS
--    /* 
-+    /*
-      * if the Perl module is loaded in the base server and a vhost
-      * has configuration directives from that module, but no mod_perl.c
-      * directives, scfg == NULL when modperl_module_cmd_take123 is run.
-@@ -870,7 +870,7 @@
-     return NULL;
- }
--SV *modperl_module_config_get_obj(pTHX_ SV *pmodule, server_rec *s, 
-+SV *modperl_module_config_get_obj(pTHX_ SV *pmodule, server_rec *s,
-                                   ap_conf_vector_t *v)
- {
-     MP_dSCFG(s);
-Index: src/modules/perl/modperl_filter.c
-===================================================================
---- src/modules/perl/modperl_filter.c  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_filter.c  (.../trunk)     (revision 630610)
-@@ -85,7 +85,7 @@
- {
-     const char *name = f->frec->name;
--    /* frec->name is always lowercased */ 
-+    /* frec->name is always lowercased */
-     if (!strcasecmp(name, MP_FILTER_CONNECTION_INPUT_NAME)  ||
-         !strcasecmp(name, MP_FILTER_CONNECTION_OUTPUT_NAME) ||
-         !strcasecmp(name, MP_FILTER_REQUEST_INPUT_NAME)     ||
-@@ -105,7 +105,7 @@
-     APR_BRIGADE_INSERT_TAIL(filter->bb_out, b);
-     ((modperl_filter_ctx_t *)filter->f->ctx)->sent_eos = 1;
-     MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--               "write out: EOS bucket\n", MP_FILTER_NAME(filter->f));
-+               "write out: EOS bucket", MP_FILTER_NAME(filter->f));
-     return APR_SUCCESS;
- }
-@@ -115,7 +115,7 @@
-     apr_bucket *b = apr_bucket_flush_create(ba);
-     APR_BRIGADE_INSERT_TAIL(filter->bb_out, b);
-     MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--               "write out: FLUSH bucket\n", MP_FILTER_NAME(filter->f));
-+               "write out: FLUSH bucket", MP_FILTER_NAME(filter->f));
-     return APR_SUCCESS;
- }
-@@ -128,7 +128,7 @@
-     APR_BRIGADE_INSERT_TAIL(bb, b);
-     ((modperl_filter_ctx_t *)f->ctx)->sent_eos = 1;
-     MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--               "write out: EOS bucket in separate bb\n", MP_FILTER_NAME(f));
-+               "write out: EOS bucket in separate bb", MP_FILTER_NAME(f));
-     return ap_pass_brigade(f->next, bb);
- }
-@@ -140,7 +140,7 @@
-     apr_bucket *b = apr_bucket_flush_create(ba);
-     APR_BRIGADE_INSERT_TAIL(bb, b);
-     MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--               "write out: FLUSH bucket in separate bb\n", MP_FILTER_NAME(f));
-+               "write out: FLUSH bucket in separate bb", MP_FILTER_NAME(f));
-     return ap_pass_brigade(f, bb);
- }
-@@ -165,7 +165,7 @@
-         const char *body;
-         int status;
--        MP_TRACE_f(MP_FUNC, "\n\n\tparsing headers: %db [%s]\n", len,
-+        MP_TRACE_f(MP_FUNC, "parsing headers: %db [%s]", len,
-                    MP_TRACE_STR_TRUNC(wb->pool, buf, len));
-         status = modperl_cgi_header_parse(r, (char *)buf, &len, &body);
-@@ -209,9 +209,9 @@
-         APR_BRIGADE_INSERT_TAIL(bb, bucket);
-     }
--    MP_TRACE_f(MP_FUNC, "\n\n\twrite out: %db [%s]\n"
--               "\t\tfrom %s\n\t\tto %s filter handler\n",
--               len, 
-+    MP_TRACE_f(MP_FUNC, "\n\n\twrite out: %db [%s]"
-+               "\t\tfrom %s\n\t\tto %s filter handler",
-+               len,
-                MP_TRACE_STR_TRUNC(wb->pool, buf, len),
-                ((wb->r && wb->filters == &wb->r->output_filters)
-                    ? "response handler" : "current filter handler"),
-@@ -343,7 +343,7 @@
-     MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
-                "new: %s %s filter (modperl_filter_t *0x%lx), "
--               "f (ap_filter_t *0x%lx)\n",
-+               "f (ap_filter_t *0x%lx)",
-                MP_FILTER_NAME(f),
-                MP_FILTER_TYPE(filter),
-                MP_FILTER_MODE(filter),
-@@ -404,7 +404,7 @@
-         FREETMPS;LEAVE;
-         if (init_handler) {
--            MP_TRACE_h(MP_FUNC, "found init handler %s\n",
-+            MP_TRACE_h(MP_FUNC, "found init handler %s",
-                        modperl_handler_name(init_handler));
-             if (!init_handler->attrs & MP_FILTER_INIT_HANDLER) {
-@@ -427,7 +427,7 @@
- static int modperl_run_filter_init(ap_filter_t *f,
-                                    modperl_filter_mode_e mode,
--                                   modperl_handler_t *handler) 
-+                                   modperl_handler_t *handler)
- {
-     AV *args = Nullav;
-     int status;
-@@ -438,9 +438,9 @@
-     apr_pool_t  *p = r ? r->pool : c->pool;
-     modperl_filter_t *filter = modperl_filter_new(f, NULL, mode, 0, 0, 0);
--    MP_dINTERP_SELECT(r, c, s);    
-+    MP_dINTERP_SELECT(r, c, s);
--    MP_TRACE_h(MP_FUNC, "running filter init handler %s\n",
-+    MP_TRACE_h(MP_FUNC, "running filter init handler %s",
-                modperl_handler_name(handler));
-     modperl_handler_make_args(aTHX_ &args,
-@@ -465,9 +465,9 @@
-     MP_INTERP_PUTBACK(interp);
-     MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--               "return: %d\n", modperl_handler_name(handler), status);
-+               "return: %d", modperl_handler_name(handler), status);
--    return status;  
-+    return status;
- }
-@@ -572,7 +572,7 @@
-     MP_INTERP_PUTBACK(interp);
-     MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--               "return: %d\n", modperl_handler_name(handler), status);
-+               "return: %d", modperl_handler_name(handler), status);
-     return status;
- }
-@@ -601,7 +601,7 @@
- {
-     if (!filter->bb_in || MP_FILTER_EMPTY(filter)) {
-         MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--                   "read in: bucket brigade is empty\n",
-+                   "read in: bucket brigade is empty",
-                    MP_FILTER_NAME(filter->f));
-         return 0;
-     }
-@@ -623,7 +623,7 @@
-     if (MP_FILTER_IS_EOS(filter)) {
-         MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--                   "read in: EOS bucket\n",
-+                   "read in: EOS bucket",
-                    MP_FILTER_NAME(filter->f));
-         filter->seen_eos = 1;
-@@ -634,7 +634,7 @@
-     }
-     else if (MP_FILTER_IS_FLUSH(filter)) {
-         MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--                   "read in: FLUSH bucket\n",
-+                   "read in: FLUSH bucket",
-                    MP_FILTER_NAME(filter->f));
-         filter->flush = 1;
-         return 0;
-@@ -669,7 +669,7 @@
-     /* modperl_brigade_dump(filter->bb_in, NULL); */
-     MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--               "wanted: %db\n",
-+               "wanted: %db",
-                MP_FILTER_NAME(filter->f),
-                wanted);
-@@ -677,7 +677,7 @@
-         if (filter->remaining >= wanted) {
-             MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
-                        "eating and returning %d [%s]\n\tof "
--                       "remaining %db\n",
-+                       "remaining %db",
-                        MP_FILTER_NAME(filter->f),
-                        wanted,
-                        MP_TRACE_STR_TRUNC(filter->pool, filter->leftover, wanted),
-@@ -689,7 +689,7 @@
-         }
-         else {
-             MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--                       "eating remaining %db\n",
-+                       "eating remaining %db",
-                        MP_FILTER_NAME(filter->f),
-                        filter->remaining);
-             sv_catpvn(buffer, filter->leftover, filter->remaining);
-@@ -714,7 +714,7 @@
-         if (filter->rc == APR_SUCCESS) {
-             MP_TRACE_f(MP_FUNC,
-                        MP_FILTER_NAME_FORMAT
--                       "read in: %s bucket with %db (0x%lx)\n",
-+                       "read in: %s bucket with %db (0x%lx)",
-                        MP_FILTER_NAME(filter->f),
-                        filter->bucket->type->name,
-                        buf_len,
-@@ -743,7 +743,7 @@
-     MP_TRACE_f(MP_FUNC,
-                MP_FILTER_NAME_FORMAT
--               "return: %db from %d bucket%s [%s]\n\t(%db leftover)\n",
-+               "return: %db from %d bucket%s [%s]\n\t(%db leftover)",
-                MP_FILTER_NAME(filter->f),
-                len, num_buckets, ((num_buckets == 1) ? "" : "s"),
-                MP_TRACE_STR_TRUNC(filter->pool, SvPVX(buffer), len),
-@@ -764,7 +764,7 @@
-         filter->bb_in = apr_brigade_create(filter->pool,
-                                            filter->f->c->bucket_alloc);
-         MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--                   "retrieving bb: 0x%lx\n",
-+                   "retrieving bb: 0x%lx",
-                    MP_FILTER_NAME(filter->f),
-                    (unsigned long)(filter->bb_in));
-         MP_RUN_CROAK(ap_get_brigade(filter->f->next, filter->bb_in,
-@@ -870,7 +870,7 @@
-     char *copy = apr_pmemdup(filter->pool, buf, *len);
-     apr_bucket *bucket = apr_bucket_transient_create(copy, *len, ba);
-     MP_TRACE_f(MP_FUNC, MP_FILTER_NAME_FORMAT
--               "write out: %db [%s]:\n",
-+               "write out: %db [%s]:",
-                MP_FILTER_NAME(filter->f), *len,
-                MP_TRACE_STR_TRUNC(filter->pool, copy, *len));
-     APR_BRIGADE_INSERT_TAIL(filter->bb_out, bucket);
-@@ -898,7 +898,7 @@
-         MP_TRACE_f(MP_FUNC,
-                    MP_FILTER_NAME_FORMAT
-                    "write_out: EOS was already sent, "
--                   "passing through the brigade\n",
-+                   "passing through the brigade",
-                    MP_FILTER_NAME(f));
-         return ap_pass_brigade(f->next, bb);
-     }
-@@ -932,7 +932,7 @@
-         MP_TRACE_f(MP_FUNC,
-                    MP_FILTER_NAME_FORMAT
-                    "write out: EOS was already sent, "
--                   "passing through the brigade\n",
-+                   "passing through the brigade",
-                    MP_FILTER_NAME(f));
-         return ap_get_brigade(f->next, bb, input_mode, block, readbytes);
-     }
-@@ -998,7 +998,7 @@
-                 addfunc(handlers[i]->name, NULL, NULL, c);
-                 MP_TRACE_f(MP_FUNC,
-                            "a non-mod_perl %s handler %s configured "
--                           "(connection)\n", type, handlers[i]->name);
-+                           "(connection)", type, handlers[i]->name);
-                 continue;
-             }
-@@ -1006,7 +1006,7 @@
-              * configured outside the resource container */
-             if (!(handlers[i]->attrs & MP_FILTER_CONNECTION_HANDLER)) {
-                 MP_TRACE_f(MP_FUNC,
--                           "%s is not a FilterConnection handler, skipping\n",
-+                           "%s is not a FilterConnection handler, skipping",
-                            handlers[i]->name);
-                 continue;
-             }
-@@ -1033,14 +1033,14 @@
-                 }
-             }
--            MP_TRACE_h(MP_FUNC, "%s handler %s configured (connection)\n",
-+            MP_TRACE_h(MP_FUNC, "%s handler %s configured (connection)",
-                        type, handlers[i]->name);
-         }
-         return OK;
-     }
--    MP_TRACE_h(MP_FUNC, "no %s handlers configured (connection)\n", type);
-+    MP_TRACE_h(MP_FUNC, "no %s handlers configured (connection)", type);
-     return DECLINED;
- }
-@@ -1068,7 +1068,7 @@
-             if ((handlers[i]->attrs & MP_FILTER_HTTPD_HANDLER)) {
-                 addfunc(handlers[i]->name, NULL, r, r->connection);
-                 MP_TRACE_f(MP_FUNC,
--                           "a non-mod_perl %s handler %s configured (%s)\n",
-+                           "a non-mod_perl %s handler %s configured (%s)",
-                            type, handlers[i]->name, r->uri);
-                 continue;
-             }
-@@ -1079,7 +1079,7 @@
-              */
-             if ((handlers[i]->attrs & MP_FILTER_CONNECTION_HANDLER)) {
-                 MP_TRACE_f(MP_FUNC,
--                           "%s is not a FilterRequest handler, skipping\n",
-+                           "%s is not a FilterRequest handler, skipping",
-                            handlers[i]->name);
-                 continue;
-             }
-@@ -1096,7 +1096,7 @@
-                 /* XXX: I think this won't work as f->frec->name gets
-                  * lowercased when added to the chain */
-                 if (*fname == 'M' && strEQ(fname, name)) {
--                    modperl_handler_t *ctx_handler = 
-+                    modperl_handler_t *ctx_handler =
-                         ((modperl_filter_ctx_t *)f->ctx)->handler;
-                     if (modperl_handler_equal(ctx_handler, handlers[i])) {
-@@ -1114,7 +1114,7 @@
-             if (registered) {
-                 MP_TRACE_f(MP_FUNC,
--                        "%s %s already registered\n",
-+                        "%s %s already registered",
-                         handlers[i]->name, type);
-                 continue;
-             }
-@@ -1141,14 +1141,14 @@
-                 }
-             }
--            MP_TRACE_h(MP_FUNC, "%s handler %s configured (%s)\n",
-+            MP_TRACE_h(MP_FUNC, "%s handler %s configured (%s)",
-                        type, handlers[i]->name, r->uri);
-         }
-         return OK;
-     }
--    MP_TRACE_h(MP_FUNC, "no %s handlers configured (%s)\n",
-+    MP_TRACE_h(MP_FUNC, "no %s handlers configured (%s)",
-                type, r->uri);
-     return DECLINED;
-@@ -1215,7 +1215,7 @@
-                                   modperl_filter_f_cleanup,
-                                   apr_pool_cleanup_null);
--        /* has to resolve early so we can check for init functions */ 
-+        /* has to resolve early so we can check for init functions */
-         if (!modperl_mgv_resolve(aTHX_ handler, pool, handler->name, TRUE)) {
-             Perl_croak(aTHX_ "unable to resolve handler %s\n",
-                        modperl_handler_name(handler));
-@@ -1255,7 +1255,7 @@
-             }
-         }
--        MP_TRACE_h(MP_FUNC, "%s handler %s configured (connection)\n",
-+        MP_TRACE_h(MP_FUNC, "%s handler %s configured (connection)",
-                    type, name);
-         return;
-Index: src/modules/perl/modperl_common_util.c
-===================================================================
---- src/modules/perl/modperl_common_util.c     (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_common_util.c     (.../trunk)     (revision 630610)
-@@ -23,9 +23,8 @@
- #include "modperl_common_util.h"
--
- /* Prefetch magic requires perl 5.8 */
--#if ((PERL_REVISION == 5) && (PERL_VERSION >= 8))
-+#if MP_PERL_VERSION_AT_LEAST(5, 8, 0)
- /* A custom MGVTBL with mg_copy slot filled in allows us to FETCH a
-  * table entry immediately during iteration.  For multivalued keys
-@@ -41,7 +40,7 @@
-  */
- MP_INLINE static
--int modperl_table_magic_copy(pTHX_ SV *sv, MAGIC *mg, SV *nsv, 
-+int modperl_table_magic_copy(pTHX_ SV *sv, MAGIC *mg, SV *nsv,
-                              const char *name, int namelen)
- {
-     /* prefetch the value whenever we're iterating over the keys */
-@@ -54,11 +53,11 @@
- }
--static const MGVTBL modperl_table_magic_prefetch = {0, 0, 0, 0, 0, 
-+static const MGVTBL modperl_table_magic_prefetch = {0, 0, 0, 0, 0,
-                                                     modperl_table_magic_copy};
- #endif /* End of prefetch magic */
--MP_INLINE SV *modperl_hash_tie(pTHX_ 
-+MP_INLINE SV *modperl_hash_tie(pTHX_
-                                const char *classname,
-                                SV *tsv, void *p)
- {
-@@ -68,7 +67,7 @@
-     sv_setref_pv(rsv, classname, p);
-     /* Prefetch magic requires perl 5.8 */
--#if ((PERL_REVISION == 5) && (PERL_VERSION >= 8))
-+#if MP_PERL_VERSION_AT_LEAST(5, 8, 0)
-     sv_magicext(hv, NULL, PERL_MAGIC_ext, NULL, Nullch, -1);
-     SvMAGIC(hv)->mg_virtual = (MGVTBL *)&modperl_table_magic_prefetch;
-@@ -82,7 +81,7 @@
-                                  gv_stashpv(classname, TRUE)));
- }
--MP_INLINE SV *modperl_hash_tied_object_rv(pTHX_ 
-+MP_INLINE SV *modperl_hash_tied_object_rv(pTHX_
-                                           const char *classname,
-                                           SV *tsv)
- {
-@@ -116,7 +115,7 @@
-     return &PL_sv_undef;
- }
--MP_INLINE void *modperl_hash_tied_object(pTHX_ 
-+MP_INLINE void *modperl_hash_tied_object(pTHX_
-                                          const char *classname,
-                                          SV *tsv)
- {
-@@ -134,7 +133,7 @@
- {
-     GV *gv = newGVgen(pack);
-     SV *rv = newRV((SV*)gv);
--    (void)hv_delete(gv_stashpv(pack, TRUE), 
-+    (void)hv_delete(gv_stashpv(pack, TRUE),
-                     GvNAME(gv), GvNAMELEN(gv), G_DISCARD);
-     return rv;
- }
-Index: src/modules/perl/modperl_pcw.c
-===================================================================
---- src/modules/perl/modperl_pcw.c     (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_pcw.c     (.../trunk)     (revision 630610)
-@@ -32,7 +32,7 @@
-     for (i = 0; i < sconf->sec_url->nelts; i++) {
-         core_dir_config *conf =
-             ap_get_module_config(urls[i], &core_module);
--        void *dir_cfg = ap_get_module_config(urls[i], modp);     
-+        void *dir_cfg = ap_get_module_config(urls[i], modp);
-         if (!dir_cb(pconf, s, dir_cfg, conf->d, data)) {
-             break;
-@@ -82,9 +82,9 @@
-                                 module *modp,
-                                 ap_pcw_dir_cb_t dir_cb, void *data)
- {
--    core_dir_config *conf = 
-+    core_dir_config *conf =
-         ap_get_module_config(s->lookup_defaults, &core_module);
--    void *dir_cfg = 
-+    void *dir_cfg =
-         ap_get_module_config(s->lookup_defaults, modp);
-     dir_cb(pconf, s, dir_cfg, conf->d, data);
-@@ -108,7 +108,7 @@
-                         ap_pcw_dir_cb_t dir_cb, ap_pcw_srv_cb_t srv_cb)
- {
-     for (; s; s = s->next) {
--        core_dir_config *dconf = 
-+        core_dir_config *dconf =
-             ap_get_module_config(s->lookup_defaults,
-                                  &core_module);
-Index: src/modules/perl/modperl_apache_compat.h
-===================================================================
---- src/modules/perl/modperl_apache_compat.h   (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_apache_compat.h   (.../trunk)     (revision 630610)
-@@ -36,6 +36,23 @@
-  * which httpd release allows us to remove the compat code
-  */
-+/* pre-APACHE_2.2.4 */
-+#if ! AP_MODULE_MAGIC_AT_LEAST(20051115,4)
-+
-+/* added in APACHE_2.2.4 */
-+AP_DECLARE(const char *) ap_get_server_description(void);
-+AP_DECLARE(const char *) ap_get_server_banner(void);
-+
-+#endif /* pre-APACHE_2.2.4 */
-+
-+/* since-APACHE-2.3.0 */
-+#if AP_MODULE_MAGIC_AT_LEAST(20060905,0)
-+
-+/* removed in APACHE-2.3.0 */
-+AP_DECLARE(const char *) ap_get_server_version(void);
-+
-+#endif /* since-APACHE-2.3.0 */
-+
- /* ap_http_scheme is called ap_http_method in httpd 2.0 */
- #ifndef ap_http_scheme
- #define ap_http_scheme(r) ap_http_method(r)
-Index: src/modules/perl/modperl_module.h
-===================================================================
---- src/modules/perl/modperl_module.h  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_module.h  (.../trunk)     (revision 630610)
-@@ -24,7 +24,7 @@
- const char *modperl_module_add(apr_pool_t *p, server_rec *s,
-                                const char *name, SV *mod_cmds);
--SV *modperl_module_config_get_obj(pTHX_ SV *pmodule, server_rec *s, 
-+SV *modperl_module_config_get_obj(pTHX_ SV *pmodule, server_rec *s,
-                                   ap_conf_vector_t *v);
- #endif /* MODPERL_MODULE_H */
-Index: src/modules/perl/modperl_filter.h
-===================================================================
---- src/modules/perl/modperl_filter.h  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_filter.h  (.../trunk)     (revision 630610)
-@@ -25,9 +25,9 @@
- #define MP_FILTER_CONNECTION_HANDLER 0x01
- #define MP_FILTER_REQUEST_HANDLER    0x02
--#define MP_FILTER_HAS_INIT_HANDLER   0x04 
--#define MP_FILTER_INIT_HANDLER       0x08 
--#define MP_FILTER_HTTPD_HANDLER      0x10 
-+#define MP_FILTER_HAS_INIT_HANDLER   0x04
-+#define MP_FILTER_INIT_HANDLER       0x08
-+#define MP_FILTER_HTTPD_HANDLER      0x10
- typedef ap_filter_t * MP_FUNC_T(modperl_filter_add_t) (const char *, void *,
-                                                        request_rec *,
-@@ -101,7 +101,7 @@
-                                                modperl_filter_t *filter,
-                                                SV *buffer,
-                                                apr_size_t wanted);
--    
-+
- MP_INLINE apr_status_t modperl_input_filter_write(pTHX_
-                                                   modperl_filter_t *filter,
-                                                   const char *buf,
-Index: src/modules/perl/modperl_common_util.h
-===================================================================
---- src/modules/perl/modperl_common_util.h     (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_common_util.h     (.../trunk)     (revision 630610)
-@@ -1,4 +1,3 @@
--
- /* Licensed to the Apache Software Foundation (ASF) under one or more
-  * contributor license agreements.  See the NOTICE file distributed with
-  * this work for additional information regarding copyright ownership.
-@@ -78,13 +77,25 @@
- #define MP_magical_tie(sv, mg_flags) \
-     SvFLAGS((SV*)sv) |= mg_flags
-+/* some wrapper macros to detect perl versions
-+ * and prevent code clutter */
-+#define MP_PERL_VERSION_AT_LEAST(r, v, s)                                \
-+    (PERL_REVISION == r &&                                               \
-+    ((PERL_VERSION == v && PERL_SUBVERSION > s-1) || PERL_VERSION > v))
-+#define MP_PERL_VERSION_AT_MOST(r, v, s)                                 \
-+   (PERL_REVISION == r &&                                                \
-+   (PERL_VERSION < v || (PERL_VERSION == v && PERL_SUBVERSION < s+1)))
-+
-+#define MP_PERL_VERSION(r, v, s)                                         \
-+  (PERL_REVISION == r && PERL_VERSION == v && PERL_SUBVERSION == s)
-+
- /* tie %hash */
- MP_INLINE SV *modperl_hash_tie(pTHX_ const char *classname,
-                                SV *tsv, void *p);
- /* tied %hash */
--MP_INLINE SV *modperl_hash_tied_object_rv(pTHX_ 
-+MP_INLINE SV *modperl_hash_tied_object_rv(pTHX_
-                                           const char *classname,
-                                           SV *tsv);
- /* tied %hash */
-@@ -99,4 +110,3 @@
- SV *modperl_perl_gensym(pTHX_ char *pack);
- #endif /* MODPERL_COMMON_UTIL_H */
--
-Index: src/modules/perl/modperl_options.c
-===================================================================
---- src/modules/perl/modperl_options.c (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_options.c (.../trunk)     (revision 630610)
-@@ -52,10 +52,10 @@
- modperl_options_t *modperl_options_new(apr_pool_t *p, int type)
- {
--    modperl_options_t *options = 
-+    modperl_options_t *options =
-         (modperl_options_t *)apr_pcalloc(p, sizeof(*options));
--    options->opts = options->unset = 
-+    options->opts = options->unset =
-         (type == MpSrvType ? MpSrv_f_UNSET : MpDir_f_UNSET);
-     return options;
-Index: src/modules/perl/modperl_perl.c
-===================================================================
---- src/modules/perl/modperl_perl.c    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_perl.c    (.../trunk)     (revision 630610)
-@@ -43,9 +43,9 @@
-         Perl_croak(aTHX_ "Usage: ModPerl::Util::exit(status=0)");
-     }
-     /* default: 0 */
--    status = items < 1 ? 0 : (int)SvIV(ST(0)); 
-+    status = items < 1 ? 0 : (int)SvIV(ST(0));
-     modperl_perl_exit(aTHX_ status);
--    
-+
-     XSRETURN_EMPTY;
- }
-@@ -71,17 +71,17 @@
- #endif
- #ifndef WIN32
-     ids->uid  = getuid();
--    ids->euid = geteuid(); 
--    ids->gid  = getgid(); 
--    ids->egid  = getegid(); 
-+    ids->euid = geteuid();
-+    ids->gid  = getgid();
-+    ids->egid  = getegid();
--    MP_TRACE_r(MP_FUNC, 
-+    MP_TRACE_r(MP_FUNC,
-                "pid=%d, "
- #ifdef MP_MAINTAIN_PPID
-                "ppid=%d, "
- #endif
-                "uid=%" Uid_t_f ", euid=%" Uid_t_f ", "
--               "gid=%" Gid_t_f ", egid=%" Gid_t_f "\n",
-+               "gid=%" Gid_t_f ", egid=%" Gid_t_f,
-                (int)ids->pid,
- #ifdef MP_MAINTAIN_PPID
-                (int)ids->ppid,
-@@ -134,7 +134,7 @@
- void modperl_perl_destruct(PerlInterpreter *perl)
- {
-     char **orig_environ = NULL;
--    PTR_TBL_t *module_commands; 
-+    PTR_TBL_t *module_commands;
-     dTHXa(perl);
-     PERL_SET_CONTEXT(perl);
-@@ -200,8 +200,7 @@
-      }
- }
--#if !(PERL_REVISION == 5 && ( PERL_VERSION < 8 ||    \
--    (PERL_VERSION == 8 && PERL_SUBVERSION == 0))) && \
-+#if !(MP_PERL_VERSION_AT_MOST(5, 8, 0)) && \
-     (defined(USE_HASH_SEED) || defined(USE_HASH_SEED_EXPLICIT))
- #define MP_NEED_HASH_SEED_FIXUP
- #endif
-@@ -212,7 +211,7 @@
- #endif
- /* see modperl_hash_seed_set() */
--void modperl_hash_seed_init(apr_pool_t *p) 
-+void modperl_hash_seed_init(apr_pool_t *p)
- {
- #ifdef MP_NEED_HASH_SEED_FIXUP
-     char *s;
-@@ -254,11 +253,11 @@
-  * it randomizes if perl was compiled with ccflags -DUSE_HASH_SEED
-  * or -DUSE_HASH_SEED_EXPLICIT, in which case we need to tell perl
-  * to use the same seed everywhere */
--void modperl_hash_seed_set(pTHX) 
-+void modperl_hash_seed_set(pTHX)
- {
- #ifdef MP_NEED_HASH_SEED_FIXUP
-     if (MP_init_hash_seed_set) {
--#if PERL_REVISION == 5 && PERL_VERSION == 8 && PERL_SUBVERSION == 1
-+#if MP_PERL_VERSION(5, 8, 1)
-         PL_hash_seed       = MP_init_hash_seed;
-         PL_hash_seed_set   = MP_init_hash_seed_set;
- #else
-Index: src/modules/perl/modperl_tipool.c
-===================================================================
---- src/modules/perl/modperl_tipool.c  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_tipool.c  (.../trunk)     (revision 630610)
-@@ -33,7 +33,7 @@
- modperl_list_t *modperl_list_new()
- {
--    modperl_list_t *listp = 
-+    modperl_list_t *listp =
-         (modperl_list_t *)malloc(sizeof(*listp));
-     memset(listp, '\0', sizeof(*listp));
-     return listp;
-@@ -123,7 +123,7 @@
- #ifdef MP_TRACE
-     if (!tmp) {
-         /* should never happen */
--        MP_TRACE_i(MP_FUNC, "failed to find 0x%lx in list 0x%lx\n",
-+        MP_TRACE_i(MP_FUNC, "failed to find 0x%lx in list 0x%lx",
-                    (unsigned long)rlist, (unsigned long)list);
-     }
- #endif
-@@ -189,7 +189,7 @@
-         modperl_tipool_add(tipool, item);
-     }
--    MP_TRACE_i(MP_FUNC, "start=%d, max=%d, min_spare=%d, max_spare=%d\n",
-+    MP_TRACE_i(MP_FUNC, "start=%d, max=%d, min_spare=%d, max_spare=%d",
-                tipool->cfg->start, tipool->cfg->max,
-                tipool->cfg->min_spare, tipool->cfg->max_spare);
-@@ -211,7 +211,7 @@
-     }
-     if (tipool->busy) {
--        MP_TRACE_i(MP_FUNC, "ERROR: %d items still in use\n",
-+        MP_TRACE_i(MP_FUNC, "ERROR: %d items still in use",
-                    tipool->in_use);
-     }
-@@ -231,7 +231,7 @@
-     tipool->size++;
--    MP_TRACE_i(MP_FUNC, "added 0x%lx (size=%d)\n",
-+    MP_TRACE_i(MP_FUNC, "added 0x%lx (size=%d)",
-                (unsigned long)listp, tipool->size);
- }
-@@ -242,7 +242,7 @@
-     tipool->idle = modperl_list_remove(tipool->idle, listp);
-     tipool->size--;
--    MP_TRACE_i(MP_FUNC, "removed 0x%lx (size=%d)\n",
-+    MP_TRACE_i(MP_FUNC, "removed 0x%lx (size=%d)",
-                (unsigned long)listp, tipool->size);
- }
-@@ -255,7 +255,7 @@
-     if (tipool->size == tipool->in_use) {
-         if (tipool->size < tipool->cfg->max) {
-             MP_TRACE_i(MP_FUNC,
--                       "no idle items, size %d < %d max\n",
-+                       "no idle items, size %d < %d max",
-                        tipool->size, tipool->cfg->max);
-             if (tipool->func->tipool_rgrow) {
-                 void * item =
-@@ -277,7 +277,7 @@
-     /* XXX: this should never happen */
-     if (!head) {
--        MP_TRACE_i(MP_FUNC, "PANIC: no items available, %d of %d in use\n", 
-+        MP_TRACE_i(MP_FUNC, "PANIC: no items available, %d of %d in use",
-                    tipool->in_use, tipool->size);
-         abort();
-     }
-@@ -318,14 +318,14 @@
- #ifdef MP_TRACE
-     if (!tipool->busy && tipool->func->tipool_dump) {
--        MP_TRACE_i(MP_FUNC, "all items idle:\n");
-+        MP_TRACE_i(MP_FUNC, "all items idle:");
-         MP_TRACE_i_do((*tipool->func->tipool_dump)(tipool,
-                                                    tipool->data,
-                                                    tipool->idle));
-     }
- #endif
--    MP_TRACE_i(MP_FUNC, "0x%lx now available (%d in use, %d running)\n",
-+    MP_TRACE_i(MP_FUNC, "0x%lx now available (%d in use, %d running)",
-                (unsigned long)listp->data, tipool->in_use, tipool->size);
-     if (tipool->in_use == (tipool->cfg->max - 1)) {
-@@ -341,11 +341,11 @@
-     if (max_spare) {
-         MP_TRACE_i(MP_FUNC,
--                   "shrinking pool: max_spare=%d, only %d of %d in use\n",
-+                   "shrinking pool: max_spare=%d, only %d of %d in use",
-                    tipool->cfg->max_spare, tipool->in_use, tipool->size);
-     }
-     else if (max_requests) {
--        MP_TRACE_i(MP_FUNC, "shrinking pool: max requests %d reached\n",
-+        MP_TRACE_i(MP_FUNC, "shrinking pool: max requests %d reached",
-                    tipool->cfg->max_requests);
-     }
-@@ -370,7 +370,7 @@
-                                                   tipool->data);
-                 MP_TRACE_i(MP_FUNC,
--                           "growing pool: min_spare=%d, %d of %d in use\n",
-+                           "growing pool: min_spare=%d, %d of %d in use",
-                            tipool->cfg->min_spare, tipool->in_use,
-                            tipool->size);
-Index: src/modules/perl/modperl_perl.h
-===================================================================
---- src/modules/perl/modperl_perl.h    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_perl.h    (.../trunk)     (revision 630610)
-@@ -22,7 +22,7 @@
-  * need to do that for those fake 5.8.0 as well. real 5.8.0 doesn't
-  * have THREADS_HAVE_PIDS defined.
-  */
--#if PERL_REVISION == 5 && PERL_VERSION >= 8 && THREADS_HAVE_PIDS
-+#if MP_PERL_VERSION_AT_LEAST(5, 8, 0) && THREADS_HAVE_PIDS
- #define MP_MAINTAIN_PPID
- #endif
-Index: src/modules/perl/modperl_io.c
-===================================================================
---- src/modules/perl/modperl_io.c      (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_io.c      (.../trunk)     (revision 630610)
-@@ -33,7 +33,7 @@
-     SvREFCNT_dec(obj); /* since sv_magic did SvREFCNT_inc */
--    MP_TRACE_r(MP_FUNC, "tie *%s(0x%lx) => %s, REFCNT=%d\n",
-+    MP_TRACE_r(MP_FUNC, "tie *%s(0x%lx) => %s, REFCNT=%d",
-                GvNAME(handle), (unsigned long)handle, classname,
-                SvREFCNT(TIEHANDLE_SV(handle)));
- }
-@@ -80,12 +80,12 @@
-     SV *sv = TIEHANDLE_SV(handle);
-     if (SvMAGICAL(sv) && (mg = mg_find(sv, PERL_MAGIC_tiedscalar))) {
--      char *package = HvNAME(SvSTASH((SV*)SvRV(mg->mg_obj)));
-+        char *package = HvNAME(SvSTASH((SV*)SvRV(mg->mg_obj)));
--      if (!strEQ(package, classname)) {
--          MP_TRACE_r(MP_FUNC, "%s tied to %s\n", GvNAME(handle), package);
--          return TRUE;
--      }
-+        if (!strEQ(package, classname)) {
-+            MP_TRACE_r(MP_FUNC, "%s tied to %s", GvNAME(handle), package);
-+            return TRUE;
-+        }
-     }
-     return FALSE;
-@@ -95,7 +95,7 @@
- {
- #ifdef MP_TRACE
-     if (mg_find(TIEHANDLE_SV(handle), PERL_MAGIC_tiedscalar)) {
--        MP_TRACE_r(MP_FUNC, "untie *%s(0x%lx), REFCNT=%d\n",
-+        MP_TRACE_r(MP_FUNC, "untie *%s(0x%lx), REFCNT=%d",
-                    GvNAME(handle), (unsigned long)handle,
-                    SvREFCNT(TIEHANDLE_SV(handle)));
-     }
-@@ -141,7 +141,7 @@
-         Perl_croak(aTHX_ "Failed to open STDIN: %" SVf, get_sv("!", TRUE));
-     }
--    MP_TRACE_o(MP_FUNC, "end\n");
-+    MP_TRACE_o(MP_FUNC, "end");
-     return handle_save;
- }
-@@ -184,7 +184,7 @@
-         Perl_croak(aTHX_ "Failed to open STDOUT: %" SVf, get_sv("!", TRUE));
-     }
--    MP_TRACE_o(MP_FUNC, "end\n");
-+    MP_TRACE_o(MP_FUNC, "end");
-     /* XXX: shouldn't we preserve the value STDOUT had before it was
-      * overridden? */
-@@ -218,7 +218,7 @@
-         }
-         do_close(handle, FALSE);
--        (void)hv_delete(gv_stashpv("Apache2::RequestIO", TRUE), 
-+        (void)hv_delete(gv_stashpv("Apache2::RequestIO", TRUE),
-                         GvNAME(handle), GvNAMELEN(handle), G_DISCARD);
-         if (err != Nullsv) {
-@@ -226,11 +226,11 @@
-         }
-     }
--    MP_TRACE_o(MP_FUNC, "end\n");
-+    MP_TRACE_o(MP_FUNC, "end");
- }
- MP_INLINE void modperl_io_perlio_restore_stdout(pTHX_ GV *handle)
--{ 
-+{
-     GV *handle_orig = gv_fetchpv("STDOUT", FALSE, SVt_PVIO);
-     MP_TRACE_o(MP_FUNC, "start");
-@@ -265,7 +265,7 @@
-         }
-         do_close(handle, FALSE);
--        (void)hv_delete(gv_stashpv("Apache2::RequestIO", TRUE), 
-+        (void)hv_delete(gv_stashpv("Apache2::RequestIO", TRUE),
-                         GvNAME(handle), GvNAMELEN(handle), G_DISCARD);
-         if (err != Nullsv) {
-@@ -273,5 +273,5 @@
-         }
-     }
--    MP_TRACE_o(MP_FUNC, "end\n");
-+    MP_TRACE_o(MP_FUNC, "end");
- }
-Index: src/modules/perl/modperl_tipool.h
-===================================================================
---- src/modules/perl/modperl_tipool.h  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_tipool.h  (.../trunk)     (revision 630610)
-@@ -63,26 +63,26 @@
- #define modperl_tipool_wait(tipool) \
-     while (tipool->size == tipool->in_use) { \
-         MP_TRACE_i(MP_FUNC, \
--                   "waiting for available tipool item in thread 0x%lx\n", \
-+                   "waiting for available tipool item in thread 0x%lx", \
-                    MP_TIDF); \
--        MP_TRACE_i(MP_FUNC, "(%d items in use, %d alive)\n", \
-+        MP_TRACE_i(MP_FUNC, "(%d items in use, %d alive)", \
-                    tipool->in_use, tipool->size); \
-         COND_WAIT(&tipool->available, &tipool->tiplock); \
-     }
- #define modperl_tipool_broadcast(tipool) \
--    MP_TRACE_i(MP_FUNC, "broadcast available tipool item\n"); \
-+    MP_TRACE_i(MP_FUNC, "broadcast available tipool item"); \
-     COND_SIGNAL(&tipool->available)
- #define modperl_tipool_lock(tipool) \
--    MP_TRACE_i(MP_FUNC, "about to lock tipool in thread 0x%lx\n", MP_TIDF); \
-+    MP_TRACE_i(MP_FUNC, "about to lock tipool in thread 0x%lx", MP_TIDF); \
-     MUTEX_LOCK(&tipool->tiplock); \
--    MP_TRACE_i(MP_FUNC, "acquired tipool lock\n")
-+    MP_TRACE_i(MP_FUNC, "acquired tipool lock")
- #define modperl_tipool_unlock(tipool) \
--    MP_TRACE_i(MP_FUNC, "about to unlock tipool in thread 0x%lx\n", MP_TIDF); \
-+    MP_TRACE_i(MP_FUNC, "about to unlock tipool in thread 0x%lx", MP_TIDF); \
-     MUTEX_UNLOCK(&tipool->tiplock); \
--    MP_TRACE_i(MP_FUNC, "released tipool lock\n")
-+    MP_TRACE_i(MP_FUNC, "released tipool lock")
- #endif /* USE_ITHREADS */
-Index: src/modules/perl/modperl_io.h
-===================================================================
---- src/modules/perl/modperl_io.h      (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_io.h      (.../trunk)     (revision 630610)
-@@ -24,7 +24,7 @@
-  * from living in the gv to the GvIOp(gv), so we have to deal
-  * with both to support 5.6.x
-  */
--#if ((PERL_REVISION == 5) && (PERL_VERSION >= 7))
-+#if MP_PERL_VERSION_AT_LEAST(5, 7, 0)
- #   define TIEHANDLE_SV(handle) (SV*)GvIOp((SV*)handle)
- #else
- #   define TIEHANDLE_SV(handle) (SV*)handle
-@@ -62,15 +62,15 @@
- #if defined(MP_IO_TIE_SFIO)
-     /* XXX */
- #elif defined(MP_IO_TIE_PERLIO)
--#define modperl_io_override_stdin  modperl_io_perlio_override_stdin  
--#define modperl_io_override_stdout modperl_io_perlio_override_stdout  
--#define modperl_io_restore_stdin   modperl_io_perlio_restore_stdin  
--#define modperl_io_restore_stdout  modperl_io_perlio_restore_stdout  
-+#define modperl_io_override_stdin  modperl_io_perlio_override_stdin
-+#define modperl_io_override_stdout modperl_io_perlio_override_stdout
-+#define modperl_io_restore_stdin   modperl_io_perlio_restore_stdin
-+#define modperl_io_restore_stdout  modperl_io_perlio_restore_stdout
- #else
--#define modperl_io_override_stdin  modperl_io_tie_stdin  
--#define modperl_io_override_stdout modperl_io_tie_stdout  
--#define modperl_io_restore_stdin   modperl_io_handle_untie  
--#define modperl_io_restore_stdout  modperl_io_handle_untie  
-+#define modperl_io_override_stdin  modperl_io_tie_stdin
-+#define modperl_io_override_stdout modperl_io_tie_stdout
-+#define modperl_io_restore_stdin   modperl_io_handle_untie
-+#define modperl_io_restore_stdout  modperl_io_handle_untie
- #endif
-Index: src/modules/perl/modperl_perl_global.c
-===================================================================
---- src/modules/perl/modperl_perl_global.c     (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_perl_global.c     (.../trunk)     (revision 630610)
-@@ -194,7 +194,7 @@
-     av_store(mav, AvFILLp(mav)+1, sv);
-     /* print scalar @{ $PL_modglobal{$key}{$package} } */
--    MP_TRACE_g(MP_FUNC, "%s::%s av now has %d entries\n",
-+    MP_TRACE_g(MP_FUNC, "%s::%s av now has %d entries",
-                package, (char*)gkey->name, 1+av_len(mav));
-     return 1;
-@@ -279,7 +279,7 @@
-     HvRITER(ohv) = hv_riter;
-     HvEITER(ohv) = hv_eiter;
--    hv_magic(hv, Nullgv, 'E');    
-+    hv_magic(hv, Nullgv, 'E');
-     TAINT_NOT;
-@@ -299,7 +299,7 @@
-      * at this point: modperl_env.c:modperl_env_const_vars[],
-      * PerlPassEnv and top-level PerlSetEnv
-      * XXX: still; could have have something faster than newHVhv()
--     * especially if we add another GVHV to the globals table that 
-+     * especially if we add another GVHV to the globals table that
-      * might have more entries
-      */
-Index: src/modules/perl/modperl_debug.c
-===================================================================
---- src/modules/perl/modperl_debug.c   (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_debug.c   (.../trunk)     (revision 630610)
-@@ -59,7 +59,7 @@
-                 len = tmp_len;
-             }
-         }
--    }    
-+    }
-     /* dump the table with keys aligned */
-     fmt = Perl_form(aTHX_ "%%-%ds => %%s", len);
-@@ -68,7 +68,7 @@
-             continue;
-         }
-         modperl_trace(MP_FUNC, fmt, elts[i].key, elts[i].val);
--    }    
-+    }
-     modperl_trace(MP_FUNC, "");
- }
- #endif
-@@ -93,8 +93,7 @@
-         MP_TRACE_g(MP_FUNC, "| %s => 0x%lx", key, val);
-     }
--    MP_TRACE_g(MP_FUNC, "|-------- PL_modglobal --------\n");
-+    MP_TRACE_g(MP_FUNC, "|-------- PL_modglobal --------");
- }
- #endif
--
-Index: src/modules/perl/modperl_common_log.c
-===================================================================
---- src/modules/perl/modperl_common_log.c      (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_common_log.c      (.../trunk)     (revision 630610)
-@@ -30,7 +30,7 @@
- unsigned long modperl_debug_level(void)
- {
--    return debug_level;  
-+    return debug_level;
- }
- void modperl_trace_logfile_set(apr_file_t *logfile_new)
-Index: src/modules/perl/modperl_error.c
-===================================================================
---- src/modules/perl/modperl_error.c   (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_error.c   (.../trunk)     (revision 630610)
-@@ -62,7 +62,7 @@
-  *   line - set to the callers line number
-  *   func - set to the function name
-  */
--void modperl_croak(pTHX_ apr_status_t rc, const char* func) 
-+void modperl_croak(pTHX_ apr_status_t rc, const char* func)
- {
-     HV *stash;
-     HV *data;
-@@ -78,7 +78,7 @@
-     }
-     if (SvTRUE(ERRSV)) {
--        Perl_croak(aTHX_ "%s", SvPV_nolen(ERRSV));   
-+        Perl_croak(aTHX_ "%s", SvPV_nolen(ERRSV));
-     }
-     stash = gv_stashpvn("APR::Error", 10, FALSE);
-@@ -91,5 +91,5 @@
-     sv_setiv(*hv_fetch(data, "line", 4, 1), CopLINE(PL_curcop));
-     sv_setpv(*hv_fetch(data, "func", 4, 1), func);
--    Perl_croak(aTHX_ Nullch);   
-+    Perl_croak(aTHX_ Nullch);
- }
-Index: src/modules/perl/modperl_perl_includes.h
-===================================================================
---- src/modules/perl/modperl_perl_includes.h   (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_perl_includes.h   (.../trunk)     (revision 630610)
-@@ -53,7 +53,6 @@
- #   define uid_t perl_uid_t
- #   define gid_t perl_gid_t
- #   ifdef exit
--#      define perl_exit exit
- #      undef exit
- #   endif
- #endif
-@@ -68,27 +67,13 @@
- #if defined(WIN32) && defined(USE_LARGE_FILES)
- #   ifdef malloc
--#      define perl_malloc malloc
- #      undef malloc
- #   endif
- #   ifdef free
--#      define perl_free free
- #      undef free
- #   endif
- #endif
--#if (PERL_REVISION == 5) && (PERL_VERSION == 6)
--#   define MP_PERL_5_6_x
--#endif
--
--#if defined(MP_PERL_5_6_x) && (PERL_SUBVERSION == 0)
--#   define MP_PERL_5_6_0
--#endif
--
--#if defined(MP_PERL_5_6_x) && (PERL_SUBVERSION == 1)
--#   define MP_PERL_5_6_1
--#endif
--
- #include "modperl_perl_unembed.h"
- /* avoiding -Wall warning */
-Index: src/modules/perl/modperl_error.h
-===================================================================
---- src/modules/perl/modperl_error.h   (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_error.h   (.../trunk)     (revision 630610)
-@@ -25,7 +25,7 @@
- #define MODPERL_FILTER_ERROR   APR_OS_START_USERERR + 1
- /**
-- * return the string representation of the error code 
-+ * return the string representation of the error code
-  * @param rc   error code
-  * @return     the error string
-  *
-@@ -34,7 +34,7 @@
-  * called again (which could happen indirectly). If unsure, copy.
-  */
- char *modperl_error_strerror(pTHX_ apr_status_t rc);
--        
-+
- void modperl_croak(pTHX_ apr_status_t rc, const char* func);
- #define MP_RUN_CROAK(rc_run, func) STMT_START                \
-Index: src/modules/perl/modperl_perl_pp.h
-===================================================================
---- src/modules/perl/modperl_perl_pp.h (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_perl_pp.h (.../trunk)     (revision 630610)
-@@ -17,7 +17,10 @@
- #ifndef MODPERL_PERL_PP_H
- #define MODPERL_PERL_PP_H
--#if defined(USE_ITHREADS) && defined(MP_PERL_5_6_x)
-+#define MP_PERL_BRANCH(r, v)                                             \
-+    (PERL_REVISION == r && PERL_VERSION == v)
-+
-+#if defined(USE_ITHREADS) && MP_PERL_BRANCH(5, 6)
- #   define MP_REFGEN_FIXUP
- #endif
-Index: src/modules/perl/modperl_perl_unembed.h
-===================================================================
---- src/modules/perl/modperl_perl_unembed.h    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_perl_unembed.h    (.../trunk)     (revision 630610)
-@@ -43,4 +43,3 @@
- #undef list
- #endif /* MODPERL_PERL_UNEMBED_H */
--
-Index: src/modules/perl/mod_perl.c
-===================================================================
---- src/modules/perl/mod_perl.c        (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/mod_perl.c        (.../trunk)     (revision 630610)
-@@ -61,7 +61,7 @@
-     handles = modperl_xs_dl_handles_get(aTHX);
--    MP_TRACE_i(MP_FUNC, "destroying interpreter=0x%lx\n",
-+    MP_TRACE_i(MP_FUNC, "destroying interpreter=0x%lx",
-                (unsigned long)perl);
-     modperl_perl_destruct(perl);
-@@ -165,8 +165,7 @@
-     dTHXa(perl);
- /* 5.7.3+ has a built-in special ${^TAINT}, backport it to 5.6.0+ */
--#if PERL_REVISION == 5 && \
--    (PERL_VERSION == 6 || (PERL_VERSION == 7 && PERL_SUBVERSION < 3))
-+#if MP_PERL_VERSION_AT_MOST(5, 7, 2)
-     {
-         GV *gv = gv_fetchpv("\024AINT", GV_ADDMULTI, SVt_IV);
-         sv_setiv(GvSV(gv), PL_tainting);
-@@ -216,13 +215,13 @@
-     {
-         server_rec *base_server = modperl_global_get_server_rec();
-         const char *desc = modperl_server_desc(s, p);
--        if (base_server == s) {        
-+        if (base_server == s) {
-             MP_TRACE_i(MP_FUNC,
--                       "starting the parent perl for the base server\n", desc);
-+                       "starting the parent perl for the base server", desc);
-         }
-         else {
-             MP_TRACE_i(MP_FUNC,
--                       "starting the parent perl for vhost %s\n", desc);
-+                       "starting the parent perl for vhost %s", desc);
-         }
-     }
- #endif
-@@ -266,7 +265,7 @@
-     PL_endav = Nullav;
- /* This was fixed in 5.9.0/5.8.1 (17775), but won't compile after 19122 */
--#if PERL_REVISION == 5 && PERL_VERSION == 8 && PERL_SUBVERSION == 0 && \
-+#if MP_PERL_VERSION(5, 8, 0) && \
-     defined(USE_REENTRANT_API) && defined(HAS_CRYPT_R) && defined(__GLIBC__)
-     /* workaround perl5.8.0/glibc bug */
-     PL_reentrant_buffer->_crypt_struct.current_saltbits = 0;
-@@ -293,7 +292,7 @@
-     set_taint_var(perl);
--    MP_TRACE_i(MP_FUNC, "constructed interpreter=0x%lx\n",
-+    MP_TRACE_i(MP_FUNC, "constructed interpreter=0x%lx",
-                (unsigned long)perl);
- #ifdef MP_USE_GTOP
-@@ -352,7 +351,7 @@
-     const char *vhost = modperl_server_desc(s, p);
-     if (!scfg) {
--        MP_TRACE_i(MP_FUNC, "server %s has no mod_perl config\n", vhost);
-+        MP_TRACE_i(MP_FUNC, "server %s has no mod_perl config", vhost);
-         return OK;
-     }
-@@ -360,11 +359,11 @@
-         base_server = modperl_global_get_server_rec();
-     }
--    MP_TRACE_i(MP_FUNC, "Init vhost %s: s=0x%lx, base_s=0x%lx\n",
-+    MP_TRACE_i(MP_FUNC, "Init vhost %s: s=0x%lx, base_s=0x%lx",
-                vhost, s, base_server);
-     if (base_server == s) {
--        MP_TRACE_i(MP_FUNC, "base server is not vhost, skipping %s\n",
-+        MP_TRACE_i(MP_FUNC, "base server is not vhost, skipping %s",
-                    vhost);
-         return OK;
-     }
-@@ -380,14 +379,14 @@
- #ifdef USE_ITHREADS
-     if (scfg->mip) {
--        MP_TRACE_i(MP_FUNC, "server %s already initialized\n", vhost);
-+        MP_TRACE_i(MP_FUNC, "server %s already initialized", vhost);
-         return OK;
-     }
-     /* the base server could have mod_perl callbacks disabled, but it
-      * still needs perl to drive the vhosts */
-     if (!MpSrvENABLE(scfg) && s->is_virtual) {
--        MP_TRACE_i(MP_FUNC, "mod_perl disabled for server %s\n", vhost);
-+        MP_TRACE_i(MP_FUNC, "mod_perl disabled for server %s", vhost);
-         scfg->mip = NULL;
-         return OK;
-     }
-@@ -402,7 +401,7 @@
-     if (MpSrvPARENT(scfg)) {
-         perl = modperl_startup(s, p);
-         MP_TRACE_i(MP_FUNC,
--                   "created parent interpreter for VirtualHost %s\n",
-+                   "created parent interpreter for VirtualHost %s",
-                    modperl_server_desc(s, p));
-     }
-     else {
-@@ -410,7 +409,7 @@
-         /* virtual host w/ +Clone gets its own mip */
-         if (MpSrvCLONE(scfg)) {
-             modperl_interp_init(s, p, perl);
--        }   
-+        }
- #endif
-         if (!modperl_config_apply_PerlRequire(s, scfg, perl, p)) {
-@@ -428,7 +427,7 @@
-          * need to point to the base mip here if this vhost
-          * doesn't have its own
-          */
--        MP_TRACE_i(MP_FUNC, "%s mip inherited from %s\n",
-+        MP_TRACE_i(MP_FUNC, "%s mip inherited from %s",
-                    vhost, modperl_server_desc(base_server, p));
-         scfg->mip = base_scfg->mip;
-     }
-@@ -477,7 +476,7 @@
-     for (; s; s=s->next) {
-         MP_dSCFG(s);
-         if (!modperl_config_apply_PerlPostConfigRequire(s, scfg, p)) {
--            return FALSE;   
-+            return FALSE;
-         }
-     }
-     return TRUE;
-@@ -492,7 +491,7 @@
- #endif /* MP_TRACE */
-     if (!modperl_threaded_mpm()) {
--        MP_TRACE_i(MP_FUNC, "no clones created for non-threaded mpm\n");
-+        MP_TRACE_i(MP_FUNC, "no clones created for non-threaded mpm");
-         return;
-     }
-@@ -501,7 +500,7 @@
- #ifdef MP_TRACE
-         char *name = modperl_server_desc(s, p);
--        MP_TRACE_i(MP_FUNC, "PerlInterpScope set to %s for %s\n",
-+        MP_TRACE_i(MP_FUNC, "PerlInterpScope set to %s for %s",
-                    modperl_interp_scope_desc(scfg->interp_scope), name);
- #else
-         char *name = NULL;
-@@ -511,18 +510,18 @@
- #ifdef MP_TRACE
-             if (scfg->mip == base_scfg->mip) {
-                 MP_TRACE_i(MP_FUNC,
--                           "%s interp pool inherited from %s\n",
-+                           "%s interp pool inherited from %s",
-                            name, base_name);
-             }
-             else {
-                 MP_TRACE_i(MP_FUNC,
--                           "%s interp pool already initialized\n",
-+                           "%s interp pool already initialized",
-                            name);
-             }
- #endif /* MP_TRACE */
-         }
-         else {
--            MP_TRACE_i(MP_FUNC, "initializing interp pool for %s\n",
-+            MP_TRACE_i(MP_FUNC, "initializing interp pool for %s",
-                        name);
-             modperl_tipool_init(scfg->mip->tipool);
-         }
-@@ -534,7 +533,7 @@
- {
-     ap_mpm_query(AP_MPMQ_IS_THREADED, &MP_threaded_mpm);
--    MP_TRACE_g(MP_FUNC, "mod_perl globals are configured\n");
-+    MP_TRACE_g(MP_FUNC, "mod_perl globals are configured");
-     modperl_global_init_pconf(pconf, pconf);
-     modperl_global_init_server_rec(pconf, s);
-@@ -554,7 +553,7 @@
-     int argc = 0;
-     char **argv = NULL, **env = NULL;
--    MP_TRACE_i(MP_FUNC, "mod_perl sys init\n");
-+    MP_TRACE_i(MP_FUNC, "mod_perl sys init");
-     /* not every OS uses those vars in PERL_SYS_INIT3 macro */
-     argc = argc; argv = argv; env = env;
-@@ -584,13 +583,18 @@
- static apr_status_t modperl_sys_term(void *data)
- {
-+    /* PERL_SYS_TERM() needs 'my_perl' as of 5.9.5 */
-+#if MP_PERL_VERSION_AT_LEAST(5, 9, 5) && defined(USE_ITHREADS)
-+    modperl_cleanup_data_t *cdata = (modperl_cleanup_data_t *)data;
-+    PerlInterpreter *my_perl = cdata == NULL ? NULL : (PerlInterpreter *)cdata->data;
-+#endif
-     MP_init_status = 0;
-     MP_threads_started = 0;
-     MP_post_post_config_phase = 0;
-     MP_PERL_FREE_THREAD_KEY_WORKAROUND;
--    MP_TRACE_i(MP_FUNC, "mod_perl sys term\n");
-+    MP_TRACE_i(MP_FUNC, "mod_perl sys term");
-     modperl_env_unload();
-@@ -601,14 +605,14 @@
-     return APR_SUCCESS;
- }
--int modperl_hook_init(apr_pool_t *pconf, apr_pool_t *plog, 
-+int modperl_hook_init(apr_pool_t *pconf, apr_pool_t *plog,
-                       apr_pool_t *ptemp, server_rec *s)
- {
-     if (MP_IS_STARTING || MP_IS_RUNNING) {
-         return OK;
-     }
--    MP_TRACE_i(MP_FUNC, "mod_perl hook init\n");
-+    MP_TRACE_i(MP_FUNC, "mod_perl hook init");
-     MP_init_status = 1; /* now starting */
-@@ -703,12 +707,12 @@
-     }
- #endif
--#if PERL_REVISION == 5 && PERL_VERSION < 9
-+#if MP_PERL_VERSION_AT_LEAST(5, 9, 0)
-+#define MP_PERL_VERSION_STAMP "Perl/%" SVf
-+#else
- #define MP_PERL_VERSION_STAMP "Perl/v%vd"
--#else
--#define MP_PERL_VERSION_STAMP "Perl/%" SVf
- #endif
--    
-+
-     ap_add_version_component(pconf, MP_VERSION_STRING);
-     ap_add_version_component(pconf,
-                              Perl_form(aTHX_ MP_PERL_VERSION_STAMP,
-@@ -754,7 +758,7 @@
- }
- static int modperl_hook_header_parser(request_rec *r)
--{    
-+{
-     /* if 'PerlOptions +GlobalRequest' is inside a container */
-     modperl_global_request_cfg_set(r);
-@@ -831,6 +835,7 @@
- #ifdef USE_ITHREADS
-     APR_REGISTER_OPTIONAL_FN(modperl_interp_unselect);
-+    APR_REGISTER_OPTIONAL_FN(modperl_thx_interp_get);
- #endif
-     /* for <IfDefine MODPERL2> and Apache2->define("MODPERL2") */
-@@ -896,7 +901,7 @@
-     modperl_register_handler_hooks();
- }
--static const command_rec modperl_cmds[] = {  
-+static const command_rec modperl_cmds[] = {
-     MP_CMD_SRV_ITERATE("PerlSwitches", switches, "Perl Switches"),
-     MP_CMD_DIR_ITERATE("PerlModule", modules, "PerlModule"),
-     MP_CMD_DIR_ITERATE("PerlRequire", requires, "PerlRequire"),
-@@ -952,8 +957,8 @@
-                     "Turn on -w switch"),
- #endif
-     MP_CMD_ENTRIES,
--    { NULL }, 
--}; 
-+    { NULL },
-+};
- void modperl_response_init(request_rec *r)
- {
-@@ -1011,6 +1016,7 @@
- int modperl_response_handler(request_rec *r)
- {
-     MP_dDCFG;
-+    MP_dRCFG;
-     apr_status_t retval;
- #ifdef USE_ITHREADS
-@@ -1025,6 +1031,9 @@
- #ifdef USE_ITHREADS
-     interp = modperl_interp_select(r, r->connection, r->server);
-     aTHX = interp->perl;
-+    if (MpInterpPUTBACK(interp)) {
-+        rcfg->interp = interp;
-+    }
- #endif
-     /* default is -SetupEnv, add if PerlOption +SetupEnv */
-@@ -1037,6 +1046,7 @@
- #ifdef USE_ITHREADS
-     if (MpInterpPUTBACK(interp)) {
-         /* PerlInterpScope handler */
-+        rcfg->interp = NULL;
-         modperl_interp_unselect(interp);
-     }
- #endif
-@@ -1133,7 +1143,7 @@
- }
- module AP_MODULE_DECLARE_DATA perl_module = {
--    STANDARD20_MODULE_STUFF, 
-+    STANDARD20_MODULE_STUFF,
-     modperl_config_dir_create, /* dir config creater */
-     modperl_config_dir_merge,  /* dir merger --- default is to override */
-     modperl_config_srv_create, /* server config */
-Index: src/modules/perl/mod_perl.h
-===================================================================
---- src/modules/perl/mod_perl.h        (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/mod_perl.h        (.../trunk)     (revision 630610)
-@@ -55,7 +55,7 @@
- /* apr largefile support is enabled, perl support is disabled */
- #if (!defined(USE_LARGE_FILES)) && APR_HAS_LARGE_FILES
--#define MP_LARGE_FILES_APR_ONLY   
-+#define MP_LARGE_FILES_APR_ONLY
- #endif
- /* conflict due to not have either both perl and apr
-@@ -103,7 +103,7 @@
-         Perl_croak(aTHX_ "Can't run '%s' in the threaded "      \
-                    "environment after server startup", what);   \
-     }
--  
-+
- #define MP_CROAK_IF_THREADED_MPM(what)                          \
-     if (modperl_threaded_mpm()) {                               \
-         Perl_croak(aTHX_ "Can't run '%s' in a threaded mpm",    \
-@@ -122,7 +122,7 @@
- void modperl_init_globals(server_rec *s, apr_pool_t *pconf);
- int modperl_run(void);
- int modperl_is_running(void);
--int modperl_hook_init(apr_pool_t *pconf, apr_pool_t *plog, 
-+int modperl_hook_init(apr_pool_t *pconf, apr_pool_t *plog,
-                       apr_pool_t *ptemp, server_rec *s);
- int modperl_hook_pre_config(apr_pool_t *p, apr_pool_t *plog,
-                             apr_pool_t *ptemp);
-@@ -138,11 +138,6 @@
- int modperl_response_handler(request_rec *r);
- int modperl_response_handler_cgi(request_rec *r);
--/* betting on Perl*Handlers not using CvXSUBANY
-- * mod_perl reuses this field for handler attributes
-- */
--#define MP_CODE_ATTRS(cv) (CvXSUBANY((CV*)cv).any_i32)
--
- #define MgTypeExt(mg) (mg->mg_type == '~')
- typedef void MP_FUNC_NONSTD_T(modperl_var_modify_t) (apr_table_t *,
-@@ -153,7 +148,10 @@
- /* we need to hook a few internal things before APR_HOOK_REALLY_FIRST */
- #define MODPERL_HOOK_REALLY_REALLY_FIRST (-20)
-+#ifdef USE_ITHREADS
- APR_DECLARE_OPTIONAL_FN(apr_status_t,modperl_interp_unselect,(void *));
-+APR_DECLARE_OPTIONAL_FN(modperl_interp_t *,modperl_thx_interp_get,(PerlInterpreter *));
-+#endif
- /*
-  * perl context overriding and restoration is required when
-Index: src/modules/perl/modperl_svptr_table.c
-===================================================================
---- src/modules/perl/modperl_svptr_table.c     (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_svptr_table.c     (.../trunk)     (revision 630610)
-@@ -29,7 +29,7 @@
- #ifdef USE_ITHREADS
--#ifdef MP_PERL_5_6_x
-+#if MP_PERL_BRANCH(5, 6)
- #   define my_sv_dup(s, p) sv_dup(s)
- typedef struct {
-@@ -55,8 +55,8 @@
-     CLONE_PARAMS parms;
-     Newz(0, tbl, 1, PTR_TBL_t);
--    tbl->tbl_max      = source->tbl_max;
--    tbl->tbl_items    = source->tbl_items;
-+    tbl->tbl_max        = source->tbl_max;
-+    tbl->tbl_items        = source->tbl_items;
-     Newz(0, tbl->tbl_ary, tbl->tbl_max + 1, PTR_TBL_ENT_t *);
-     dst_ary = tbl->tbl_ary;
-@@ -67,13 +67,13 @@
-     parms.stashes = newAV();
-     for (i=0; i < source->tbl_max; i++, dst_ary++, src_ary++) {
--      PTR_TBL_ENT_t *src_ent, *dst_ent=NULL;
-+        PTR_TBL_ENT_t *src_ent, *dst_ent=NULL;
--      if (!*src_ary) {
--          continue;
-+        if (!*src_ary) {
-+            continue;
-         }
--      for (src_ent = *src_ary;
-+        for (src_ent = *src_ary;
-              src_ent;
-              src_ent = src_ent->next)
-         {
-@@ -110,13 +110,13 @@
-     PTR_TBL_ENT_t **ary = tbl->tbl_ary;
-     for (i=0; i < tbl->tbl_max; i++, ary++) {
--      PTR_TBL_ENT_t *ent;
-+        PTR_TBL_ENT_t *ent;
--      if (!*ary) {
--          continue;
-+        if (!*ary) {
-+            continue;
-         }
--      for (ent = *ary; ent; ent = ent->next) {
-+        for (ent = *ary; ent; ent = ent->next) {
-             if (!ent->newval) {
-                 continue;
-             }
-@@ -143,13 +143,13 @@
-     entry = *oentry;
-     for (; entry; oentry = &entry->next, entry = *oentry) {
--      if (entry->oldval == key) {
-+        if (entry->oldval == key) {
-             *oentry = entry->next;
-             SvREFCNT_dec((SV*)entry->newval);
-             Safefree(entry);
-             tbl->tbl_items--;
--          return;
--      }
-+            return;
-+        }
-     }
- }
-@@ -168,8 +168,8 @@
- {
-     PTR_TBL_t *tbl;
-     Newz(0, tbl, 1, PTR_TBL_t);
--    tbl->tbl_max      = 511;
--    tbl->tbl_items    = 0;
-+    tbl->tbl_max        = 511;
-+    tbl->tbl_items        = 0;
-     Newz(0, tbl->tbl_ary, tbl->tbl_max + 1, PTR_TBL_ENT_t*);
-     return tbl;
- }
-@@ -184,8 +184,8 @@
-     assert(tbl);
-     tblent = tbl->tbl_ary[hash & tbl->tbl_max];
-     for (; tblent; tblent = tblent->next) {
--      if (tblent->oldval == sv)
--          return tblent->newval;
-+        if (tblent->oldval == sv)
-+            return tblent->newval;
-     }
-     return (void*)NULL;
- }
-@@ -205,10 +205,10 @@
-     assert(tbl);
-     otblent = &tbl->tbl_ary[hash & tbl->tbl_max];
-     for (tblent = *otblent; tblent; i=0, tblent = tblent->next) {
--      if (tblent->oldval == oldv) {
--          tblent->newval = newv;
--          return;
--      }
-+        if (tblent->oldval == oldv) {
-+            tblent->newval = newv;
-+            return;
-+        }
-     }
-     Newz(0, tblent, 1, PTR_TBL_ENT_t);
-     tblent->oldval = oldv;
-@@ -217,7 +217,7 @@
-     *otblent = tblent;
-     tbl->tbl_items++;
-     if (i && tbl->tbl_items > tbl->tbl_max)
--      modperl_svptr_table_split(aTHX_ tbl);
-+        modperl_svptr_table_split(aTHX_ tbl);
- }
- /* double the hash bucket size of an existing ptr table */
-@@ -235,20 +235,20 @@
-     tbl->tbl_max = --newsize;
-     tbl->tbl_ary = ary;
-     for (i=0; i < oldsize; i++, ary++) {
--      PTR_TBL_ENT_t **curentp, **entp, *ent;
--      if (!*ary)
--          continue;
--      curentp = ary + oldsize;
--      for (entp = ary, ent = *ary; ent; ent = *entp) {
--          if ((newsize & PTR2UV(ent->oldval)) != i) {
--              *entp = ent->next;
--              ent->next = *curentp;
--              *curentp = ent;
--              continue;
--          }
--          else
--              entp = &ent->next;
--      }
-+        PTR_TBL_ENT_t **curentp, **entp, *ent;
-+        if (!*ary)
-+            continue;
-+        curentp = ary + oldsize;
-+        for (entp = ary, ent = *ary; ent; ent = *entp) {
-+            if ((newsize & PTR2UV(ent->oldval)) != i) {
-+                *entp = ent->next;
-+                ent->next = *curentp;
-+                *curentp = ent;
-+                continue;
-+            }
-+            else
-+                entp = &ent->next;
-+        }
-     }
- }
-Index: src/modules/perl/modperl_const.c
-===================================================================
---- src/modules/perl/modperl_const.c   (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_const.c   (.../trunk)     (revision 630610)
-@@ -117,7 +117,7 @@
-     }
-     classname = *(stashname + 1) == 'P'
--        ? "APR::Const" 
-+        ? "APR::Const"
-         : (*stashname == 'A' ? "Apache2::Const" : "ModPerl");
-     arg = SvPV(ST(1),n_a);
-Index: src/modules/perl/modperl_mgv.c
-===================================================================
---- src/modules/perl/modperl_mgv.c     (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_mgv.c     (.../trunk)     (revision 630610)
-@@ -64,7 +64,7 @@
- #define modperl_mgv_hash(mgv)                   \
-     PERL_HASH(mgv->hash, mgv->name, mgv->len)
-- /* MP_TRACE_h(MP_FUNC, "%s...hash=%ld\n", mgv->name, mgv->hash) */
-+ /* MP_TRACE_h(MP_FUNC, "%s...hash=%ld", mgv->name, mgv->hash) */
- modperl_mgv_t *modperl_mgv_compile(pTHX_ apr_pool_t *p,
-                                    register const char *name)
-@@ -156,7 +156,7 @@
-         return gv;
-     }
--    /* 
-+    /*
-      * this VirtualHost has its own parent interpreter
-      * must require the module again with this server's THX
-      */
-@@ -247,31 +247,31 @@
-                 if (SvROK(obj) && sv_isobject(obj)) {
-                     stash = SvSTASH(SvRV(obj));
-                     MpHandlerOBJECT_On(handler);
--                    MP_TRACE_h(MP_FUNC, "handler object %s isa %s\n",
-+                    MP_TRACE_h(MP_FUNC, "handler object %s isa %s",
-                                package, HvNAME(stash));
-                 }
-                 else {
--                    MP_TRACE_h(MP_FUNC, "%s is not an object, pv=%s\n",
-+                    MP_TRACE_h(MP_FUNC, "%s is not an object, pv=%s",
-                                package, SvPV_nolen(obj));
-                     return 0;
-                 }
-             }
-             else {
--                MP_TRACE_h(MP_FUNC, "failed to thaw %s\n", package);
-+                MP_TRACE_h(MP_FUNC, "failed to thaw %s", package);
-                 return 0;
-             }
-         }
-         if (!stash) {
-             if ((stash = gv_stashpvn(package, package_len, FALSE))) {
--                MP_TRACE_h(MP_FUNC, "handler method %s isa %s\n",
-+                MP_TRACE_h(MP_FUNC, "handler method %s isa %s",
-                            name, HvNAME(stash));
-             }
-         }
-     }
-     else {
-         if ((cv = get_cv(name, FALSE))) {
--            handler->attrs = (U32)MP_CODE_ATTRS(cv);
-+            handler->attrs = *modperl_code_attrs(aTHX_ cv);
-             handler->mgv_cv =
-                 modperl_mgv_compile(aTHX_ p, HvNAME(GvSTASH(CvGV(cv))));
-             modperl_mgv_append(aTHX_ p, handler->mgv_cv, GvNAME(CvGV(cv)));
-@@ -284,11 +284,11 @@
-     if (!stash && MpHandlerAUTOLOAD(handler)) {
-         if (!modperl_perl_module_loaded(aTHX_ name)) { /* not in %INC */
-             MP_TRACE_h(MP_FUNC,
--                       "package %s not in %INC, attempting to load it\n",
-+                       "package %s not in %INC, attempting to load it",
-                        name);
-             if (modperl_require_module(aTHX_ name, logfailure)) {
--                MP_TRACE_h(MP_FUNC, "loaded %s package\n", name);
-+                MP_TRACE_h(MP_FUNC, "loaded %s package", name);
-             }
-             else {
-                 if (logfailure) {
-@@ -297,13 +297,13 @@
-                 }
-                 else {
-                     /* the caller handles the error checking */
--                    MP_TRACE_h(MP_FUNC, "failed to load %s package\n", name);
-+                    MP_TRACE_h(MP_FUNC, "failed to load %s package", name);
-                     return 0;
-                 }
-             }
-         }
-         else {
--            MP_TRACE_h(MP_FUNC, "package %s seems to be loaded\n", name);
-+            MP_TRACE_h(MP_FUNC, "package %s seems to be loaded", name);
-         }
-     }
-@@ -312,7 +312,7 @@
-      * module was loaded, preventing from loading the module
-      */
-     if (!(stash || (stash = gv_stashpv(name, FALSE)))) {
--        MP_TRACE_h(MP_FUNC, "%s's stash is not found\n", name);
-+        MP_TRACE_h(MP_FUNC, "%s's stash is not found", name);
-         return 0;
-     }
-@@ -324,8 +324,8 @@
-         if (!stash) {
-             return 0;
-         }
--        
--        
-+
-+
-         if (MpHandlerMETHOD(handler) && !handler->mgv_obj) {
-             char *name = HvNAME(stash);
-             if (!name) {
-@@ -334,13 +334,13 @@
-             modperl_mgv_new_name(handler->mgv_obj, p, name);
-         }
--        handler->attrs = (U32)MP_CODE_ATTRS(cv);
-+        handler->attrs = *modperl_code_attrs(aTHX_ cv);
-         /* note: this is the real function after @ISA lookup */
-         handler->mgv_cv = modperl_mgv_compile(aTHX_ p, HvNAME(GvSTASH(gv)));
-         modperl_mgv_append(aTHX_ p, handler->mgv_cv, handler_name);
-         MpHandlerPARSED_On(handler);
--        MP_TRACE_h(MP_FUNC, "[%s] found `%s' in class `%s' as a %s\n",
-+        MP_TRACE_h(MP_FUNC, "[%s] found `%s' in class `%s' as a %s",
-                    modperl_pid_tid(p),
-                    handler_name, HvNAME(stash),
-                    MpHandlerMETHOD(handler) ? "method" : "function");
-@@ -359,7 +359,7 @@
- #ifdef MP_TRACE
-     /* complain only if the class was actually loaded/created */
-     if (stash) {
--        MP_TRACE_h(MP_FUNC, "`%s' not found in class `%s'\n",
-+        MP_TRACE_h(MP_FUNC, "`%s' not found in class `%s'",
-                    handler_name, name);
-     }
- #endif
-@@ -418,7 +418,7 @@
-         modperl_mgv_as_string(aTHX_ symbol, p, 1);
-     if (modperl_require_module(aTHX_ package, TRUE)) {
--        MP_TRACE_h(MP_FUNC, "reloaded %s for server %s\n",
-+        MP_TRACE_h(MP_FUNC, "reloaded %s for server %s",
-                    package, modperl_server_desc(s, p));
-         return TRUE;
-     }
-@@ -452,7 +452,7 @@
- #ifdef USE_ITHREADS
-             if ((MpSrvPARENT(scfg) && MpSrvAUTOLOAD(scfg))
-                 && !modperl_mgv_lookup(aTHX_ handler->mgv_cv)) {
--                /* 
-+                /*
-                  * this VirtualHost has its own parent interpreter
-                  * must require the module again with this server's THX
-                  */
-@@ -460,7 +460,7 @@
-                                            s, p);
-             }
- #endif
--            MP_TRACE_h(MP_FUNC, "%s already resolved in server %s\n",
-+            MP_TRACE_h(MP_FUNC, "%s already resolved in server %s",
-                        modperl_handler_name(handler),
-                        modperl_server_desc(s, p));
-         }
-Index: src/modules/perl/modperl_apr_compat.h
-===================================================================
---- src/modules/perl/modperl_apr_compat.h      (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_apr_compat.h      (.../trunk)     (revision 630610)
-@@ -109,7 +109,7 @@
- #ifndef APR_FOPEN_READ
- #define APR_FOPEN_READ        APR_READ
- #endif
--#ifndef APR_FOPEN_WRITE 
-+#ifndef APR_FOPEN_WRITE
- #define APR_FOPEN_WRITE       APR_WRITE
- #endif
- #ifndef APR_FOPEN_CREATE
-@@ -124,16 +124,16 @@
- #ifndef APR_FOPEN_BINARY
- #define APR_FOPEN_BINARY      APR_BINARY
- #endif
--#ifndef APR_FOPEN_EXCL 
-+#ifndef APR_FOPEN_EXCL
- #define APR_FOPEN_EXCL        APR_EXCL
- #endif
--#ifndef APR_FOPEN_BUFFERED 
-+#ifndef APR_FOPEN_BUFFERED
- #define APR_FOPEN_BUFFERED    APR_BUFFERED
- #endif
- #ifndef APR_FOPEN_DELONCLOSE
- #define APR_FOPEN_DELONCLOSE  APR_DELONCLOSE
- #endif
--#ifndef APR_FOPEN_XTHREAD 
-+#ifndef APR_FOPEN_XTHREAD
- #define APR_FOPEN_XTHREAD     APR_XTHREAD
- #endif
- #ifndef APR_FOPEN_SHARELOCK
-Index: src/modules/perl/modperl_callback.c
-===================================================================
---- src/modules/perl/modperl_callback.c        (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_callback.c        (.../trunk)     (revision 630610)
-@@ -88,7 +88,7 @@
-                 name = handler->name;
-             }
--            MP_TRACE_h(MP_FUNC, "[%s %s] lookup of %s failed\n",
-+            MP_TRACE_h(MP_FUNC, "[%s %s] lookup of %s failed",
-                        modperl_pid_tid(p),
-                        modperl_server_desc(s, p), name);
-             ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
-@@ -112,7 +112,7 @@
-             if (status_sv == &PL_sv_undef) {
-                 /* ModPerl::Util::exit() and Perl_croak internally
-                  * arrange to return PL_sv_undef with G_EVAL|G_SCALAR */
--                status = OK; 
-+                status = OK;
-             }
-             else {
-                 status = SvIVx(status_sv);
-@@ -163,7 +163,7 @@
-     AV *av_args = Nullav;
-     if (!MpSrvENABLE(scfg)) {
--        MP_TRACE_h(MP_FUNC, "PerlOff for server %s:%u\n",
-+        MP_TRACE_h(MP_FUNC, "PerlOff for server %s:%u",
-                    s->server_hostname, s->port);
-         return DECLINED;
-     }
-@@ -179,7 +179,7 @@
-                                           type, idx, FALSE, &desc);
-     if (!(avp && (av = *avp))) {
--        MP_TRACE_h(MP_FUNC, "no %s handlers configured (%s)\n",
-+        MP_TRACE_h(MP_FUNC, "no %s handlers configured (%s)",
-                    desc, r ? r->uri : "");
-         return DECLINED;
-     }
-@@ -254,14 +254,14 @@
-     modperl_callback_current_callback_set(desc);
--    MP_TRACE_h(MP_FUNC, "[%s] running %d %s handlers\n",
-+    MP_TRACE_h(MP_FUNC, "[%s] running %d %s handlers",
-                modperl_pid_tid(p), av->nelts, desc);
-     handlers = (modperl_handler_t **)av->elts;
-     for (i=0; i<av->nelts; i++) {
-         status = modperl_callback(aTHX_ handlers[i], p, r, s, av_args);
--        MP_TRACE_h(MP_FUNC, "callback '%s' returned %d\n",
-+        MP_TRACE_h(MP_FUNC, "callback '%s' returned %d",
-                    modperl_handler_name(handlers[i]), status);
-         /* follow Apache's lead and let OK terminate the phase for
-@@ -290,7 +290,7 @@
-                 break;
-             }
-             /* the normal case:
--             *   OK and DECLINED continue 
-+             *   OK and DECLINED continue
-              *   errors end the phase
-              */
-             else if ((status != OK) && (status != DECLINED)) {
-@@ -299,7 +299,7 @@
- #ifdef MP_TRACE
-                 if (i+1 != av->nelts) {
-                     MP_TRACE_h(MP_FUNC, "error status %d leaves %d "
--                               "uncalled %s handlers\n",
-+                               "uncalled %s handlers",
-                                status, av->nelts-i-1, desc);
-                 }
- #endif
-@@ -316,7 +316,7 @@
- #ifdef MP_TRACE
-                 if (i+1 != av->nelts) {
-                     MP_TRACE_h(MP_FUNC, "OK ends the %s stack, "
--                               "leaving %d uncalled %s handlers\n",
-+                               "leaving %d uncalled %s handlers",
-                                desc, av->nelts-i-1, desc);
-                 }
- #endif
-@@ -327,7 +327,7 @@
- #ifdef MP_TRACE
-                 if (i+1 != av->nelts) {
-                     MP_TRACE_h(MP_FUNC, "error status %d leaves %d "
--                               "uncalled %s handlers\n",
-+                               "uncalled %s handlers",
-                                status, av->nelts-i-1, desc);
-                 }
- #endif
-@@ -337,7 +337,7 @@
-         else {
-             /* the rare case.
-              * MP_HOOK_VOID handlers completely ignore the return status
--             * Apache should handle whatever mod_perl returns, 
-+             * Apache should handle whatever mod_perl returns,
-              * so there is no need to mess with the status
-              */
-         }
-@@ -371,7 +371,7 @@
-                                          NULL, NULL, NULL, run_mode);
- }
--int modperl_callback_per_srv(int idx, request_rec *r, 
-+int modperl_callback_per_srv(int idx, request_rec *r,
-                              modperl_hook_run_mode_e run_mode)
- {
-     return modperl_callback_run_handlers(idx,
-@@ -380,7 +380,7 @@
-                                          NULL, NULL, NULL, run_mode);
- }
--int modperl_callback_connection(int idx, conn_rec *c, 
-+int modperl_callback_connection(int idx, conn_rec *c,
-                                 modperl_hook_run_mode_e run_mode)
- {
-     return modperl_callback_run_handlers(idx,
-Index: src/modules/perl/modperl_common_debug.c
-===================================================================
---- src/modules/perl/modperl_common_debug.c    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_common_debug.c    (.../trunk)     (revision 630610)
-@@ -17,4 +17,3 @@
- /* This file must not contain any symbols from apache/mod_perl
-  *  (apr and perl are OK) */
- #include "modperl_common_includes.h"
--
-Index: src/modules/perl/modperl_interp.c
-===================================================================
---- src/modules/perl/modperl_interp.c  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_interp.c  (.../trunk)     (revision 630610)
-@@ -55,7 +55,7 @@
-                                      PerlInterpreter *perl)
- {
-     UV clone_flags = CLONEf_KEEP_PTR_TABLE;
--    modperl_interp_t *interp = 
-+    modperl_interp_t *interp =
-         (modperl_interp_t *)malloc(sizeof(*interp));
-     memset(interp, '\0', sizeof(*interp));
-@@ -79,7 +79,7 @@
-         interp->perl = perl_clone(perl, clone_flags);
--#if PERL_REVISION == 5 && PERL_VERSION == 8 && PERL_SUBVERSION == 0 && \
-+#if MP_PERL_VERSION(5, 8, 0) && \
-     defined(USE_REENTRANT_API) && defined(HAS_CRYPT_R) && defined(__GLIBC__)
-         {
-             dTHXa(interp->perl);
-@@ -120,7 +120,7 @@
- #endif
-     }
--    MP_TRACE_i(MP_FUNC, "0x%lx / perl: 0x%lx / parent perl: 0x%lx\n",
-+    MP_TRACE_i(MP_FUNC, "0x%lx / perl: 0x%lx / parent perl: 0x%lx",
-                (unsigned long)interp, (unsigned long)interp->perl,
-                (unsigned long)perl);
-@@ -134,11 +134,11 @@
-     PERL_SET_CONTEXT(interp->perl);
--    MP_TRACE_i(MP_FUNC, "interp == 0x%lx / perl: 0x%lx\n",
-+    MP_TRACE_i(MP_FUNC, "interp == 0x%lx / perl: 0x%lx",
-                (unsigned long)interp, (unsigned long)interp->perl);
-     if (MpInterpIN_USE(interp)) {
--        MP_TRACE_i(MP_FUNC, "*error - still in use!*\n");
-+        MP_TRACE_i(MP_FUNC, "*error - still in use!*");
-     }
-     handles = modperl_xs_dl_handles_get(aTHX);
-@@ -166,16 +166,16 @@
-     head = modperl_tipool_pop(mip->tipool);
-     interp = (modperl_interp_t *)head->data;
--    MP_TRACE_i(MP_FUNC, "head == 0x%lx, parent == 0x%lx\n",
-+    MP_TRACE_i(MP_FUNC, "head == 0x%lx, parent == 0x%lx",
-                (unsigned long)head, (unsigned long)mip->parent);
--    MP_TRACE_i(MP_FUNC, "selected 0x%lx (perl==0x%lx)\n",
-+    MP_TRACE_i(MP_FUNC, "selected 0x%lx (perl==0x%lx)",
-                (unsigned long)interp,
-                (unsigned long)interp->perl);
- #ifdef MP_TRACE
-     interp->tid = MP_TIDF;
--    MP_TRACE_i(MP_FUNC, "thread == 0x%lx\n", interp->tid);
-+    MP_TRACE_i(MP_FUNC, "thread == 0x%lx", interp->tid);
- #endif
-     MpInterpIN_USE_On(interp);
-@@ -196,7 +196,7 @@
-         /* multiple mips might share the same parent
-          * make sure its only destroyed once
-          */
--        MP_TRACE_i(MP_FUNC, "parent == 0x%lx\n",
-+        MP_TRACE_i(MP_FUNC, "parent == 0x%lx",
-                    (unsigned long)mip->parent);
-         modperl_interp_destroy(mip->parent);
-@@ -208,7 +208,7 @@
- static void *interp_pool_grow(modperl_tipool_t *tipool, void *data)
- {
-     modperl_interp_pool_t *mip = (modperl_interp_pool_t *)data;
--    MP_TRACE_i(MP_FUNC, "adding new interpreter to the pool\n");
-+    MP_TRACE_i(MP_FUNC, "adding new interpreter to the pool");
-     return (void *)modperl_interp_new(mip, mip->parent->perl);
- }
-@@ -223,7 +223,7 @@
- {
-     while (listp) {
-         modperl_interp_t *interp = (modperl_interp_t *)listp->data;
--        MP_TRACE_i(MP_FUNC, "listp==0x%lx, interp==0x%lx, requests=%d\n",
-+        MP_TRACE_i(MP_FUNC, "listp==0x%lx, interp==0x%lx, requests=%d",
-                  (unsigned long)listp, (unsigned long)interp,
-                  interp->num_requests);
-         listp = listp->next;
-@@ -244,10 +244,10 @@
-     apr_pool_t *server_pool = modperl_server_pool();
-     pTHX;
-     MP_dSCFG(s);
--    modperl_interp_pool_t *mip = 
-+    modperl_interp_pool_t *mip =
-         (modperl_interp_pool_t *)apr_pcalloc(p, sizeof(*mip));
--    MP_TRACE_i(MP_FUNC, "server=%s\n", modperl_server_desc(s, p));
-+    MP_TRACE_i(MP_FUNC, "server=%s", modperl_server_desc(s, p));
-     if (modperl_threaded_mpm()) {
-         mip->tipool = modperl_tipool_new(p, scfg->interp_pool_cfg,
-@@ -275,7 +275,7 @@
-     if (interp->refcnt != 0) {
-         --interp->refcnt;
--        MP_TRACE_i(MP_FUNC, "interp=0x%lx, refcnt=%d\n",
-+        MP_TRACE_i(MP_FUNC, "interp=0x%lx, refcnt=%d",
-                    (unsigned long)interp, interp->refcnt);
-         return APR_SUCCESS;
-     }
-@@ -291,7 +291,7 @@
-     MpInterpIN_USE_Off(interp);
-     MpInterpPUTBACK_Off(interp);
--    MP_THX_INTERP_SET(interp->perl, NULL);
-+    modperl_thx_interp_set(interp->perl, NULL);
-     modperl_tipool_putback_data(mip->tipool, data, interp->num_requests);
-@@ -343,7 +343,7 @@
-     modperl_interp_t *interp = NULL;
-     if (scfg && (is_startup || !modperl_threaded_mpm())) {
--        MP_TRACE_i(MP_FUNC, "using parent interpreter at %s\n",
-+        MP_TRACE_i(MP_FUNC, "using parent interpreter at %s",
-                    is_startup ? "startup" : "request time (non-threaded MPM)");
-         if (!scfg->mip) {
-@@ -360,11 +360,11 @@
-             interp = modperl_interp_get(s);
-             modperl_interp_pool_set(p, interp, TRUE);
--            MP_TRACE_i(MP_FUNC, "set interp in request time pool 0x%lx\n",
-+            MP_TRACE_i(MP_FUNC, "set interp in request time pool 0x%lx",
-                        (unsigned long)p);
-         }
-         else {
--            MP_TRACE_i(MP_FUNC, "found interp in request time pool 0x%lx\n",
-+            MP_TRACE_i(MP_FUNC, "found interp in request time pool 0x%lx",
-                        (unsigned long)p);
-         }
-     }
-@@ -386,7 +386,7 @@
-     if (!modperl_threaded_mpm()) {
-         MP_TRACE_i(MP_FUNC,
--                   "using parent 0x%lx for non-threaded mpm (%s:%d)\n",
-+                   "using parent 0x%lx for non-threaded mpm (%s:%d)",
-                    (unsigned long)scfg->mip->parent,
-                    s->server_hostname, s->port);
-         /* XXX: if no VirtualHosts w/ PerlOptions +Parent we can skip this */
-@@ -412,11 +412,11 @@
-      * else scope must be per-connection
-      */
--    scope = (dcfg && !modperl_interp_scope_undef(dcfg)) ? 
-+    scope = (dcfg && !modperl_interp_scope_undef(dcfg)) ?
-         dcfg->interp_scope :
-         (r ? scfg->interp_scope : MP_INTERP_SCOPE_CONNECTION);
--    MP_TRACE_i(MP_FUNC, "scope is per-%s\n",
-+    MP_TRACE_i(MP_FUNC, "scope is per-%s",
-                modperl_interp_scope_desc(scope));
-     /*
-@@ -448,7 +448,7 @@
-                            "looking for interp in main request for %s...%s\n",
-                            main_r->uri, interp ? "found" : "not found");
-                 main_r = main_r->main;
--            }                
-+            }
-         }
-         else {
-             p = r->pool;
-@@ -490,7 +490,7 @@
-     else {
-         if (!p) {
-             /* should never happen */
--            MP_TRACE_i(MP_FUNC, "no pool\n");
-+            MP_TRACE_i(MP_FUNC, "no pool");
-             return NULL;
-         }
-@@ -506,7 +506,7 @@
-     /* set context (THX) for this thread */
-     PERL_SET_CONTEXT(interp->perl);
--    MP_THX_INTERP_SET(interp->perl, interp);
-+    modperl_thx_interp_set(interp->perl, interp);
-     return interp;
- }
-@@ -575,6 +575,24 @@
-     }
- }
-+#define MP_THX_INTERP_KEY "modperl2::thx_interp_key"
-+modperl_interp_t *modperl_thx_interp_get(PerlInterpreter *thx)
-+{
-+    modperl_interp_t *interp;
-+    dTHXa(thx);
-+    SV **svp = hv_fetch(PL_modglobal, MP_THX_INTERP_KEY, strlen(MP_THX_INTERP_KEY), 0);
-+    if (!svp) return;
-+    interp = INT2PTR(modperl_interp_t *, SvIV(*svp));
-+    return interp;
-+}
-+
-+void modperl_thx_interp_set(PerlInterpreter *thx, modperl_interp_t *interp)
-+{
-+    dTHXa(thx);
-+    hv_store(PL_modglobal, MP_THX_INTERP_KEY, strlen(MP_THX_INTERP_KEY), newSViv(PTR2IV(interp)), 0);
-+    return;
-+}
-+
- #else
- void modperl_interp_init(server_rec *s, apr_pool_t *p,
-Index: src/modules/perl/modperl_callback.h
-===================================================================
---- src/modules/perl/modperl_callback.h        (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_callback.h        (.../trunk)     (revision 630610)
-@@ -45,7 +45,7 @@
-                                   apr_pool_t *ptemp,
-                                   modperl_hook_run_mode_e run_mode);
--int modperl_callback_per_dir(int idx, request_rec *r, 
-+int modperl_callback_per_dir(int idx, request_rec *r,
-                              modperl_hook_run_mode_e run_mode);
- int modperl_callback_per_srv(int idx, request_rec *r,
-Index: src/modules/perl/modperl_config.c
-===================================================================
---- src/modules/perl/modperl_config.c  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_config.c  (.../trunk)     (revision 630610)
-@@ -22,8 +22,8 @@
-     dcfg->location = dir;
--    MP_TRACE_d(MP_FUNC, "dir %s\n", dir);
--    
-+    MP_TRACE_d(MP_FUNC, "dir %s", dir);
-+
- #ifdef USE_ITHREADS
-     /* defaults to per-server scope */
-     dcfg->interp_scope = MP_INTERP_SCOPE_UNDEF;
-@@ -110,7 +110,7 @@
-         *add  = (modperl_config_dir_t *)addv,
-         *mrg  = modperl_config_dir_new(p);
--    MP_TRACE_d(MP_FUNC, "basev==0x%lx, addv==0x%lx, mrg==0x%lx\n", 
-+    MP_TRACE_d(MP_FUNC, "basev==0x%lx, addv==0x%lx, mrg==0x%lx",
-                (unsigned long)basev, (unsigned long)addv,
-                (unsigned long)mrg);
-@@ -140,20 +140,20 @@
- modperl_config_req_t *modperl_config_req_new(request_rec *r)
- {
--    modperl_config_req_t *rcfg = 
-+    modperl_config_req_t *rcfg =
-         (modperl_config_req_t *)apr_pcalloc(r->pool, sizeof(*rcfg));
--    MP_TRACE_d(MP_FUNC, "0x%lx\n", (unsigned long)rcfg);
-+    MP_TRACE_d(MP_FUNC, "0x%lx", (unsigned long)rcfg);
-     return rcfg;
- }
- modperl_config_con_t *modperl_config_con_new(conn_rec *c)
- {
--    modperl_config_con_t *ccfg = 
-+    modperl_config_con_t *ccfg =
-         (modperl_config_con_t *)apr_pcalloc(c->pool, sizeof(*ccfg));
--    MP_TRACE_d(MP_FUNC, "0x%lx\n", (unsigned long)ccfg);
-+    MP_TRACE_d(MP_FUNC, "0x%lx", (unsigned long)ccfg);
-     return ccfg;
- }
-@@ -182,13 +182,13 @@
- #ifdef MP_USE_GTOP
-     scfg->gtop = modperl_gtop_new(p);
--#endif        
-+#endif
-     /* make sure httpd's argv[0] is the first argument so $0 is
-      * correctly connected to the real thing */
-     modperl_config_srv_argv_push(s->process->argv[0]);
--    MP_TRACE_d(MP_FUNC, "new scfg: 0x%lx\n", (unsigned long)scfg);
-+    MP_TRACE_d(MP_FUNC, "new scfg: 0x%lx", (unsigned long)scfg);
-     return scfg;
- }
-@@ -205,7 +205,7 @@
-     dcfg->SetEnv = apr_table_make(p, 2);
--    MP_TRACE_d(MP_FUNC, "new dcfg: 0x%lx\n", (unsigned long)dcfg);
-+    MP_TRACE_d(MP_FUNC, "new dcfg: 0x%lx", (unsigned long)dcfg);
-     return dcfg;
- }
-@@ -253,12 +253,12 @@
-         modperl_init_globals(s, p);
-     }
--    MP_TRACE_d(MP_FUNC, "p=0x%lx, s=0x%lx, virtual=%d\n",
-+    MP_TRACE_d(MP_FUNC, "p=0x%lx, s=0x%lx, virtual=%d",
-                p, s, s->is_virtual);
- #ifdef USE_ITHREADS
--    scfg->interp_pool_cfg = 
-+    scfg->interp_pool_cfg =
-         (modperl_tipool_config_t *)
-         apr_pcalloc(p, sizeof(*scfg->interp_pool_cfg));
-@@ -286,7 +286,7 @@
-         *add  = (modperl_config_srv_t *)addv,
-         *mrg  = modperl_config_srv_new(p, add->server);
--    MP_TRACE_d(MP_FUNC, "basev==0x%lx, addv==0x%lx, mrg==0x%lx\n", 
-+    MP_TRACE_d(MP_FUNC, "basev==0x%lx, addv==0x%lx, mrg==0x%lx",
-                (unsigned long)basev, (unsigned long)addv,
-                (unsigned long)mrg);
-@@ -362,11 +362,6 @@
-     retval = modperl_callback_per_dir(MP_CLEANUP_HANDLER, r, MP_HOOK_RUN_ALL);
--    if (rcfg->pnotes) {
--        SvREFCNT_dec(rcfg->pnotes);
--        rcfg->pnotes = Nullhv;
--    }
--
-     /* undo changes to %ENV caused by +SetupEnv, perl-script, or
-      * $r->subprocess_env, so the values won't persist  */
-     if (MpReqSETUP_ENV(rcfg)) {
-@@ -405,7 +400,7 @@
-     entries = (char **)scfg->PerlModule->elts;
-     for (i = 0; i < scfg->PerlModule->nelts; i++){
-         if (modperl_require_module(aTHX_ entries[i], TRUE)){
--            MP_TRACE_d(MP_FUNC, "loaded Perl module %s for server %s\n",
-+            MP_TRACE_d(MP_FUNC, "loaded Perl module %s for server %s",
-                        entries[i], modperl_server_desc(s,p));
-         }
-         else {
-@@ -430,7 +425,7 @@
-     entries = (char **)scfg->PerlRequire->elts;
-     for (i = 0; i < scfg->PerlRequire->nelts; i++){
-         if (modperl_require_file(aTHX_ entries[i], TRUE)){
--            MP_TRACE_d(MP_FUNC, "loaded Perl file: %s for server %s\n",
-+            MP_TRACE_d(MP_FUNC, "loaded Perl file: %s for server %s",
-                        entries[i], modperl_server_desc(s,p));
-         }
-         else {
-@@ -463,14 +458,14 @@
-         MP_PERL_CONTEXT_RESTORE;
-         if (retval) {
--            MP_TRACE_d(MP_FUNC, "loaded Perl file: %s for server %s\n",
-+            MP_TRACE_d(MP_FUNC, "loaded Perl file: %s for server %s",
-                        requires[i]->file, modperl_server_desc(s, p));
-         }
-         else {
-             ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
-                          "Can't load Perl file: %s for server %s, exiting...",
-                          requires[i]->file, modperl_server_desc(s, p));
--            
-+
-             return FALSE;
-         }
-     }
-@@ -523,7 +518,7 @@
-     parms.limited = -1;
-     parms.server = s;
-     parms.override = override;
--    parms.path = path;
-+    parms.path = apr_pstrdup(p, path);
-     parms.pool = p;
- #ifdef MP_HTTPD_HAS_OVERRIDE_OPTS
-     if (override_options == MP_HTTPD_OVERRIDE_OPTS_UNSET) {
-@@ -570,14 +565,14 @@
-     return errmsg;
- }
--const char *modperl_config_insert_parms(pTHX_ cmd_parms *parms, 
-+const char *modperl_config_insert_parms(pTHX_ cmd_parms *parms,
-                                         SV *lines)
- {
--    return modperl_config_insert(aTHX_ 
--                                 parms->server, 
--                                 parms->pool, 
-+    return modperl_config_insert(aTHX_
-+                                 parms->server,
-+                                 parms->pool,
-                                  parms->temp_pool,
--                                 parms->override, 
-+                                 parms->override,
-                                  parms->path,
- #ifdef MP_HTTPD_HAS_OVERRIDE_OPTS
-                                  parms->override_opts,
-@@ -623,7 +618,7 @@
-         return errmsg;
-     }
--    r->per_dir_config = 
-+    r->per_dir_config =
-         ap_merge_per_dir_configs(r->pool,
-                                  r->per_dir_config,
-                                  dconf);
-Index: src/modules/perl/modperl_interp.h
-===================================================================
---- src/modules/perl/modperl_interp.h  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_interp.h  (.../trunk)     (revision 630610)
-@@ -24,33 +24,9 @@
- #ifdef USE_ITHREADS
--/*
-- * HvPMROOT will never be used by Perl with PL_modglobal.
-- * so we have stolen it as a quick way to stash the interp
-- * pointer.
-- *
-- * However in 5.9.3 HvPMROOT was completely removed, so we have moved
-- * to use another struct member that's hopefully won't be used by
-- * anybody else. But if we can find a better place to store the
-- * pointer to the current mod_perl interpreter object it'd be a much
-- * cleaner solution. of course it must be really fast.
-- */
--#ifndef HvPMROOT
--#define MP_THX_INTERP_GET(thx)                                  \
--    (modperl_interp_t *) ((XPVMG*)SvANY(*Perl_Imodglobal_ptr(thx)))->xmg_magic
--#else
--#define MP_THX_INTERP_GET(thx) \
--    (modperl_interp_t *)HvPMROOT(*Perl_Imodglobal_ptr(thx))
--#endif
-+modperl_interp_t *modperl_thx_interp_get(PerlInterpreter *thx);
-+void modperl_thx_interp_set(PerlInterpreter *thx, modperl_interp_t *interp);
--#ifndef HvPMROOT
--#define MP_THX_INTERP_SET(thx, interp)                          \
--    ((XPVMG*)SvANY(*Perl_Imodglobal_ptr(thx)))->xmg_magic = (MAGIC*)interp
--#else
--#define MP_THX_INTERP_SET(thx, interp)                          \
--    HvPMROOT(*Perl_Imodglobal_ptr(thx)) = (PMOP*)interp
--#endif
--
- const char *modperl_interp_scope_desc(modperl_interp_scope_e scope);
- void modperl_interp_clone_init(modperl_interp_t *interp);
-@@ -91,7 +67,7 @@
- apr_status_t modperl_interp_pool_destroy(void *data);
--typedef apr_status_t (*modperl_interp_mip_walker_t)(pTHX_ 
-+typedef apr_status_t (*modperl_interp_mip_walker_t)(pTHX_
-                                                     modperl_interp_pool_t *mip,
-                                                     void *data);
-Index: src/modules/perl/modperl_io_apache.c
-===================================================================
---- src/modules/perl/modperl_io_apache.c       (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_io_apache.c       (.../trunk)     (revision 630610)
-@@ -98,7 +98,7 @@
- {
-     /* XXX: we could return STDIN => 0, STDOUT => 1, but that wouldn't
-      * be correct, as the IO goes through the socket, may be we should
--     * return the filedescriptor of the socket? 
-+     * return the filedescriptor of the socket?
-      *
-      * -1 in this case indicates that the layer cannot provide fileno
-      */
-@@ -139,7 +139,7 @@
-     rv = modperl_wbucket_write(aTHX_ rcfg->wbucket, vbuf, &count);
-     if (rv != APR_SUCCESS) {
--        Perl_croak(aTHX_ modperl_error_strerror(aTHX_ rv)); 
-+        Perl_croak(aTHX_ modperl_error_strerror(aTHX_ rv));
-     }
-     bytes += count;
-@@ -224,7 +224,7 @@
-     NULL,                       /* can't seek on STD{IN|OUT}, fail on call*/
-     NULL,                       /* can't tell on STD{IN|OUT}, fail on call*/
-     PerlIOApache_close,
--    PerlIOApache_flush,        
-+    PerlIOApache_flush,
-     PerlIOApache_noop_fail,     /* fill */
-     PerlIOBase_eof,
-     PerlIOBase_error,
-@@ -274,7 +274,7 @@
-         rc = ap_get_brigade(r->input_filters, bb, AP_MODE_READBYTES,
-                             APR_BLOCK_READ, len);
--        if (rc != APR_SUCCESS) { 
-+        if (rc != APR_SUCCESS) {
-             /* if we fail here, we want to stop trying to read data
-              * from the client.
-              */
-@@ -335,7 +335,3 @@
-     return total;
- }
--
--
--
--
-Index: src/modules/perl/modperl_gtop.c
-===================================================================
---- src/modules/perl/modperl_gtop.c    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_gtop.c    (.../trunk)     (revision 630610)
-@@ -31,7 +31,7 @@
-     }
-     else if (size < 1048576) {
-         apr_snprintf(size_string, MP_GTOP_SSS, "%dk",
--                     (size + 512) / 1024);
-+                     (int)(size + 512) / 1024);
-     }
-     else if (size < 103809024) {
-         apr_snprintf(size_string, MP_GTOP_SSS, "%.1fM",
-@@ -39,7 +39,7 @@
-     }
-     else {
-         apr_snprintf(size_string, MP_GTOP_SSS, "%dM",
--                     (size + 524288) / 1048576);
-+                     (int)(size + 524288) / 1048576);
-     }
-     return 1;
-@@ -53,7 +53,7 @@
- modperl_gtop_t *modperl_gtop_new(apr_pool_t *p)
- {
--    modperl_gtop_t *gtop = 
-+    modperl_gtop_t *gtop =
-         (modperl_gtop_t *)apr_pcalloc(p, sizeof(*gtop));
-     gtop->pid = getpid();
-@@ -83,8 +83,8 @@
- #define SS_TYPE_AFTER  2
- #define SS_TYPE_DIFF   3
--/* 
-- * XXX: this is pretty ugly, 
-+/*
-+ * XXX: this is pretty ugly,
-  * but avoids allocating buffers for the size string
-  */
- static void modperl_gtop_proc_mem_size_string(modperl_gtop_t *gtop, int type)
-@@ -110,7 +110,7 @@
- #undef ss_call
- }
--void modperl_gtop_report_proc_mem(modperl_gtop_t *gtop, 
-+void modperl_gtop_report_proc_mem(modperl_gtop_t *gtop,
-                                   char *when, const char *func, char *msg)
- {
- #define ss_item(item) gtop->proc_mem_ss.item
-Index: src/modules/perl/modperl_types.h
-===================================================================
---- src/modules/perl/modperl_types.h   (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_types.h   (.../trunk)     (revision 630610)
-@@ -101,7 +101,6 @@
- struct modperl_interp_pool_t {
-     server_rec *server;
-     modperl_tipool_t *tipool;
--    modperl_tipool_config_t *tipool_cfg;
-     modperl_interp_t *parent; /* from which to perl_clone() */
- };
-@@ -193,10 +192,10 @@
-      * - a subroutine name for named subs
-      * - NULL for anon subs
-      */
--    const char *name; 
-+    const char *name;
-     CV *cv;
-     U8 flags;
--    U32 attrs;
-+    U16 attrs;
-     modperl_handler_t *next;
- };
-Index: src/modules/perl/modperl_config.h
-===================================================================
---- src/modules/perl/modperl_config.h  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_config.h  (.../trunk)     (revision 630610)
-@@ -42,9 +42,15 @@
- apr_status_t modperl_config_req_cleanup(void *data);
-+/* use a subpool here to ensure that a PerlCleanupHandler is run before
-+ * any other pool cleanup - suppools are destroyed first. Particularly a
-+ * PerlCleanupHandler must run before request pnotes are dropped.
-+ */
- #define modperl_config_req_cleanup_register(r, rcfg)           \
-     if (r && !MpReqCLEANUP_REGISTERED(rcfg)) {                 \
--        apr_pool_cleanup_register(r->pool,                     \
-+        apr_pool_t *p;                           \
-+        apr_pool_create(&p, r->pool);                   \
-+        apr_pool_cleanup_register(p,                   \
-                                   (void*)r,                    \
-                                   modperl_config_req_cleanup,  \
-                                   apr_pool_cleanup_null);      \
-@@ -93,7 +99,7 @@
- #define MP_dCCFG \
-     modperl_config_con_t *ccfg = modperl_config_con_get(c)
--    
-+
- #define modperl_config_dir_get(r)                               \
-     (r ? (modperl_config_dir_t *)                               \
-      modperl_get_module_config(r->per_dir_config) : NULL)
-@@ -151,7 +157,7 @@
-                                   ap_conf_vector_t *conf,
-                                   SV *lines);
--const char *modperl_config_insert_parms(pTHX_ cmd_parms *parms, 
-+const char *modperl_config_insert_parms(pTHX_ cmd_parms *parms,
-                                         SV *lines);
- const char *modperl_config_insert_server(pTHX_ server_rec *s, SV *lines);
-Index: src/modules/perl/modperl_bucket.c
-===================================================================
---- src/modules/perl/modperl_bucket.c  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_bucket.c  (.../trunk)     (revision 630610)
-@@ -53,12 +53,12 @@
-     dTHXa(svbucket->perl);
-     if (!apr_bucket_shared_destroy(svbucket)) {
--        MP_TRACE_f(MP_FUNC, "bucket refcnt=%d\n",
-+        MP_TRACE_f(MP_FUNC, "bucket refcnt=%d",
-                    ((apr_bucket_refcount *)svbucket)->refcount);
-         return;
-     }
--    MP_TRACE_f(MP_FUNC, "sv=0x%lx, refcnt=%d\n",
-+    MP_TRACE_f(MP_FUNC, "sv=0x%lx, refcnt=%d",
-                (unsigned long)svbucket->sv, SvREFCNT(svbucket->sv));
-     SvREFCNT_dec(svbucket->sv);
-@@ -66,7 +66,7 @@
-     apr_bucket_free(svbucket);
- }
--static 
-+static
- apr_status_t modperl_bucket_sv_setaside(apr_bucket *bucket, apr_pool_t *pool)
- {
-     modperl_bucket_sv_t *svbucket = bucket->data;
-@@ -111,7 +111,7 @@
-                                           apr_off_t offset,
-                                           apr_size_t len)
- {
--    modperl_bucket_sv_t *svbucket; 
-+    modperl_bucket_sv_t *svbucket;
-     svbucket = apr_bucket_alloc(sizeof(*svbucket), bucket->list);
-@@ -139,14 +139,14 @@
-         (void)SvREFCNT_inc(svbucket->sv);
-     }
--    MP_TRACE_f(MP_FUNC, "sv=0x%lx, refcnt=%d\n",
-+    MP_TRACE_f(MP_FUNC, "sv=0x%lx, refcnt=%d",
-                (unsigned long)svbucket->sv, SvREFCNT(svbucket->sv));
-     bucket->type = &modperl_bucket_sv_type;
-     return bucket;
- }
--apr_bucket *modperl_bucket_sv_create(pTHX_ apr_bucket_alloc_t *list, SV *sv, 
-+apr_bucket *modperl_bucket_sv_create(pTHX_ apr_bucket_alloc_t *list, SV *sv,
-                                      apr_off_t offset, apr_size_t len)
- {
-     apr_bucket *bucket;
-Index: src/modules/perl/modperl_util.c
-===================================================================
---- src/modules/perl/modperl_util.c    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_util.c    (.../trunk)     (revision 630610)
-@@ -194,7 +194,7 @@
- {
-     SV *sv = newSV(0);
--    MP_TRACE_h(MP_FUNC, "sv_setref_pv(%s, 0x%lx)\n",
-+    MP_TRACE_h(MP_FUNC, "sv_setref_pv(%s, 0x%lx)",
-                classname, (unsigned long)ptr);
-     sv_setref_pv(sv, classname, ptr);
-@@ -265,10 +265,10 @@
-     void **handles;
-     if (!librefs) {
--      MP_TRACE_r(MP_FUNC,
--                   "Could not get @%s for unloading.\n",
-+        MP_TRACE_r(MP_FUNC,
-+                   "Could not get @%s for unloading.",
-                    dl_librefs);
--      return NULL;
-+        return NULL;
-     }
-     if (!(AvFILL(librefs) >= 0)) {
-@@ -279,23 +279,23 @@
-     handles = (void **)malloc(sizeof(void *) * (AvFILL(librefs)+2));
-     for (i=0; i<=AvFILL(librefs); i++) {
--      void *handle;
--      SV *handle_sv = *av_fetch(librefs, i, FALSE);
--      SV *module_sv = *av_fetch(modules, i, FALSE);
-+        void *handle;
-+        SV *handle_sv = *av_fetch(librefs, i, FALSE);
-+        SV *module_sv = *av_fetch(modules, i, FALSE);
--      if(!handle_sv) {
--          MP_TRACE_r(MP_FUNC,
--                       "Could not fetch $%s[%d]!\n",
-+        if(!handle_sv) {
-+            MP_TRACE_r(MP_FUNC,
-+                       "Could not fetch $%s[%d]!",
-                        dl_librefs, (int)i);
--          continue;
--      }
--      handle = INT2PTR(void *, SvIV(handle_sv));
-+            continue;
-+        }
-+        handle = INT2PTR(void *, SvIV(handle_sv));
--      MP_TRACE_r(MP_FUNC, "%s dl handle == 0x%lx\n",
-+        MP_TRACE_r(MP_FUNC, "%s dl handle == 0x%lx",
-                    SvPVX(module_sv), (unsigned long)handle);
--      if (handle) {
--          handles[i] = handle;
--      }
-+        if (handle) {
-+            handles[i] = handle;
-+        }
-     }
-     av_clear(modules);
-@@ -311,11 +311,11 @@
-     int i;
-     if (!handles) {
--      return;
-+        return;
-     }
-     for (i=0; handles[i]; i++) {
--        MP_TRACE_r(MP_FUNC, "close 0x%lx\n", (unsigned long)handles[i]);
-+        MP_TRACE_r(MP_FUNC, "close 0x%lx", (unsigned long)handles[i]);
-         modperl_sys_dlclose(handles[i]);
-     }
-@@ -344,7 +344,7 @@
-     sv_free((SV *)tmpav);
- }
--static void modperl_package_unload_dynamic(pTHX_ const char *package, 
-+static void modperl_package_unload_dynamic(pTHX_ const char *package,
-                                            I32 dl_index)
- {
-     AV *librefs = get_av(dl_librefs, 0);
-@@ -356,7 +356,7 @@
-     modperl_av_remove_entry(aTHX_ get_av(dl_librefs, 0), dl_index);
-     modperl_av_remove_entry(aTHX_ get_av(dl_modules, 0), dl_index);
--    return;    
-+    return;
- }
- static int modperl_package_is_dynamic(pTHX_ const char *package,
-@@ -415,12 +415,12 @@
- #ifdef HvREHASH
-     if (HvREHASH(hv)) {
--      PERL_HASH_INTERNAL(hash, key, klen);
-+        PERL_HASH_INTERNAL(hash, key, klen);
-     }
-     else
- #endif
-     if (!hash) {
--      PERL_HASH(hash, key, klen);
-+        PERL_HASH(hash, key, klen);
-     }
-     entry = ((HE**)HvARRAY(hv))[hash & (I32)xhv->xhv_max];
-@@ -449,7 +449,7 @@
-     }
- }
--/* XXX: same as Perl_do_sprintf(); 
-+/* XXX: same as Perl_do_sprintf();
-  * but Perl_do_sprintf() is not part of the "public" api
-  */
- void modperl_perl_do_sprintf(pTHX_ SV *sv, I32 len, SV **sarg)
-@@ -476,20 +476,20 @@
-                AvFILLp(subs)+1, name);
-     for (i=0; i<=AvFILLp(subs); i++) {
--      CV *cv = (CV*)ary[i];
--      SV *atsv = ERRSV;
-+        CV *cv = (CV*)ary[i];
-+        SV *atsv = ERRSV;
--      PUSHMARK(PL_stack_sp);
--      call_sv((SV*)cv, G_EVAL|G_DISCARD);
-+        PUSHMARK(PL_stack_sp);
-+        call_sv((SV*)cv, G_EVAL|G_DISCARD);
--      if (SvCUR(atsv)) {
-+        if (SvCUR(atsv)) {
-             Perl_sv_catpvf(aTHX_ atsv, "%s failed--call queue aborted",
-                            name);
--          while (PL_scopestack_ix > oldscope) {
--              LEAVE;
-+            while (PL_scopestack_ix > oldscope) {
-+                LEAVE;
-             }
-             Perl_croak(aTHX_ "%s", SvPVX(atsv));
--      }
-+        }
-     }
- }
-@@ -497,7 +497,7 @@
- {
-     ENTER;
-     SAVESPTR(PL_diehook);
--    PL_diehook = Nullsv; 
-+    PL_diehook = Nullsv;
-     modperl_croak(aTHX_ MODPERL_RC_EXIT, "ModPerl::Util::exit");
- }
-@@ -506,7 +506,7 @@
- {
-     SV *retval = &PL_sv_undef;
--    if (r && r->per_dir_config) {                                
-+    if (r && r->per_dir_config) {
-         MP_dDCFG;
-         retval = modperl_table_get_set(aTHX_ dcfg->configvars,
-                                        key, sv_val, FALSE);
-@@ -532,31 +532,31 @@
- {
-     SV *retval = &PL_sv_undef;
--    if (table == NULL) { 
-+    if (table == NULL) {
-         /* do nothing */
-     }
--    else if (key == NULL) { 
-+    else if (key == NULL) {
-         retval = modperl_hash_tie(aTHX_ "APR::Table",
--                                  Nullsv, (void*)table); 
-+                                  Nullsv, (void*)table);
-     }
-     else if (!sv_val) { /* no val was passed */
--        char *val; 
--        if ((val = (char *)apr_table_get(table, key))) { 
--            retval = newSVpv(val, 0); 
--        } 
--        else { 
--            retval = newSV(0); 
--        } 
--        if (do_taint) { 
--            SvTAINTED_on(retval); 
--        } 
-+        char *val;
-+        if ((val = (char *)apr_table_get(table, key))) {
-+            retval = newSVpv(val, 0);
-+        }
-+        else {
-+            retval = newSV(0);
-+        }
-+        if (do_taint) {
-+            SvTAINTED_on(retval);
-+        }
-     }
-     else if (!SvOK(sv_val)) { /* val was passed in as undef */
--        apr_table_unset(table, key); 
-+        apr_table_unset(table, key);
-     }
--    else { 
-+    else {
-         apr_table_set(table, key, SvPV_nolen(sv_val));
--    } 
-+    }
-     return retval;
- }
-@@ -629,10 +629,10 @@
-     rc = apr_file_read(file, SvPVX(sv), &size);
-     SLURP_SUCCESS("reading");
--    MP_TRACE_o(MP_FUNC, "read %d bytes from '%s'\n", size, r->filename);
-+    MP_TRACE_o(MP_FUNC, "read %d bytes from '%s'", size, r->filename);
-     if (r->finfo.size != size) {
--        SvREFCNT_dec(sv); 
-+        SvREFCNT_dec(sv);
-         Perl_croak(aTHX_ "Error: read %d bytes, expected %d ('%s')",
-                    size, (apr_size_t)r->finfo.size, r->filename);
-     }
-@@ -706,10 +706,10 @@
- SV *modperl_apr_array_header2avrv(pTHX_ apr_array_header_t *array)
- {
--    AV *av = newAV(); 
-+    AV *av = newAV();
-     if (array) {
--        int i; 
-+        int i;
-         for (i = 0; i < array->nelts; i++) {
-             av_push(av, newSVpv(((char **)array->elts)[i], 0));
-         }
-@@ -742,7 +742,7 @@
- }
- /* Remove a package from %INC */
--static void modperl_package_delete_from_inc(pTHX_ const char *package)  
-+static void modperl_package_delete_from_inc(pTHX_ const char *package)
- {
-     int len;
-     char *filename = package2filename(package, &len);
-@@ -753,7 +753,7 @@
- /* Destroy a package's stash */
- #define MP_STASH_SUBSTASH(key, len) ((len >= 2) &&                  \
-                                      (key[len-1] == ':') &&         \
--                                     (key[len-2] == ':'))   
-+                                     (key[len-2] == ':'))
- #define MP_STASH_DEBUGGER(key, len) ((len >= 2) &&                  \
-                                      (key[0] == '_') &&             \
-                                      (key[1] == '<'))
-@@ -819,7 +819,7 @@
-         *counter = 1;
-         apr_pool_userdata_set(counter, MP_RESTART_COUNT_KEY,
-                               apr_pool_cleanup_null, p);
--    }    
-+    }
- }
- int modperl_restart_count(void)
-@@ -853,36 +853,35 @@
-         *pnotes = Nullhv;
-     }
--    return APR_SUCCESS;   
-+    return APR_SUCCESS;
- }
--SV *modperl_pnotes(pTHX_ HV **pnotes, SV *key, SV *val, 
-+MP_INLINE
-+static void *modperl_pnotes_cleanup_data(pTHX_ HV **pnotes, apr_pool_t *p) {
-+#ifdef USE_ITHREADS
-+    modperl_cleanup_pnotes_data_t *cleanup_data = apr_palloc(p, sizeof(*cleanup_data));
-+    cleanup_data->pnotes = pnotes;
-+    cleanup_data->perl = aTHX;
-+    return cleanup_data;
-+#else
-+    return pnotes;
-+#endif
-+}
-+
-+SV *modperl_pnotes(pTHX_ HV **pnotes, SV *key, SV *val,
-                    request_rec *r, conn_rec *c) {
-     SV *retval = Nullsv;
-     if (!*pnotes) {
-+        apr_pool_t *pool = r ? r->pool : c->pool;
-+        void *cleanup_data;
-         *pnotes = newHV();
--        /* XXX: It would be nice to be able to do this with r->pnotes, but
--         * it's currently impossible, as modperl_config.c:modperl_config_request_cleanup()
--         * is responsible for running the CleanupHandlers, and it's cleanup callback is
--         * registered very early. If we register our cleanup here, we'll be running 
--         * *before* the CleanupHandlers, and they might still want to use pnotes...
--         */
--        if (c && !r) {
--            apr_pool_t *pool = r ? r->pool : c->pool;
--#ifdef USE_ITHREADS
--            modperl_cleanup_pnotes_data_t *cleanup_data = 
--                apr_palloc(pool, sizeof(*cleanup_data));
--            cleanup_data->pnotes = pnotes;
--            cleanup_data->perl = aTHX;
--#else
--            void *cleanup_data = pnotes;
--#endif
--            apr_pool_cleanup_register(pool, cleanup_data,
--                                      modperl_cleanup_pnotes,
--                                      apr_pool_cleanup_null);
--        }
-+        cleanup_data = modperl_pnotes_cleanup_data(aTHX_ pnotes, pool);
-+
-+        apr_pool_cleanup_register(pool, cleanup_data,
-+                                  modperl_cleanup_pnotes,
-+                                  apr_pool_cleanup_null);
-     }
-     if (key) {
-@@ -895,11 +894,19 @@
-         else if (hv_exists(*pnotes, k, len)) {
-             retval = *hv_fetch(*pnotes, k, len, FALSE);
-         }
-+
-+        return retval ? SvREFCNT_inc(retval) : &PL_sv_undef;
-     }
--    else {
--        retval = newRV_inc((SV *)*pnotes);
-+    return newRV_inc((SV *)*pnotes);
-+}
-+
-+U16 *modperl_code_attrs(pTHX_ CV *cv) {
-+    MAGIC *mg;    
-+
-+    if (!SvMAGICAL(cv)) {
-+       sv_magic((SV*)cv, Nullsv, PERL_MAGIC_ext, NULL, -1); 
-     }
--    return retval ? SvREFCNT_inc(retval) : &PL_sv_undef;
-+    mg = mg_find((SV*)cv, PERL_MAGIC_ext);
-+    return &(mg->mg_private);
- }
-- 
-Index: src/modules/perl/modperl_gtop.h
-===================================================================
---- src/modules/perl/modperl_gtop.h    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_gtop.h    (.../trunk)     (revision 630610)
-@@ -43,7 +43,7 @@
-     char share[MP_GTOP_SSS];
-     char rss[MP_GTOP_SSS];
- } modperl_gtop_proc_mem_ss;
--    
-+
- typedef struct {
-     glibtop_union before;
-     glibtop_union after;
-@@ -54,7 +54,7 @@
- modperl_gtop_t *modperl_gtop_new(apr_pool_t *p);
- void modperl_gtop_get_proc_mem_before(modperl_gtop_t *gtop);
- void modperl_gtop_get_proc_mem_after(modperl_gtop_t *gtop);
--void modperl_gtop_report_proc_mem(modperl_gtop_t *gtop, 
-+void modperl_gtop_report_proc_mem(modperl_gtop_t *gtop,
-                                   char *when, const char *func, char *msg);
- void modperl_gtop_report_proc_mem_diff(modperl_gtop_t *gtop, const char* func, char *msg);
- void modperl_gtop_report_proc_mem_before(modperl_gtop_t *gtop, const char* func, char *msg);
-Index: src/modules/perl/modperl_bucket.h
-===================================================================
---- src/modules/perl/modperl_bucket.h  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_bucket.h  (.../trunk)     (revision 630610)
-@@ -17,7 +17,7 @@
- #ifndef MODPERL_BUCKET_H
- #define MODPERL_BUCKET_H
--apr_bucket *modperl_bucket_sv_create(pTHX_ apr_bucket_alloc_t *list, SV *sv, 
-+apr_bucket *modperl_bucket_sv_create(pTHX_ apr_bucket_alloc_t *list, SV *sv,
-                                      apr_off_t offset, apr_size_t len);
- #endif /* MODPERL_BUCKET_H */
-Index: src/modules/perl/modperl_util.h
-===================================================================
---- src/modules/perl/modperl_util.h    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_util.h    (.../trunk)     (revision 630610)
-@@ -27,7 +27,7 @@
-     }
- /* turn off cgi header parsing. in case we are already inside
-- *     modperl_callback_per_dir(MP_RESPONSE_HANDLER, r, MP_HOOK_RUN_FIRST); 
-+ *     modperl_callback_per_dir(MP_RESPONSE_HANDLER, r, MP_HOOK_RUN_FIRST);
-  * but haven't sent any data yet, it's too late to change
-  * MpReqPARSE_HEADERS, so change the wbucket's private flag directly
-  */
-@@ -35,7 +35,7 @@
-     MpReqPARSE_HEADERS_Off(rcfg); \
-     if (rcfg->wbucket) { \
-         rcfg->wbucket->header_parse = 0; \
--    } 
-+    }
- MP_INLINE server_rec *modperl_sv2server_rec(pTHX_ SV *sv);
- MP_INLINE request_rec *modperl_sv2request_rec(pTHX_ SV *sv);
-@@ -81,7 +81,7 @@
- MP_INLINE SV *modperl_dir_config(pTHX_ request_rec *r, server_rec *s,
-                                  char *key, SV *sv_val);
--    
-+
- SV *modperl_table_get_set(pTHX_ apr_table_t *table, char *key,
-                           SV *sv_val, int do_taint);
-@@ -149,4 +149,6 @@
- SV *modperl_pnotes(pTHX_ HV **pnotes, SV *key, SV *val,
-                    request_rec *r, conn_rec *c);
-+U16 *modperl_code_attrs(pTHX_ CV *cv);
-+
- #endif /* MODPERL_UTIL_H */
-Index: src/modules/perl/modperl_env.c
-===================================================================
---- src/modules/perl/modperl_env.c     (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_env.c     (.../trunk)     (revision 630610)
-@@ -130,7 +130,7 @@
-             continue;
-         }
-         MP_ENV_HV_STORE_TABLE_ENTRY(hv, elts[i]);
--    }    
-+    }
-     modperl_env_tie(mg_flags);
- }
-@@ -167,10 +167,10 @@
-     apr_table_entry_t *elts;
-     HV *hv = ENVHV;
-     SV **svp;
--    
-+
-     array = apr_table_elts(table);
-     elts  = (apr_table_entry_t *)array->elts;
--    
-+
-     for (i = 0; i < array->nelts; i++) {
-         if (!elts[i].key) {
-             continue;
-@@ -181,7 +181,7 @@
-             MP_TRACE_e(MP_FUNC, "(Set|Pass)Env '%s' '%s'", elts[i].key,
-                        SvPV_nolen(*svp));
-         }
--    }    
-+    }
-     TAINT_NOT; /* SvPV_* causes the taint issue */
- }
-@@ -232,13 +232,13 @@
-         }
-     }
--    MP_TRACE_e(MP_FUNC, "\n\t[%s/0x%lx/%s]"
-+    MP_TRACE_e(MP_FUNC, "\t[%s/0x%lx/%s]"
-                "\n\t@ENV{keys scfg->SetEnv} = values scfg->SetEnv;",
-                modperl_pid_tid(p), modperl_interp_address(aTHX),
-                modperl_server_desc(s, p));
-     modperl_env_table_populate(aTHX_ scfg->SetEnv);
--    MP_TRACE_e(MP_FUNC, "\n\t[%s/0x%lx/%s]"
-+    MP_TRACE_e(MP_FUNC, "\t[%s/0x%lx/%s]"
-                "\n\t@ENV{keys scfg->PassEnv} = values scfg->PassEnv;",
-                modperl_pid_tid(p), modperl_interp_address(aTHX),
-                modperl_server_desc(s, p));
-@@ -255,7 +255,7 @@
-     MP_dRCFG;
-     MP_dDCFG;
--    /* populate %ENV and r->subprocess_env with per-directory 
-+    /* populate %ENV and r->subprocess_env with per-directory
-      * PerlSetEnv entries.
-      *
-      * note that per-server PerlSetEnv entries, as well as
-@@ -267,10 +267,10 @@
-         apr_table_t *setenv_copy;
-         /* add per-directory PerlSetEnv entries to %ENV
--         * collisions with per-server PerlSetEnv entries are 
-+         * collisions with per-server PerlSetEnv entries are
-          * resolved via the nature of a Perl hash
-          */
--        MP_TRACE_e(MP_FUNC, "\n\t[%s/0x%lx/%s]"
-+        MP_TRACE_e(MP_FUNC, "\t[%s/0x%lx/%s]"
-                    "\n\t@ENV{keys dcfg->SetEnv} = values dcfg->SetEnv;",
-                    modperl_pid_tid(r->pool), modperl_interp_address(aTHX),
-                    modperl_server_desc(r->server, r->pool));
-@@ -295,15 +295,15 @@
-     MP_dRCFG;
-     MP_dSCFG(r->server);
--    /* populate %ENV and r->subprocess_env with per-server PerlSetEnv 
--     * and PerlPassEnv entries.  
-+    /* populate %ENV and r->subprocess_env with per-server PerlSetEnv
-+     * and PerlPassEnv entries.
-      *
-      * although both are setup in %ENV in modperl_request_configure_server
-      * %ENV will be reset via modperl_env_request_unpopulate.
-      */
-     if (!apr_is_empty_table(scfg->SetEnv)) {
--        MP_TRACE_e(MP_FUNC, "\n\t[%s/0x%lx/%s]"
-+        MP_TRACE_e(MP_FUNC, "\t[%s/0x%lx/%s]"
-                    "\n\t@ENV{keys scfg->SetEnv} = values scfg->SetEnv;",
-                    modperl_pid_tid(r->pool), modperl_interp_address(aTHX),
-                    modperl_server_desc(r->server, r->pool));
-@@ -313,7 +313,7 @@
-     }
-     if (!apr_is_empty_table(scfg->PassEnv)) {
--        MP_TRACE_e(MP_FUNC, "\n\t[%s/0x%lx/%s]"
-+        MP_TRACE_e(MP_FUNC, "\t[%s/0x%lx/%s]"
-                    "\n\t@ENV{keys scfg->PassEnv} = values scfg->PassEnv;",
-                    modperl_pid_tid(r->pool), modperl_interp_address(aTHX),
-                    modperl_server_desc(r->server, r->pool));
-@@ -356,14 +356,14 @@
-      * normally, %ENV is only populated once per request (if at all) -
-      * just prior to content generation if +SetupEnv.
-      *
--     * however, in the $r->subprocess_env() case it will be called 
-+     * however, in the $r->subprocess_env() case it will be called
-      * more than once - once for each void call, and once again just
-      * prior to content generation.  while costly, the multiple
-      * passes are required, otherwise void calls would prohibit later
-      * phases from populating %ENV with new subprocess_env table entries
-      */
--    MP_TRACE_e(MP_FUNC, "\n\t[%s/0x%lx/%s%s]"
-+    MP_TRACE_e(MP_FUNC, "\t[%s/0x%lx/%s%s]"
-                "\n\t@ENV{keys r->subprocess_env} = values r->subprocess_env;",
-                modperl_pid_tid(r->pool), modperl_interp_address(aTHX),
-                modperl_server_desc(r->server, r->pool), r->uri);
-@@ -382,7 +382,7 @@
-     /* don't set up CGI variables again this request.
-      * this also triggers modperl_env_request_unpopulate, which
--     * resets %ENV between requests - see modperl_config_request_cleanup 
-+     * resets %ENV between requests - see modperl_config_request_cleanup
-      */
-     MpReqSETUP_ENV_On(rcfg);
- }
-@@ -411,7 +411,7 @@
-     EnvMgLenSet(-1);
- #ifdef MP_PERL_HV_GMAGICAL_AWARE
--    MP_TRACE_e(MP_FUNC, "[%s/0x%lx] tie %%ENV, $r\n\t (%s%s)",
-+    MP_TRACE_e(MP_FUNC, "[%s/0x%lx] tie %%ENV, $r\t (%s%s)",
-                modperl_pid_tid(r->pool), modperl_interp_address(aTHX),
-                modperl_server_desc(r->server, r->pool), r->uri);
-     SvGMAGICAL_on((SV*)ENVHV);
-@@ -423,7 +423,7 @@
-     EnvMgObjSet(NULL);
- #ifdef MP_PERL_HV_GMAGICAL_AWARE
--    MP_TRACE_e(MP_FUNC, "[%s/0x%lx] untie %%ENV; # from r\n\t (%s%s)",
-+    MP_TRACE_e(MP_FUNC, "[%s/0x%lx] untie %%ENV; # from r\t (%s%s)",
-                modperl_pid_tid(r->pool), modperl_interp_address(aTHX),
-                modperl_server_desc(r->server, r->pool), r->uri);
-     SvGMAGICAL_off((SV*)ENVHV);
-Index: src/modules/perl/modperl_global.c
-===================================================================
---- src/modules/perl/modperl_global.c  (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_global.c  (.../trunk)     (revision 630610)
-@@ -77,7 +77,7 @@
- {
-     modperl_global_t *global = (modperl_global_t *)data;
--    MP_TRACE_g(MP_FUNC, "destroy lock for %s\n", global->name);
-+    MP_TRACE_g(MP_FUNC, "destroy lock for %s", global->name);
-     MUTEX_DESTROY(&global->glock);
-     return APR_SUCCESS;
-@@ -100,13 +100,13 @@
-                               apr_pool_cleanup_null);
- #endif
--    MP_TRACE_g(MP_FUNC, "init %s\n", name);
-+    MP_TRACE_g(MP_FUNC, "init %s", name);
- }
- void modperl_global_lock(modperl_global_t *global)
- {
- #if MP_THREADED
--    MP_TRACE_g(MP_FUNC, "locking %s\n", global->name);
-+    MP_TRACE_g(MP_FUNC, "locking %s", global->name);
-     MUTEX_LOCK(&global->glock);
- #endif
- }
-@@ -114,7 +114,7 @@
- void modperl_global_unlock(modperl_global_t *global)
- {
- #if MP_THREADED
--    MP_TRACE_g(MP_FUNC, "unlocking %s\n", global->name);
-+    MP_TRACE_g(MP_FUNC, "unlocking %s", global->name);
-     MUTEX_UNLOCK(&global->glock);
- #endif
- }
-@@ -185,11 +185,11 @@
- {
-     int next;
-     /* XXX: inline lock/unlock? */
--    modperl_global_lock(&MP_global_anon_cnt); 
-+    modperl_global_lock(&MP_global_anon_cnt);
-     next = ++*(int *)(MP_global_anon_cnt.data);
--    modperl_global_unlock(&MP_global_anon_cnt); 
-+    modperl_global_unlock(&MP_global_anon_cnt);
-     return next;
- }
-@@ -250,7 +250,7 @@
- static apr_status_t modperl_tls_reset(void *data)
- {
--    modperl_tls_cleanup_data_t *cdata = 
-+    modperl_tls_cleanup_data_t *cdata =
-         (modperl_tls_cleanup_data_t *)data;
-     return modperl_tls_set(cdata->key, cdata->data);
- }
-Index: src/modules/perl/modperl_cgi.c
-===================================================================
---- src/modules/perl/modperl_cgi.c     (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_cgi.c     (.../trunk)     (revision 630610)
-@@ -75,7 +75,7 @@
-         r->method_number = M_GET;
-         /* We already read the message body (if any), so don't allow
--         * the redirected request to think it has one.  We can ignore 
-+         * the redirected request to think it has one.  We can ignore
-          * Transfer-Encoding, since we used REQUEST_CHUNKED_ERROR.
-          */
-         apr_table_unset(r->headers_in, "Content-Length");
-Index: src/modules/perl/modperl_cmd.c
-===================================================================
---- src/modules/perl/modperl_cmd.c     (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_cmd.c     (.../trunk)     (revision 630610)
-@@ -47,13 +47,13 @@
-     if (!*handlers) {
-         *handlers = modperl_handler_array_new(p);
--        MP_TRACE_d(MP_FUNC, "created handler stack\n");
-+        MP_TRACE_d(MP_FUNC, "created handler stack");
-     }
-     /* XXX parse_handler if Perl is running */
-     modperl_handler_array_push(*handlers, h);
--    MP_TRACE_d(MP_FUNC, "pushed handler: %s\n", h->name);
-+    MP_TRACE_d(MP_FUNC, "pushed handler: %s", h->name);
-     return NULL;
- }
-@@ -84,11 +84,11 @@
-     if (!*handlers) {
-         *handlers = modperl_handler_array_new(p);
--        MP_TRACE_d(MP_FUNC, "created handler stack\n");
-+        MP_TRACE_d(MP_FUNC, "created handler stack");
-     }
-     modperl_handler_array_push(*handlers, h);
--    MP_TRACE_d(MP_FUNC, "pushed httpd filter handler: %s\n", h->name);
-+    MP_TRACE_d(MP_FUNC, "pushed httpd filter handler: %s", h->name);
-     return NULL;
- }
-@@ -107,18 +107,18 @@
-     if (!*handlers) {
-         *handlers = modperl_handler_array_new(p);
--        MP_TRACE_d(MP_FUNC, "created handler stack\n");
-+        MP_TRACE_d(MP_FUNC, "created handler stack");
-     }
-     modperl_handler_array_push(*handlers, h);
--    MP_TRACE_d(MP_FUNC, "pushed httpd filter handler: %s\n", h->name);
-+    MP_TRACE_d(MP_FUNC, "pushed httpd filter handler: %s", h->name);
-     return NULL;
- }
- #define MP_CMD_SRV_TRACE \
--    MP_TRACE_d(MP_FUNC, "%s %s\n", parms->cmd->name, arg)
-+    MP_TRACE_d(MP_FUNC, "%s %s", parms->cmd->name, arg)
- #define MP_CMD_SRV_CHECK \
- MP_CMD_SRV_TRACE; \
-@@ -156,7 +156,7 @@
-     if (modperl_vhost_is_running(s)) {
-         return modperl_cmd_too_late(parms);
-     }
--    MP_TRACE_d(MP_FUNC, "arg = %s\n", arg);
-+    MP_TRACE_d(MP_FUNC, "arg = %s", arg);
-     if (!strncasecmp(arg, "+inherit", 8)) {
-         modperl_cmd_options(parms, mconfig, "+InheritSwitches");
-@@ -184,7 +184,7 @@
-     if (modperl_is_running()) {
-         char *error = NULL;
--        MP_TRACE_d(MP_FUNC, "load PerlModule %s\n", arg);
-+        MP_TRACE_d(MP_FUNC, "load PerlModule %s", arg);
-         MP_PERL_CONTEXT_STORE_OVERRIDE(scfg->mip->parent->perl);
-         if (!modperl_require_module(aTHX_ arg, FALSE)) {
-@@ -199,7 +199,7 @@
-         return error;
-     }
-     else {
--        MP_TRACE_d(MP_FUNC, "push PerlModule %s\n", arg);
-+        MP_TRACE_d(MP_FUNC, "push PerlModule %s", arg);
-         *(const char **)apr_array_push(scfg->PerlModule) = arg;
-         return NULL;
-     }
-@@ -222,7 +222,7 @@
-     if (modperl_is_running()) {
-         char *error = NULL;
--        MP_TRACE_d(MP_FUNC, "load PerlRequire %s\n", arg);
-+        MP_TRACE_d(MP_FUNC, "load PerlRequire %s", arg);
-         MP_PERL_CONTEXT_STORE_OVERRIDE(scfg->mip->parent->perl);
-         if (!modperl_require_file(aTHX_ arg, FALSE)) {
-@@ -237,14 +237,14 @@
-         return error;
-     }
-     else {
--        MP_TRACE_d(MP_FUNC, "push PerlRequire %s\n", arg);
-+        MP_TRACE_d(MP_FUNC, "push PerlRequire %s", arg);
-         *(const char **)apr_array_push(scfg->PerlRequire) = arg;
-         return NULL;
-     }
- }
- MP_CMD_SRV_DECLARE(config_requires)
--{    
-+{
-     /* we must init earlier than normal */
-     modperl_run();
-@@ -261,7 +261,7 @@
-     MP_dSCFG(parms->server);
-     modperl_require_file_t *require = apr_pcalloc(p, sizeof(*require));
--    MP_TRACE_d(MP_FUNC, "push PerlPostConfigRequire for %s\n", arg);
-+    MP_TRACE_d(MP_FUNC, "push PerlPostConfigRequire for %s", arg);
-     require->file = arg;
-     require->dcfg = dcfg;
-@@ -295,7 +295,7 @@
- {
-     varfunc(dcfg->configvars, dcfg->setvars, arg1, arg2);
--    MP_TRACE_d(MP_FUNC, "%s DIR: arg1 = %s, arg2 = %s\n",
-+    MP_TRACE_d(MP_FUNC, "%s DIR: arg1 = %s, arg2 = %s",
-                parms->cmd->name, arg1, arg2);
-     /* make available via Apache2->server->dir_config */
-@@ -303,7 +303,7 @@
-         MP_dSCFG(parms->server);
-         varfunc(scfg->configvars, scfg->setvars, arg1, arg2);
--        MP_TRACE_d(MP_FUNC, "%s SRV: arg1 = %s, arg2 = %s\n",
-+        MP_TRACE_d(MP_FUNC, "%s SRV: arg1 = %s, arg2 = %s",
-                    parms->cmd->name, arg1, arg2);
-     }
-@@ -335,7 +335,7 @@
-     modperl_str_toupper((char *)arg1);
- #endif
--    MP_TRACE_d(MP_FUNC, "arg1 = %s, arg2 = %s\n", arg1, arg2);
-+    MP_TRACE_d(MP_FUNC, "arg1 = %s, arg2 = %s", arg1, arg2);
-     if (!parms->path) {
-         /* will be propagated to environ */
-@@ -375,10 +375,10 @@
-             modperl_env_hv_store(aTHX_ arg, val);
-             MP_PERL_CONTEXT_RESTORE;
-         }
--        MP_TRACE_d(MP_FUNC, "arg = %s, val = %s\n", arg, val);
-+        MP_TRACE_d(MP_FUNC, "arg = %s, val = %s", arg, val);
-     }
-     else {
--        MP_TRACE_d(MP_FUNC, "arg = %s: not found via getenv()\n", arg);
-+        MP_TRACE_d(MP_FUNC, "arg = %s: not found via getenv()", arg);
-     }
-     return NULL;
-@@ -393,7 +393,7 @@
-     apr_pool_t *p = parms->temp_pool;
-     const char *error;
--    MP_TRACE_d(MP_FUNC, "arg = %s\n", arg);
-+    MP_TRACE_d(MP_FUNC, "arg = %s", arg);
-     if ((error = modperl_options_set(p, opts, arg)) && !is_per_dir) {
-         /* maybe a per-directory option outside of a container */
-         if (modperl_options_set(p, dcfg->flags, arg) == NULL) {
-@@ -542,14 +542,14 @@
-         pkg_namespace = modperl_file2package(p, directive->filename);
--        pkg_name = apr_psprintf(p, "%s::%s::line_%d", 
--                                    pkg_base, 
--                                    pkg_namespace, 
-+        pkg_name = apr_psprintf(p, "%s::%s::line_%d",
-+                                    pkg_base,
-+                                    pkg_namespace,
-                                     directive->line_num);
-         apr_table_set(options, "package", pkg_name);
--        line_header = apr_psprintf(p, "\n#line %d %s\n", 
-+        line_header = apr_psprintf(p, "\n#line %d %s\n",
-                                    directive->line_num,
-                                    directive->filename);
-@@ -564,7 +564,7 @@
-         GV *gv = gv_fetchpv("0", TRUE, SVt_PV);
-         ENTER;SAVETMPS;
-         save_scalar(gv); /* local $0 */
--#if PERL_REVISION == 5 && PERL_VERSION >= 9
-+#if MP_PERL_VERSION_AT_LEAST(5, 9, 0)
-         TAINT_NOT; /* XXX: temp workaround, see my p5p post */
- #endif
-         sv_setref_pv(server, "Apache2::ServerRec", (void*)s);
-@@ -619,7 +619,7 @@
- {
-     char line[MAX_STRING_LEN];
--    if (arg && *arg && !(MP_POD_FORMAT(arg) || strstr("pod", arg))) {  
-+    if (arg && *arg && !(MP_POD_FORMAT(arg) || strstr("pod", arg))) {
-         return "Unknown =back format";
-     }
-@@ -660,7 +660,7 @@
- {
-     const char *errmsg;
--    MP_TRACE_d(MP_FUNC, "PerlLoadModule %s\n", arg);
-+    MP_TRACE_d(MP_FUNC, "PerlLoadModule %s", arg);
-     /* we must init earlier than normal */
-     modperl_run();
-@@ -822,7 +822,7 @@
-     MP_dSCFG(parms->server); \
-     int item = atoi(arg); \
-     scfg->interp_pool_cfg->xitem = item; \
--    MP_TRACE_d(MP_FUNC, "%s %d\n", parms->cmd->name, item); \
-+    MP_TRACE_d(MP_FUNC, "%s %d", parms->cmd->name, item); \
-     return NULL; \
- }
-Index: src/modules/perl/modperl_time.h
-===================================================================
---- src/modules/perl/modperl_time.h    (.../tags/2_0_3)        (revision 630610)
-+++ src/modules/perl/modperl_time.h    (.../trunk)     (revision 630610)
-@@ -44,7 +44,7 @@
-         double stime = \
-              (double)(end_time.tms_stime - start_time.tms_stime)/MP_HZ; \
-         if (utime || stime) { \
--            MP_TRACE_t(MP_FUNC, "%s %5.2f user %5.2f sys\n", \
-+            MP_TRACE_t(MP_FUNC, "%s %5.2f user %5.2f sys", \
-                        label, utime, stime); \
-         } \
-     })
-Index: xs/modperl_xs_util.h
-===================================================================
---- xs/modperl_xs_util.h       (.../tags/2_0_3)        (revision 630610)
-+++ xs/modperl_xs_util.h       (.../trunk)     (revision 630610)
-@@ -73,7 +73,7 @@
- #define mpxs_sv_object_deref(sv, type)                  \
-     (mpxs_sv_is_object(sv) ?                            \
--        INT2PTR(type *, SvIVX((SV*)SvRV(sv))) : NULL) 
-+        INT2PTR(type *, SvIVX((SV*)SvRV(sv))) : NULL)
- #define mpxs_sv2_obj(obj, sv)                   \
-     (obj = mp_xs_sv2_##obj(sv))
-Index: xs/maps/apache2_structures.map
-===================================================================
---- xs/maps/apache2_structures.map     (.../tags/2_0_3)        (revision 630610)
-+++ xs/maps/apache2_structures.map     (.../trunk)     (revision 630610)
-@@ -12,7 +12,7 @@
- <  next
- <  prev
- <  main
--<  the_request
-+   the_request
-    assbackwards
- ~  proxyreq
- <  header_only
-Index: xs/maps/apr_types.map
-===================================================================
---- xs/maps/apr_types.map      (.../tags/2_0_3)        (revision 630610)
-+++ xs/maps/apr_types.map      (.../trunk)     (revision 630610)
-@@ -102,7 +102,7 @@
- struct apr_thread_mutex_t    | APR::ThreadMutex
- struct apr_thread_once_t     | UNDEFINED
- struct apr_thread_cond_t     | UNDEFINED
--struct apr_thread_rwlock_t   | UNDEFINED
-+struct apr_thread_rwlock_t   | APR::ThreadRWLock
- #signal stuff
- apr_signum_t                 | UNDEFINED
-Index: xs/maps/apr_functions.map
-===================================================================
---- xs/maps/apr_functions.map  (.../tags/2_0_3)        (revision 630610)
-+++ xs/maps/apr_functions.map  (.../trunk)     (revision 630610)
-@@ -397,9 +397,9 @@
-  apr_thread_cond_pool_get
-  apr_thread_cond_timedwait
---MODULE=APR::ThreadRWLock
-- apr_thread_rwlock_create
-- apr_thread_rwlock_destroy
-+MODULE=APR::ThreadRWLock   PREFIX=apr_thread_rwlock_
-+ SV *:apr_thread_rwlock_create | mpxs_ | SV *:classname, SV *:p_sv | new
-+ void:apr_thread_rwlock_destroy | | | apr_thread_rwlock_DESTROY
-  apr_thread_rwlock_rdlock
-  apr_thread_rwlock_tryrdlock
-  apr_thread_rwlock_trywrlock
-Index: xs/maps/apache2_functions.map
-===================================================================
---- xs/maps/apache2_functions.map      (.../tags/2_0_3)        (revision 630610)
-+++ xs/maps/apache2_functions.map      (.../trunk)     (revision 630610)
-@@ -176,6 +176,8 @@
- !ap_get_local_host
- ~ap_get_server_built
- ~ap_get_server_version
-+~ap_get_server_banner
-+~ap_get_server_description
- ~ap_server_root
-Index: xs/APR/APR/Makefile.PL
-===================================================================
---- xs/APR/APR/Makefile.PL     (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/APR/Makefile.PL     (.../trunk)     (revision 630610)
-@@ -15,7 +15,7 @@
- my %args;
--%args = map { split /=/, $_ } @ARGV;
-+%args = map { split /=/, $_, 2 } @ARGV;
- $args{NAME}         = 'APR';
- $args{VERSION_FROM} = 'APR.pm';
-Index: xs/APR/Base64/APR__Base64.h
-===================================================================
---- xs/APR/Base64/APR__Base64.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/Base64/APR__Base64.h        (.../trunk)     (revision 630610)
-@@ -17,7 +17,7 @@
- /* apr_base64_encode_len and apr_base64_encode_binary give length that
-  * includes the terminating '\0' */
- #define mpxs_APR__Base64_encode_len(len) (apr_base64_encode_len(len) - 1)
--    
-+
- static MP_INLINE void mpxs_apr_base64_encode(pTHX_ SV *sv, SV *arg)
- {
-     STRLEN len;
-Index: xs/APR/Table/APR__Table.h
-===================================================================
---- xs/APR/Table/APR__Table.h  (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/Table/APR__Table.h  (.../trunk)     (revision 630610)
-@@ -91,8 +91,8 @@
-     return rv;
- }
--static MP_INLINE 
--int mpxs_apr_table_do(pTHX_ I32 items, SV **MARK, SV **SP) 
-+static MP_INLINE
-+int mpxs_apr_table_do(pTHX_ I32 items, SV **MARK, SV **SP)
- {
-     apr_table_t *table;
-     SV *sub;
-@@ -119,8 +119,8 @@
-         }
-     }
--    /* XXX: would be nice to be able to call apr_table_vdo directly, 
--     * but I don't think it's possible to create/populate something 
-+    /* XXX: would be nice to be able to call apr_table_vdo directly,
-+     * but I don't think it's possible to create/populate something
-      * that smells like a va_list with our list of filters specs
-      */
-@@ -154,7 +154,7 @@
-                    "first argument not an APR::Table object");
-     }
--    t = INT2PTR(apr_table_t *, SvIVX(SvRV(rv))); 
-+    t = INT2PTR(apr_table_t *, SvIVX(SvRV(rv)));
-     if (apr_is_empty_table(t)) {
-         return NULL;
-Index: xs/APR/Socket/APR__Socket.h
-===================================================================
---- xs/APR/Socket/APR__Socket.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/Socket/APR__Socket.h        (.../trunk)     (revision 630610)
-@@ -59,7 +59,7 @@
- apr_interval_time_t mpxs_apr_socket_timeout_get(pTHX_ I32 items,
-                                                 SV **MARK, SV **SP)
- {
--    apr_interval_time_t       t;
-+    apr_interval_time_t t;
-     APR__Socket APR__Socket;
-     /* this also magically assings to APR_Socket ;-) */
-Index: xs/APR/Lock/APR__Lock.h
-===================================================================
---- xs/APR/Lock/APR__Lock.h    (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/Lock/APR__Lock.h    (.../trunk)     (revision 630610)
-@@ -13,4 +13,3 @@
-  * See the License for the specific language governing permissions and
-  * limitations under the License.
-  */
--
-Index: xs/APR/BucketAlloc/APR__BucketAlloc.h
-===================================================================
---- xs/APR/BucketAlloc/APR__BucketAlloc.h      (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/BucketAlloc/APR__BucketAlloc.h      (.../trunk)     (revision 630610)
-@@ -27,4 +27,3 @@
-     mpxs_add_pool_magic(ba_sv, p_sv);
-     return ba_sv;
- }
--
-Index: xs/APR/Error/APR__Error.h
-===================================================================
---- xs/APR/Error/APR__Error.h  (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/Error/APR__Error.h  (.../trunk)     (revision 630610)
-@@ -15,4 +15,3 @@
-  */
- #define mpxs_APR__Error_strerror(rc) modperl_error_strerror(aTHX_ rc)
--
-Index: xs/APR/ThreadRWLock/APR__ThreadRWLock.h
-===================================================================
---- xs/APR/ThreadRWLock/APR__ThreadRWLock.h    (.../tags/2_0_3)        (revision 0)
-+++ xs/APR/ThreadRWLock/APR__ThreadRWLock.h    (.../trunk)     (revision 630610)
-@@ -0,0 +1,29 @@
-+/* Licensed to the Apache Software Foundation (ASF) under one or more
-+ * contributor license agreements.  See the NOTICE file distributed with
-+ * this work for additional information regarding copyright ownership.
-+ * The ASF licenses this file to You under the Apache License, Version 2.0
-+ * (the "License"); you may not use this file except in compliance with
-+ * the License.  You may obtain a copy of the License at
-+ *
-+ *     http://www.apache.org/licenses/LICENSE-2.0
-+ *
-+ * Unless required by applicable law or agreed to in writing, software
-+ * distributed under the License is distributed on an "AS IS" BASIS,
-+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-+ * See the License for the specific language governing permissions and
-+ * limitations under the License.
-+ */
-+
-+#define apr_thread_rwlock_DESTROY apr_thread_rwlock_destroy
-+
-+static MP_INLINE
-+SV *mpxs_apr_thread_rwlock_create(pTHX_ SV *classname, SV *p_sv)
-+{
-+    apr_pool_t *p = mp_xs_sv2_APR__Pool(p_sv);
-+    apr_thread_rwlock_t *rwlock = NULL;
-+    SV *rwlock_sv;
-+    (void)apr_thread_rwlock_create(&rwlock, p);
-+    rwlock_sv = sv_setref_pv(NEWSV(0, 0), "APR::ThreadRWLock", (void*)rwlock);
-+    mpxs_add_pool_magic(rwlock_sv, p_sv);
-+    return rwlock_sv;
-+}
-Index: xs/APR/PerlIO/modperl_apr_perlio.c
-===================================================================
---- xs/APR/PerlIO/modperl_apr_perlio.c (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/PerlIO/modperl_apr_perlio.c (.../trunk)     (revision 630610)
-@@ -86,7 +86,7 @@
-     switch (*mode) {
-       case 'a':
-         apr_flag = APR_APPEND | APR_CREATE;
--        break; 
-+        break;
-       case 'w':
-         apr_flag = APR_WRITE | APR_CREATE | APR_TRUNCATE;
-         break;
-@@ -176,7 +176,7 @@
-     rc = apr_file_read(st->file, vbuf, &count);
--    MP_TRACE_o(MP_FUNC, "%db [%s]\n", (int)count,
-+    MP_TRACE_o(MP_FUNC, "%db [%s]", (int)count,
-                MP_TRACE_STR_TRUNC(st->pool, (char *)vbuf, (int)count));
-     if (rc == APR_EOF) {
-@@ -184,7 +184,7 @@
-         return count;
-     }
-     else if (rc != APR_SUCCESS) {
--        modperl_croak(aTHX_ rc, "APR::PerlIO::read");  
-+        modperl_croak(aTHX_ rc, "APR::PerlIO::read");
-     }
-     return count;
-@@ -195,7 +195,7 @@
-     PerlIOAPR *st = PerlIOSelf(f, PerlIOAPR);
-     apr_status_t rc;
--    MP_TRACE_o(MP_FUNC, "%db [%s]\n", (int)count,
-+    MP_TRACE_o(MP_FUNC, "%db [%s]", (int)count,
-                MP_TRACE_STR_TRUNC(st->pool, (char *)vbuf, (int)count));
-     rc = apr_file_write(st->file, vbuf, &count);
-@@ -294,7 +294,7 @@
-         apr_file_name_get(&new_path, st->file);
-     }
--    rc = apr_os_file_get(&os_file, st->file); 
-+    rc = apr_os_file_get(&os_file, st->file);
-     if (rc != APR_SUCCESS) {
-         Perl_croak(aTHX_ "filedes retrieval failed!");
-     }
-@@ -408,7 +408,7 @@
-     PerlIOAPR_read,
-     PerlIOBase_unread,
-     PerlIOAPR_write,
--    PerlIOAPR_seek, 
-+    PerlIOAPR_seek,
-     PerlIOAPR_tell,
-     PerlIOAPR_close,
-     PerlIOAPR_flush,            /* flush */
-@@ -475,7 +475,7 @@
-         apr_os_file_t os_file;
-         /* convert to the OS representation of file */
--        rc = apr_os_file_get(&os_file, file); 
-+        rc = apr_os_file_get(&os_file, file);
-         if (rc != APR_SUCCESS) {
-             croak("filedes retrieval failed!");
-         }
-@@ -495,10 +495,10 @@
- static SV *modperl_apr_perlio_PerlIO_to_glob(pTHX_ PerlIO *pio,
-                                              modperl_apr_perlio_hook_e type)
- {
--    SV *retval = modperl_perl_gensym(aTHX_ "APR::PerlIO"); 
--    GV *gv = (GV*)SvRV(retval); 
-+    SV *retval = modperl_perl_gensym(aTHX_ "APR::PerlIO");
-+    GV *gv = (GV*)SvRV(retval);
--    gv_IOadd(gv); 
-+    gv_IOadd(gv);
-     switch (type) {
-       case MODPERL_APR_PERLIO_HOOK_WRITE:
-@@ -553,7 +553,7 @@
-     };
-     /* convert to the OS representation of file */
--    rc = apr_os_file_get(&os_file, file); 
-+    rc = apr_os_file_get(&os_file, file);
-     if (rc != APR_SUCCESS) {
-         Perl_croak(aTHX_ "filedes retrieval failed!");
-     }
-@@ -563,8 +563,8 @@
-     /* let's try without the dup, it seems to work fine:
-        fd = PerlLIO_dup(os_file);
--       MP_TRACE_o(MP_FUNC, "fd old: %d, new %d\n", os_file, fd);
--       if (!(retval = PerlIO_fdopen(fd, mode))) { 
-+       MP_TRACE_o(MP_FUNC, "fd old: %d, new %d", os_file, fd);
-+       if (!(retval = PerlIO_fdopen(fd, mode))) {
-        ...
-        }
-@@ -576,22 +576,22 @@
-     */
--    if (!(retval = PerlIO_fdopen(os_file, mode))) { 
-+    if (!(retval = PerlIO_fdopen(os_file, mode))) {
-         PerlLIO_close(fd);
-         Perl_croak(aTHX_ "fdopen failed!");
--    } 
-+    }
-     return retval;
- }
--SV *modperl_apr_perlio_apr_file_to_glob(pTHX_ apr_file_t *file, 
-+SV *modperl_apr_perlio_apr_file_to_glob(pTHX_ apr_file_t *file,
-                                         apr_pool_t *pool,
-                                         modperl_apr_perlio_hook_e type)
- {
--    SV *retval = modperl_perl_gensym(aTHX_ "APR::PerlIO"); 
--    GV *gv = (GV*)SvRV(retval); 
-+    SV *retval = modperl_perl_gensym(aTHX_ "APR::PerlIO");
-+    GV *gv = (GV*)SvRV(retval);
--    gv_IOadd(gv); 
-+    gv_IOadd(gv);
-     switch (type) {
-       case MODPERL_APR_PERLIO_HOOK_WRITE:
-@@ -616,4 +616,3 @@
- }
- #endif /* PERLIO_LAYERS */
--
-Index: xs/APR/PerlIO/modperl_apr_perlio.h
-===================================================================
---- xs/APR/PerlIO/modperl_apr_perlio.h (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/PerlIO/modperl_apr_perlio.h (.../trunk)     (revision 630610)
-@@ -19,7 +19,7 @@
- #ifdef PERLIO_LAYERS
- #include "perliol.h"
--#else 
-+#else
- #include "iperlsys.h"
- #endif
-@@ -54,7 +54,7 @@
- #ifndef MP_SOURCE_SCAN
- #ifdef PERLIO_LAYERS
--PerlIO *modperl_apr_perlio_apr_file_to_PerlIO(pTHX_ apr_file_t *file, 
-+PerlIO *modperl_apr_perlio_apr_file_to_PerlIO(pTHX_ apr_file_t *file,
-                                               apr_pool_t *pool,
-                                               modperl_apr_perlio_hook_e type);
- APR_DECLARE_OPTIONAL_FN(PerlIO *,
-@@ -64,7 +64,7 @@
- #endif /* PERLIO_LAYERS */
--SV *modperl_apr_perlio_apr_file_to_glob(pTHX_ apr_file_t *file, 
-+SV *modperl_apr_perlio_apr_file_to_glob(pTHX_ apr_file_t *file,
-                                         apr_pool_t *pool,
-                                         modperl_apr_perlio_hook_e type);
- APR_DECLARE_OPTIONAL_FN(SV *,
-Index: xs/APR/Brigade/APR__Brigade.h
-===================================================================
---- xs/APR/Brigade/APR__Brigade.h      (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/Brigade/APR__Brigade.h      (.../trunk)     (revision 630610)
-@@ -97,7 +97,7 @@
- static MP_INLINE
- apr_pool_t *mpxs_APR__Brigade_pool(apr_bucket_brigade *brigade)
- {
--    /* eesh, it's r->pool, and c->pool, but bb->p 
-+    /* eesh, it's r->pool, and c->pool, but bb->p
-      * let's make Perl consistent, otherwise this could be autogenerated
-      */
-Index: xs/APR/URI/APR__URI.h
-===================================================================
---- xs/APR/URI/APR__URI.h      (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/URI/APR__URI.h      (.../trunk)     (revision 630610)
-@@ -47,7 +47,7 @@
-     uri_sv = sv_setref_pv(NEWSV(0, 0), "APR::URI", (void*)uri);
-     mpxs_add_pool_magic(uri_sv, p_sv);
--    
-+
-     return uri_sv;
- }
-Index: xs/APR/Finfo/APR__Finfo.h
-===================================================================
---- xs/APR/Finfo/APR__Finfo.h  (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/Finfo/APR__Finfo.h  (.../trunk)     (revision 630610)
-@@ -21,12 +21,12 @@
-     apr_pool_t *p = mp_xs_sv2_APR__Pool(p_sv);
-     apr_finfo_t *finfo = (apr_finfo_t *)apr_pcalloc(p, sizeof(apr_finfo_t));
-     SV *finfo_sv;
--    
-+
-     MP_RUN_CROAK(apr_stat(finfo, fname, wanted, p),
-                  "APR::Finfo::stat");
-     finfo_sv = sv_setref_pv(NEWSV(0, 0), "APR::Finfo", (void*)finfo);
-     mpxs_add_pool_magic(finfo_sv, p_sv);
--    
-+
-     return finfo_sv;
- }
-Index: xs/APR/String/APR__String.h
-===================================================================
---- xs/APR/String/APR__String.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/String/APR__String.h        (.../trunk)     (revision 630610)
-@@ -21,5 +21,5 @@
-     apr_strfsize(size, buff);
--    return newSVpvn(buff, 4);    
-+    return newSVpvn(buff, 4);
- }
-Index: xs/APR/Pool/APR__Pool.h
-===================================================================
---- xs/APR/Pool/APR__Pool.h    (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/Pool/APR__Pool.h    (.../trunk)     (revision 630610)
-@@ -39,10 +39,12 @@
-  */
- #ifndef MP_SOURCE_SCAN
-+#ifdef USE_ITHREADS
- #include "apr_optional.h"
--static
- APR_OPTIONAL_FN_TYPE(modperl_interp_unselect) *modperl_opt_interp_unselect;
-+APR_OPTIONAL_FN_TYPE(modperl_thx_interp_get) *modperl_opt_thx_interp_get;
- #endif
-+#endif
- #define MP_APR_POOL_SV_HAS_OWNERSHIP(sv) mpxs_pool_is_custom(sv)
-@@ -64,7 +66,7 @@
-     mg_free(acct->sv);                                              \
-     SvIVX(acct->sv) = 0;                                            \
- } STMT_END
--    
-+
- #ifdef USE_ITHREADS
- #define MP_APR_POOL_SV_DROPS_OWNERSHIP(acct) STMT_START {               \
-@@ -95,8 +97,10 @@
-     /* make sure interpreter is not putback into the mip                \
-      * until this cleanup has run.                                      \
-      */                                                                 \
--    if ((acct->interp = MP_THX_INTERP_GET(aTHX))) {                     \
--        acct->interp->refcnt++;                                         \
-+    if (modperl_opt_thx_interp_get) {                                   \
-+        if ((acct->interp = modperl_opt_thx_interp_get(aTHX))) {        \
-+            acct->interp->refcnt++;                                     \
-+        }                                                               \
-     }                                                                   \
- } STMT_END
-@@ -152,7 +156,7 @@
-     apr_pool_t *parent_pool = mpxs_sv_object_deref(parent_pool_obj, apr_pool_t);
-     apr_pool_t *child_pool  = NULL;
--    MP_POOL_TRACE(MP_FUNC, "parent pool 0x%lx\n", (unsigned long)parent_pool);
-+    MP_POOL_TRACE(MP_FUNC, "parent pool 0x%l", (unsigned long)parent_pool);
-     (void)apr_pool_create(&child_pool, parent_pool);
- #if APR_POOL_DEBUG
-@@ -176,11 +180,11 @@
-         apr_pool_t *pp;
-         while ((pp = apr_pool_parent_get(p))) {
--            MP_POOL_TRACE(MP_FUNC, "parent 0x%lx, child 0x%lx\n",
-+            MP_POOL_TRACE(MP_FUNC, "parent 0x%lx, child 0x%lx",
-                     (unsigned long)pp, (unsigned long)p);
-             if (apr_pool_is_ancestor(pp, p)) {
--                MP_POOL_TRACE(MP_FUNC, "0x%lx is a subpool of 0x%lx\n",
-+                MP_POOL_TRACE(MP_FUNC, "0x%lx is a subpool of 0x%lx",
-                         (unsigned long)p, (unsigned long)pp);
-             }
-             p = pp;
-@@ -217,7 +221,7 @@
-         if (parent_pool) {
-             mpxs_add_pool_magic(rv, parent_pool_obj);
-         }
--        
-+
-         return rv;
-     }
- }
-@@ -335,8 +339,10 @@
-     /* make sure interpreter is not putback into the mip
-      * until this cleanup has run.
-      */
--    if ((data->interp = MP_THX_INTERP_GET(data->perl))) {
--        data->interp->refcnt++;
-+    if (modperl_opt_thx_interp_get) {
-+        if ((data->interp = modperl_opt_thx_interp_get(data->perl))) {
-+            data->interp->refcnt++;
-+        }
-     }
- #endif
-@@ -374,4 +380,3 @@
-         apr_pool_destroy(p);
-     }
- }
--
-Index: xs/APR/Bucket/APR__Bucket.h
-===================================================================
---- xs/APR/Bucket/APR__Bucket.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/APR/Bucket/APR__Bucket.h        (.../trunk)     (revision 630610)
-@@ -119,6 +119,6 @@
-      * by modperl_bucket_sv_setaside) if the pool goes out of scope,
-      * copying the data to the heap.
-      */
--    
-+
-     return rc;
- }
-Index: xs/Apache2/RequestIO/Apache2__RequestIO.h
-===================================================================
---- xs/Apache2/RequestIO/Apache2__RequestIO.h  (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/RequestIO/Apache2__RequestIO.h  (.../trunk)     (revision 630610)
-@@ -97,7 +97,7 @@
-     mpxs_output_flush(r, rcfg, "Apache2::RequestIO::print");
-     return bytes ? newSVuv(bytes) : newSVpvn("0E0", 3);
--}  
-+}
- static MP_INLINE
- apr_size_t mpxs_ap_rprintf(pTHX_ I32 items, SV **MARK, SV **SP)
-@@ -129,7 +129,7 @@
-     mpxs_output_flush(r, rcfg, "Apache2::RequestIO::printf");
-     return bytes;
--}  
-+}
- /* alias */
- #define mpxs_Apache2__RequestRec_WRITE(r, buffer, len, offset) \
-@@ -252,7 +252,7 @@
-     if (total > 0) {
-         mpxs_sv_cur_set(buffer, offset+total);
--    } 
-+    }
-     else {
-         sv_setpvn(buffer, "", 0);
-     }
-Index: xs/Apache2/Log/Apache2__Log.h
-===================================================================
---- xs/Apache2/Log/Apache2__Log.h      (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/Log/Apache2__Log.h      (.../trunk)     (revision 630610)
-@@ -16,9 +16,9 @@
- static void mpxs_Apache2__Log_BOOT(pTHX)
- {
--    av_push(get_av("Apache2::Log::Request::ISA", TRUE), 
-+    av_push(get_av("Apache2::Log::Request::ISA", TRUE),
-             newSVpv("Apache2::Log", 12));
--    av_push(get_av("Apache2::Log::Server::ISA", TRUE), 
-+    av_push(get_av("Apache2::Log::Server::ISA", TRUE),
-             newSVpv("Apache2::Log", 12));
- }
-@@ -54,7 +54,7 @@
-         line = CopLINE(cop); /* (caller)[2] */
-     }
--    if ((s->loglevel >= lmask) && 
-+    if ((s->loglevel >= lmask) &&
-         SvROK(msg) && (SvTYPE(SvRV(msg)) == SVt_PVCV)) {
-         dSP;
-         ENTER;SAVETMPS;
-Index: xs/Apache2/RequestRec/Apache2__RequestRec.h
-===================================================================
---- xs/Apache2/RequestRec/Apache2__RequestRec.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/RequestRec/Apache2__RequestRec.h        (.../trunk)     (revision 630610)
-@@ -35,10 +35,10 @@
- SV *mpxs_Apache2__RequestRec_content_languages(pTHX_ request_rec *r,
-                                               SV *languages)
- {
--    SV *retval = modperl_apr_array_header2avrv(aTHX_ 
-+    SV *retval = modperl_apr_array_header2avrv(aTHX_
-                                                r->content_languages);
-     if (languages) {
--        r->content_languages = modperl_avrv2apr_array_header(aTHX_ 
-+        r->content_languages = modperl_avrv2apr_array_header(aTHX_
-                                                              r->pool,
-                                                              languages);
-     }
-@@ -52,11 +52,11 @@
-     if (!val && !r->proxyreq &&
-         r->parsed_uri.scheme &&
--      !(r->parsed_uri.hostname && 
--        strEQ(r->parsed_uri.scheme, ap_http_scheme(r)) &&
--        ap_matches_request_vhost(r, r->parsed_uri.hostname,
--                                   r->parsed_uri.port_str ? 
--                                   r->parsed_uri.port : 
-+        !(r->parsed_uri.hostname &&
-+          strEQ(r->parsed_uri.scheme, ap_http_scheme(r)) &&
-+          ap_matches_request_vhost(r, r->parsed_uri.hostname,
-+                                   r->parsed_uri.port_str ?
-+                                   r->parsed_uri.port :
-                                    ap_default_port(r))))
-     {
-         retval = r->proxyreq = 1;
-@@ -146,5 +146,3 @@
-     return RETVAL;
- }
--
--
-Index: xs/Apache2/Module/Apache2__Module.h
-===================================================================
---- xs/Apache2/Module/Apache2__Module.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/Module/Apache2__Module.h        (.../trunk)     (revision 630610)
-@@ -75,7 +75,7 @@
-     return mod->minor_version;
- }
--static MP_INLINE void mpxs_Apache2__Module_add(pTHX_ 
-+static MP_INLINE void mpxs_Apache2__Module_add(pTHX_
-                                               char *package,
-                                               SV *cmds)
- {
-@@ -90,7 +90,7 @@
-     error = modperl_module_add(s->process->pconf, s, package, cmds);
-     if (error) {
--        Perl_croak(aTHX_ "Apache2::Module::add(%s) failed : %s", 
-+        Perl_croak(aTHX_ "Apache2::Module::add(%s) failed : %s",
-                    package, error);
-     }
-Index: xs/Apache2/Filter/Apache2__Filter.h
-===================================================================
---- xs/Apache2/Filter/Apache2__Filter.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/Filter/Apache2__Filter.h        (.../trunk)     (revision 630610)
-@@ -32,8 +32,8 @@
-     mpxs_usage_va_1(modperl_filter, "$filter->print(...)");
--    MP_TRACE_f(MP_FUNC, "from %s\n",
--               ((modperl_filter_ctx_t *)modperl_filter->f->ctx)->handler->name);    
-+    MP_TRACE_f(MP_FUNC, "from %s",
-+               ((modperl_filter_ctx_t *)modperl_filter->f->ctx)->handler->name);
-     if (modperl_filter->mode == MP_OUTPUT_FILTER_MODE) {
-         mpxs_write_loop(modperl_output_filter_write,
-                         modperl_filter, "Apache2::Filter::print");
-@@ -57,7 +57,7 @@
-     mpxs_usage_va_2(modperl_filter, buffer, "$filter->read(buf, [len])");
--    MP_TRACE_f(MP_FUNC, "from %s\n",
-+    MP_TRACE_f(MP_FUNC, "from %s",
-                ((modperl_filter_ctx_t *)modperl_filter->f->ctx)->handler->name);
-     if (items > 2) {
-@@ -86,14 +86,14 @@
-     return len;
- }
--static MP_INLINE U32 *modperl_filter_attributes(SV *package, SV *cvrv)
-+static MP_INLINE U16 *modperl_filter_attributes(pTHX_ SV *package, SV *cvrv)
- {
--    return (U32 *)&MP_CODE_ATTRS(SvRV(cvrv));
-+    return modperl_code_attrs(aTHX_ (CV*)SvRV(cvrv));
- }
- #ifdef MP_TRACE
- #define trace_attr()                                                       \
--    MP_TRACE_f(MP_FUNC, "applied %s attribute to %s handler\n", attribute, \
-+    MP_TRACE_f(MP_FUNC, "applied %s attribute to %s handler", attribute, \
-                HvNAME(stash))
- #else
- #define trace_attr()
-@@ -118,7 +118,7 @@
- MP_STATIC XS(MPXS_modperl_filter_attributes)
- {
-     dXSARGS;
--    U32 *attrs = modperl_filter_attributes(ST(0), ST(1));
-+    U16 *attrs = modperl_filter_attributes(aTHX_ ST(0), ST(1));
-     I32 i;
- #ifdef MP_TRACE
-     HV *stash = gv_stashsv(ST(0), TRUE);
-@@ -295,7 +295,7 @@
-     if (!modperl_filter) {
-         f = INT2PTR(ap_filter_t *, SvIV(SvRV(*MARK)));
-         MP_TRACE_f(MP_FUNC,
--                   "   %s\n\n\t non-modperl filter removes itself\n",
-+                   "   %s\n\n\t non-modperl filter removes itself",
-                    f->frec->name);
-         /* the filter can reside in only one chain. hence we try to
-@@ -310,7 +310,7 @@
-     f = modperl_filter->f;
--    MP_TRACE_f(MP_FUNC, "   %s\n\n\tfilter removes itself\n",
-+    MP_TRACE_f(MP_FUNC, "   %s\n\n\tfilter removes itself",
-                ((modperl_filter_ctx_t *)f->ctx)->handler->name);
-     if (modperl_filter->mode == MP_INPUT_FILTER_MODE) {
-Index: xs/Apache2/RequestUtil/Apache2__RequestUtil.h
-===================================================================
---- xs/Apache2/RequestUtil/Apache2__RequestUtil.h      (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/RequestUtil/Apache2__RequestUtil.h      (.../trunk)     (revision 630610)
-@@ -81,7 +81,7 @@
-     r->server     = s;
-     r->request_time = apr_time_now();
--    
-+
-     r->user            = NULL;
-     r->ap_auth_type    = NULL;
-@@ -125,7 +125,7 @@
-     if (base_pool_sv) {
-         mpxs_add_pool_magic(r_sv, base_pool_sv);
-     }
--    
-+
-     return r_sv;
- }
-@@ -320,7 +320,7 @@
-         struct mp_docroot_info *di;
-         core_server_config *conf;
-         MP_CROAK_IF_THREADS_STARTED("setting $r->document_root");
--        conf = ap_get_module_config(r->server->module_config, 
-+        conf = ap_get_module_config(r->server->module_config,
-                                     &core_module);
-         di = apr_palloc(r->pool, sizeof *di);
-         di->docroot = &conf->ap_document_root;
-@@ -340,7 +340,7 @@
-     /* On the first pass, re-register so we end up last */
-     if (data) {
-         apr_pool_cleanup_register(pool, NULL, child_terminate,
--                                  apr_pool_cleanup_null);    
-+                                  apr_pool_cleanup_null);
-     }
-     else {
-         exit(0);
-Index: xs/Apache2/SubProcess/Apache2__SubProcess.h
-===================================================================
---- xs/Apache2/SubProcess/Apache2__SubProcess.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/SubProcess/Apache2__SubProcess.h        (.../trunk)     (revision 630610)
-@@ -68,7 +68,7 @@
-     if (FAILED(apr_procattr_create(&procattr, p)) ||
-         FAILED(apr_procattr_io_set(procattr, e_info.in_pipe,
-                                    e_info.out_pipe, e_info.err_pipe)) ||
--        FAILED(apr_procattr_dir_set(procattr, 
-+        FAILED(apr_procattr_dir_set(procattr,
-                                     ap_make_dirstr_parent(r->pool,
-                                                           r->filename))) ||
-         FAILED(apr_procattr_cmdtype_set(procattr, e_info.cmd_type)))
-Index: xs/Apache2/MPM/Apache2__MPM.h
-===================================================================
---- xs/Apache2/MPM/Apache2__MPM.h      (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/MPM/Apache2__MPM.h      (.../trunk)     (revision 630610)
-@@ -38,7 +38,7 @@
-     apr_status_t retval = ap_mpm_query(AP_MPMQ_IS_THREADED, &mpm_query_info);
-     if (retval == APR_SUCCESS) {
--        MP_TRACE_g(MP_FUNC, "defined Apache2::MPM->is_threaded() as %i\n", 
-+        MP_TRACE_g(MP_FUNC, "defined Apache2::MPM->is_threaded() as %i",
-                    mpm_query_info);
-         newCONSTSUB(PL_defstash, "Apache2::MPM::is_threaded",
-@@ -46,13 +46,13 @@
-     }
-     else {
-         /* assign false (0) to sub if ap_mpm_query didn't succeed */
--        MP_TRACE_g(MP_FUNC, "defined Apache2::MPM->is_threaded() as 0\n");
-+        MP_TRACE_g(MP_FUNC, "defined Apache2::MPM->is_threaded() as 0");
-         newCONSTSUB(PL_defstash, "Apache2::MPM::is_threaded",
-                     newSViv(0));
-     }
--    MP_TRACE_g(MP_FUNC, "defined Apache2::MPM->show() as %s\n",
-+    MP_TRACE_g(MP_FUNC, "defined Apache2::MPM->show() as %s",
-                ap_show_mpm());
-     newCONSTSUB(PL_defstash, "Apache2::MPM::show",
-Index: xs/Apache2/ConnectionUtil/Apache2__ConnectionUtil.h
-===================================================================
---- xs/Apache2/ConnectionUtil/Apache2__ConnectionUtil.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/ConnectionUtil/Apache2__ConnectionUtil.h        (.../trunk)     (revision 630610)
-@@ -20,7 +20,7 @@
-     MP_dCCFG;
-     modperl_config_con_init(c, ccfg);
--    
-+
-     if (!ccfg) {
-         return &PL_sv_undef;
-     }
-Index: xs/Apache2/Connection/Apache2__Connection.h
-===================================================================
---- xs/Apache2/Connection/Apache2__Connection.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/Connection/Apache2__Connection.h        (.../trunk)     (revision 630610)
-@@ -40,4 +40,3 @@
- {
-     return ap_get_remote_host(c, (void *)dir_config, type, NULL);
- }
--
-Index: xs/Apache2/Access/Apache2__Access.h
-===================================================================
---- xs/Apache2/Access/Apache2__Access.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/Access/Apache2__Access.h        (.../trunk)     (revision 630610)
-@@ -37,16 +37,16 @@
-         hv = newHV();
--        hv_store(hv, "method_mask", 11, 
-+        hv_store(hv, "method_mask", 11,
-                  newSViv((IV)reqs[x].method_mask), 0);
--        hv_store(hv, "requirement", 11, 
-+        hv_store(hv, "requirement", 11,
-                  newSVpv(reqs[x].requirement,0), 0);
-         av_push(av, newRV_noinc((SV*)hv));
-     }
--    return newRV_noinc((SV*)av); 
-+    return newRV_noinc((SV*)av);
- }
- static MP_INLINE
-@@ -81,7 +81,7 @@
-     errmsg =
-         modperl_config_insert_request(aTHX_ r,
-                                       newRV_noinc((SV*)config),
--                                      OR_AUTHCFG, NULL, 
-+                                      OR_AUTHCFG, NULL,
-                                       MP_HTTPD_OVERRIDE_OPTS_UNSET);
-     if (errmsg) {
-@@ -147,7 +147,7 @@
- int mpxs_Apache2__RequestRec_allow_override_opts(pTHX_ request_rec *r)
- {
- #ifdef MP_HTTPD_HAS_OVERRIDE_OPTS
--    core_dir_config *cfg = ap_get_module_config(r->per_dir_config, 
-+    core_dir_config *cfg = ap_get_module_config(r->per_dir_config,
-                                                 &core_module);
-     return cfg->override_opts;
- #else
-Index: xs/Apache2/SubRequest/Apache2__SubRequest.h
-===================================================================
---- xs/Apache2/SubRequest/Apache2__SubRequest.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/SubRequest/Apache2__SubRequest.h        (.../trunk)     (revision 630610)
-@@ -23,8 +23,10 @@
-     if (r->main) {
-         modperl_config_req_t *rcfg = modperl_config_req_get(r->main);
--        MP_RUN_CROAK(modperl_wbucket_flush(rcfg->wbucket, FALSE),
--                     "Apache2::SubRequest::run");
-+        if (rcfg->wbucket) {
-+            MP_RUN_CROAK(modperl_wbucket_flush(rcfg->wbucket, FALSE),
-+                         "Apache2::SubRequest::run");
-+        }
-     }
-     return ap_run_sub_req(r);
-Index: xs/Apache2/ServerUtil/Apache2__ServerUtil.h
-===================================================================
---- xs/Apache2/ServerUtil/Apache2__ServerUtil.h        (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/ServerUtil/Apache2__ServerUtil.h        (.../trunk)     (revision 630610)
-@@ -195,4 +195,10 @@
-     newCONSTSUB(PL_defstash, "Apache2::ServerUtil::get_server_version",
-                 newSVpv(ap_get_server_version(), 0));
-+
-+    newCONSTSUB(PL_defstash, "Apache2::ServerUtil::get_server_banner",
-+                newSVpv(ap_get_server_banner(), 0));
-+
-+    newCONSTSUB(PL_defstash, "Apache2::ServerUtil::get_server_description",
-+                newSVpv(ap_get_server_description(), 0));
- }
-Index: xs/Apache2/CmdParms/Apache2__CmdParms.h
-===================================================================
---- xs/Apache2/CmdParms/Apache2__CmdParms.h    (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/CmdParms/Apache2__CmdParms.h    (.../trunk)     (revision 630610)
-@@ -25,7 +25,7 @@
-         return newSVpv(data, 0);
-     }
--    return &PL_sv_undef;    
-+    return &PL_sv_undef;
- }
- static MP_INLINE
-Index: xs/Apache2/Directive/Apache2__Directive.h
-===================================================================
---- xs/Apache2/Directive/Apache2__Directive.h  (.../tags/2_0_3)        (revision 630610)
-+++ xs/Apache2/Directive/Apache2__Directive.h  (.../trunk)     (revision 630610)
-@@ -35,8 +35,8 @@
- /* Adds an entry to a hash, vivifying hash/array for multiple entries */
--static void hash_insert(pTHX_ HV *hash, const char *key, 
--                        int keylen, const char *args, 
-+static void hash_insert(pTHX_ HV *hash, const char *key,
-+                        int keylen, const char *args,
-                         int argslen, SV *value)
- {
-     HV *subhash;
-@@ -73,7 +73,7 @@
- }
- static MP_INLINE SV *mpxs_Apache2__Directive_as_hash(pTHX_
--                                                    ap_directive_t *tree)      
-+                                                    ap_directive_t *tree)
- {
-     const char *directive;
-     int directive_len;
-@@ -103,12 +103,12 @@
-             }
-             subtree = mpxs_Apache2__Directive_as_hash(aTHX_ tree->first_child);
--            hash_insert(aTHX_ hash, directive, directive_len, 
-+            hash_insert(aTHX_ hash, directive, directive_len,
-                         args, args_len, subtree);
-         }
-         else {
--            hash_insert(aTHX_ hash, directive, directive_len, 
--                        args, args_len, Nullsv);   
-+            hash_insert(aTHX_ hash, directive, directive_len,
-+                        args, args_len, Nullsv);
-         }
-         tree = tree->next;
-@@ -122,7 +122,7 @@
-     dXSARGS;
-     if (items < 2 || items > 3) {
--          Perl_croak(aTHX_
-+            Perl_croak(aTHX_
-                        "Usage: Apache2::Directive::lookup(self, key, [args])");
-     }
-@@ -137,20 +137,20 @@
-         char *key = (char *)SvPV_nolen(ST(1));
-         int scalar_context = (G_SCALAR == GIMME_V);
--          if (SvROK(ST(0)) && sv_derived_from(ST(0), "Apache2::Directive")) {
--              IV tmp = SvIV((SV*)SvRV(ST(0)));
--              tree = INT2PTR(Apache2__Directive,tmp);
--          }
--          else {
--              tree = ap_conftree;
-+            if (SvROK(ST(0)) && sv_derived_from(ST(0), "Apache2::Directive")) {
-+                IV tmp = SvIV((SV*)SvRV(ST(0)));
-+                tree = INT2PTR(Apache2__Directive,tmp);
-             }
-+            else {
-+                tree = ap_conftree;
-+            }
--          if (items < 3) {
--              value = NULL;
-+            if (items < 3) {
-+                value = NULL;
-             }
--          else {
--              value = (char *)SvPV_nolen(ST(2));
--          }
-+            else {
-+                value = (char *)SvPV_nolen(ST(2));
-+            }
-         while (tree) {
-             directive = tree->directive;
-Index: xs/tables/current/ModPerl/FunctionTable.pm
-===================================================================
---- xs/tables/current/ModPerl/FunctionTable.pm (.../tags/2_0_3)        (revision 630610)
-+++ xs/tables/current/ModPerl/FunctionTable.pm (.../trunk)     (revision 630610)
-@@ -1239,6 +1239,20 @@
-     ]
-   },
-   {
-+    'return_type' => 'U16 *',
-+    'name' => 'modperl_code_attrs',
-+    'args' => [
-+     {
-+        'type' => 'PerlInterpreter *',
-+        'name' => 'my_perl'
-+      },
-+      {
-+        'type' => 'CV *',
-+        'name' => 'cv'
-+      }
-+    ]
-+  },
-+  {
-     'return_type' => 'int',
-     'name' => 'modperl_config_apply_PerlModule',
-     'args' => [
-@@ -5030,7 +5044,31 @@
-     'args' => []
-   },
-   {
-+    'return_type' => 'modperl_interp_t *',
-+    'name' => 'modperl_thx_interp_get',
-+    'args' => [
-+      {
-+        'type' => 'PerlInterpreter *',
-+        'name' => 'thx',
-+      },
-+    ],
-+  },
-+  {
-     'return_type' => 'void',
-+    'name' => 'modperl_thx_interp_set',
-+    'args' => [
-+      {
-+        'type' => 'PerlInterpreter *',
-+        'name' => 'thx',
-+      },
-+      {
-+        'type' => 'modperl_interp_t *',
-+        'name' => 'interp',
-+      },
-+    ],
-+  },
-+  {
-+    'return_type' => 'void',
-     'name' => 'modperl_tipool_add',
-     'args' => [
-       {
-Index: xs/tables/current/Apache2/FunctionTable.pm
-===================================================================
---- xs/tables/current/Apache2/FunctionTable.pm (.../tags/2_0_3)        (revision 630610)
-+++ xs/tables/current/Apache2/FunctionTable.pm (.../trunk)     (revision 630610)
-@@ -1476,6 +1476,16 @@
-   },
-   {
-     'return_type' => 'const char *',
-+    'name' => 'ap_get_server_description',
-+    'args' => []
-+  },
-+  {
-+    'return_type' => 'const char *',
-+    'name' => 'ap_get_server_banner',
-+    'args' => []
-+  },
-+  {
-+    'return_type' => 'const char *',
-     'name' => 'ap_get_status_line',
-     'args' => [
-       {
-Index: BRANCHING
-===================================================================
---- BRANCHING  (.../tags/2_0_3)        (revision 630610)
-+++ BRANCHING  (.../trunk)     (revision 630610)
-@@ -1,53 +1,81 @@
- This doc explains how to create/work/re-merge svn branches
- #######################################
--### make a new branch               ###
-+### PREREQUISITE                    ###
- #######################################
--we will create a branch clone-skip-unstable
-+You need to have svnmerge installed and working
-+before you can proceed with rest of the instructions.
--tag before the branch:
-+You can find it here:
--  svn copy https://svn.apache.org/repos/asf/perl/modperl/trunk \
--    https://svn.apache.org/repos/asf/perl/modperl/tags/pre-clone-skip \
--    -m "tag before branching for CLONE_SKIP support"
-+http://www.orcaware.com/svn/wiki/Svnmerge.py
-+#######################################
-+### make a new branch               ###
-+#######################################
-+
-+we will create a branch mybranch
-+
- branch:
-   svn copy https://svn.apache.org/repos/asf/perl/modperl/trunk \
--    https://svn.apache.org/repos/asf/perl/modperl/branches/clone-skip-unstable \
--    -m "branching to provide CLONE_SKIP support"
-+    https://svn.apache.org/repos/asf/perl/modperl/branches/mybranch \
-+    -m "creating mybranch"
- check out:
--  svn co https://svn.apache.org/repos/asf/perl/modperl/branches/clone-skip-unstable mp2-clone-skip-unstable
-+  svn co https://svn.apache.org/repos/asf/perl/modperl/branches/mybranch
- change externals to point to the new A-T branch (if one was done)
-   svn propedit svn:externals .
--#######################################
--### sync the branch with the trunk  ###
--#######################################
-+initialize svnmerge tracking in the branch (if you plan to pull trunk/ changes into the branch)
--the branch was created @r165203
-+mybranch/ $> svnmerge init
-+property 'svnmerge-integrated' set on '.'
-+mybranch/ $> svn ci -F svnmerge-commit-message.txt 
--  svn co https://svn.apache.org/repos/asf/perl/modperl/branches/clone-skip-unstable \
--         mp2-clone-skip-unstable
--  cd mp2-clone-skip-unstable
--  svn propset merge-point 165203 .
--  build/svn.remerge
--now resolve any conflicts and commit the changes
-+initialize svnmerge tracking on the trunk:
--from now on, all you need to do is to run:
-+trunk/ $> svnmerge init https://svn.apache.org/repos/asf/perl/modperl/branches/mybranch
-+property 'svnmerge-integrated' set on '.'
-+mybranch/ $> svn ci -F svnmerge-commit-message.txt
--    build/svn.remerge
--as it automatically sets the merge-point during the last run
-+##############################################
-+### merging changes from branch to brahch  ###
-+##############################################
-+Work from a clean checkout of the branch you want to merge *to*
--#######################################
--### merge the branch into the trunk ###
--#######################################
-+Check on the availability of changes to merge
-+$> svnmerge avail -b -l
-+
-+------------------------------------------------------------------------
-+r584362 | gozer | 2007-10-12 21:00:47 -0700 (Fri, 12 Oct 2007) | 1 line
-+Changed paths:
-+   A /perl/modperl/branches/mybranch (from /perl/modperl/trunk:584361)
-+
-+creating mybranch
-+------------------------------------------------------------------------
-+r584363 | gozer | 2007-10-12 21:05:32 -0700 (Fri, 12 Oct 2007) | 3 lines
-+Changed paths:
-+   M /perl/modperl/branches/mybranch
-+
-+Initialized merge tracking via "svnmerge" with revisions "1-584361" from 
-+https://svn.apache.org/repos/asf/perl/modperl/trunk
-+
-+Then merge the ones you want to merge
-+
-+$> svnmerge -r 584362-584363
-+
-+review the changes, fix conflicts, etc
-+
-+Check in the merged version
-+
-+$> svn ci -F svnmerge-commit-message.txt
-+
-Index: build/svn.remerge
-===================================================================
---- build/svn.remerge  (.../tags/2_0_3)        (revision 630610)
-+++ build/svn.remerge  (.../trunk)     (revision 630610)
-@@ -1,28 +0,0 @@
--#!/bin/bash
--# automatic SVN merging
--#
--# when used for the first time, first run:
--#  svn propset merge-point $revision
--# where $revision is the rev number when a branch was made
--
--root=`svn info . | perl -007 -ne 'm|URL: (.*?)/branches|s and print $1'`
--trunk=${root}/trunk
--
--# svn 1.2.x supports "svn info URL".  Without that, a stupid
--# ls command is needed to find the current revision of the trunk
--#next=`svn info $trunk | sed -n '/^Revision: /{s/.*: //g;p}'`
--
--next=`svn ls --verbose $root | perl -ne 'm|^\s+(\d+).*trunk/$| and print $1'`
--last=`svn propget merge-point .`
--
--echo "$0: merging from trunk from r$last to r$next"
--
--echo + svn merge -r$last:$next $trunk .
--svn merge -r$last:$next $trunk .
--echo + svn propset merge-point $next
--svn propset merge-point $next .
--last=$((last + 1))
--echo Merge r$last to r$next from trunk: > clog
--echo >> clog
--echo + svn log -r$last:$next $trunk
--svn log -r$last:$next $trunk | sed '/^------/,/^$/d' >> clog
-Index: README-SVN
-===================================================================
---- README-SVN (.../tags/2_0_3)        (revision 630610)
-+++ README-SVN (.../trunk)     (revision 630610)
-@@ -28,7 +28,7 @@
- DEVELOPER ACCESS
--assuming you have already been granted commit access to the repository,
-+assuming that you have already been granted commit access to the repository,
- you should follow the following steps to checkout mod_perl
- Change your password via:
-Index: t/apr-ext/threadrwlock.t
-===================================================================
---- t/apr-ext/threadrwlock.t   (.../tags/2_0_3)        (revision 0)
-+++ t/apr-ext/threadrwlock.t   (.../trunk)     (revision 630610)
-@@ -0,0 +1,11 @@
-+#!perl -T
-+
-+use strict;
-+use warnings FATAL => 'all';
-+use Apache::Test;
-+
-+use TestAPRlib::threadrwlock;
-+
-+plan tests => TestAPRlib::threadrwlock::num_of_tests(), need_threads;
-+
-+TestAPRlib::threadrwlock::test();
-Index: t/apr-ext/perlio.t
-===================================================================
---- t/apr-ext/perlio.t (.../tags/2_0_3)        (revision 630610)
-+++ t/apr-ext/perlio.t (.../trunk)     (revision 630610)
-@@ -25,7 +25,7 @@
- # prerequisite
- # also need to check whether we build against the source tree, in
- # which case we APR.so won't be linked against libapr/libaprutil
--my $has_apr_config = $build->{apr_config_path} && 
-+my $has_apr_config = $build->{apr_config_path} &&
-     !$build->httpd_is_source_tree;
- my $has_perlio_layers = 0;
-@@ -230,11 +230,11 @@
- }
--# XXX: need tests 
-+# XXX: need tests
- # - for stdin/out/err as they are handled specially
- # XXX: tmpfile is missing:
--# consider to use 5.8's syntax: 
-+# consider to use 5.8's syntax:
- #   open $fh, "+>", undef;
- # cleanup: t_mkdir will remove the whole tree including the file
-Index: t/apr-ext/uuid.t
-===================================================================
---- t/apr-ext/uuid.t   (.../tags/2_0_3)        (revision 630610)
-+++ t/apr-ext/uuid.t   (.../trunk)     (revision 630610)
-@@ -16,7 +16,7 @@
- #######
- # my $build = Apache2::Build->build_config;
- #
--# my $has_apr_config = $build->{apr_config_path} && 
-+# my $has_apr_config = $build->{apr_config_path} &&
- #    !$build->httpd_is_source_tree;
- # plan tests => TestAPRlib::uuid::num_of_tests(),
- #    need {"the build couldn't find apr-config" => $has_apr_config};
-Index: t/apache/content_length_header.t
-===================================================================
---- t/apache/content_length_header.t   (.../tags/2_0_3)        (revision 630610)
-+++ t/apache/content_length_header.t   (.../trunk)     (revision 630610)
-@@ -72,13 +72,13 @@
-         ## to protect against wierd SVN checkout building.
-         ## XXX: I'm starting to think this test is more
-         ## trouble then its worth.
--        if (have_min_apache_version("2.2.1")) { 
-+        if (have_min_apache_version("2.2.1")) {
-           $head_cl = 25;
-         }
-         elsif (have_min_apache_version("2.2.0")) {
-           # $head_cl = undef; # avoid warnings
-         }
--        elsif (have_min_apache_version("2.0.56")) { 
-+        elsif (have_min_apache_version("2.0.56")) {
-           $head_cl = 25;
-         }
-         else {
-Index: t/apache/constants.t
-===================================================================
---- t/apache/constants.t       (.../tags/2_0_3)        (revision 630610)
-+++ t/apache/constants.t       (.../trunk)     (revision 630610)
-@@ -8,7 +8,7 @@
- # -compile puts constants into the Apache2:: namespace
- use Apache2::Const -compile => qw(:http :common :mpmq :proxy
-                                   TAKE23 &OPT_EXECCGI
--                                  DECLINE_CMD DIR_MAGIC_TYPE 
-+                                  DECLINE_CMD DIR_MAGIC_TYPE
-                                   CRLF);
- # without -compile, constants are in the
-@@ -29,11 +29,11 @@
- ok t_cmp(Apache2::Const::HTTP_GONE, 410, 'Apache2::Const::HTTP_GONE');
--ok t_cmp(Apache2::Const::DIR_MAGIC_TYPE, 
-+ok t_cmp(Apache2::Const::DIR_MAGIC_TYPE,
-          'httpd/unix-directory',
-          'Apache2::Const::DIR_MAGIC_TYPE');
--ok t_cmp(Apache2::Const::MPMQ_MAX_SPARE_DAEMONS, 
-+ok t_cmp(Apache2::Const::MPMQ_MAX_SPARE_DAEMONS,
-          9,
-          'Apache2::Const::MPMQ_MAX_SPARE_DAEMONS');
-Index: t/apr/pool_lifetime.t
-===================================================================
---- t/apr/pool_lifetime.t      (.../tags/2_0_3)        (revision 630610)
-+++ t/apr/pool_lifetime.t      (.../trunk)     (revision 630610)
-@@ -4,26 +4,20 @@
- use Apache::Test;
- use Apache::TestUtil;
- use Apache::TestRequest;
--use TestCommon::SameInterp;
-+Apache::TestRequest::user_agent(keep_alive => 1);
- plan tests => 2, need 'HTML::HeadParser';
- my $module   = 'TestAPR::pool_lifetime';
- my $location = '/' . Apache::TestRequest::module2path($module);
--t_debug "getting the same interp ID for $location";
--my $same_interp = Apache::TestRequest::same_interp_tie($location);
--
--my $skip = $same_interp ? 0 : 1;
--
- for (1..2) {
-     my $expected = "Pong";
--    my $received = same_interp_req_body($same_interp, \&GET, $location);
--    $skip++ unless defined $received;
--    same_interp_skip_not_found(
--        $skip,
-+    my $received = GET $location;
-+
-+    ok t_cmp(
-+        $received->content,
-         $expected,
--        $received,
--        "Pong"
-+        "Pong",
-     );
- }
-
-Property changes on: t/apr
-___________________________________________________________________
-Name: svn:ignore
-   - base64.t
-brigade.t
-bucket.t
-constants.t
-date.t
-finfo.t
-flatten.t
-lib.t
-ipsubnet.t
-os.t
-perlio.t
-pool.t
-status.t
-sockaddr.t
-socket.t
-string.t
-table.t
-threadmutex.t
-uri.t
-util.t
-uuid.t
-
-   + base64.t
-brigade.t
-bucket.t
-constants.t
-date.t
-finfo.t
-flatten.t
-lib.t
-ipsubnet.t
-os.t
-perlio.t
-pool.t
-status.t
-sockaddr.t
-socket.t
-string.t
-table.t
-threadmutex.t
-threadrwlock.t
-uri.t
-util.t
-uuid.t
-
-
-Index: t/hooks/TestHooks/cleanup2.pm
-===================================================================
---- t/hooks/TestHooks/cleanup2.pm      (.../tags/2_0_3)        (revision 630610)
-+++ t/hooks/TestHooks/cleanup2.pm      (.../trunk)     (revision 630610)
-@@ -19,7 +19,7 @@
- use Apache2::Const -compile => qw(OK DECLINED);
- use APR::Const    -compile => 'SUCCESS';
--my $file = catfile Apache::Test::config->{vars}->{documentroot}, 
-+my $file = catfile Apache::Test::config->{vars}->{documentroot},
-     "hooks", "cleanup2";
- sub handler {
-Index: t/hooks/TestHooks/push_handlers_anon.pm
-===================================================================
---- t/hooks/TestHooks/push_handlers_anon.pm    (.../tags/2_0_3)        (revision 630610)
-+++ t/hooks/TestHooks/push_handlers_anon.pm    (.../trunk)     (revision 630610)
-@@ -46,9 +46,9 @@
-     <Perl >
-     my $s = Apache2::PerlSections->server;
--    $s->push_handlers(PerlFixupHandler => 
-+    $s->push_handlers(PerlFixupHandler =>
-                        sub { &TestHooks::push_handlers_anon::add_note });
--    $s->push_handlers(PerlFixupHandler => 
-+    $s->push_handlers(PerlFixupHandler =>
-                        \&TestHooks::push_handlers_anon::add_note       );
-     $s->push_handlers(PerlFixupHandler =>
-                       "TestHooks::push_handlers_anon::add_note"        );
-Index: t/hooks/TestHooks/stacked_handlers2.pm
-===================================================================
---- t/hooks/TestHooks/stacked_handlers2.pm     (.../tags/2_0_3)        (revision 630610)
-+++ t/hooks/TestHooks/stacked_handlers2.pm     (.../trunk)     (revision 630610)
-@@ -1,6 +1,6 @@
- package TestHooks::stacked_handlers2;
--# this test exercises the execution of the stacked handlers 
-+# this test exercises the execution of the stacked handlers
- # connection, translation, authen, authz, type, and response
- # phases should end for the first handler that returns OK
-@@ -17,28 +17,28 @@
- use Apache2::Const -compile => qw(OK DECLINED AUTH_REQUIRED SERVER_ERROR);
--sub ok { 
-+sub ok {
-     callback(shift);
-     return Apache2::Const::OK;
- }
--sub declined { 
-+sub declined {
-     callback(shift);
-     return Apache2::Const::DECLINED;
- }
--sub auth_required { 
-+sub auth_required {
-     callback(shift);
-     return Apache2::Const::AUTH_REQUIRED;
- }
--sub server_error { 
-+sub server_error {
-     callback(shift);
-@@ -88,9 +88,9 @@
-     foreach my $callback (qw(PerlPostReadRequestHandler
-                              PerlTransHandler
-                              PerlMapToStorageHandler
--                             PerlHeaderParserHandler 
--                             PerlAccessHandler 
--                             PerlAuthenHandler 
-+                             PerlHeaderParserHandler
-+                             PerlAccessHandler
-+                             PerlAuthenHandler
-                              PerlAuthzHandler
-                              PerlTypeHandler
-                              PerlFixupHandler
-@@ -165,14 +165,14 @@
-         PerlHeaderParserHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2::ok
-         # all 2 run
--        PerlAccessHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::ok 
-+        PerlAccessHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::ok
-         # 2 run, 1 left behind
--        PerlAuthenHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2::ok 
-+        PerlAuthenHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2::ok
-         PerlAuthenHandler TestHooks::stacked_handlers2::auth_required
-         # 2 run, 1 left behind
--        PerlAuthzHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2::ok 
-+        PerlAuthzHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2::ok
-         PerlAuthzHandler TestHooks::stacked_handlers2::auth_required
-         # 1 run, 1 left behind
-@@ -183,7 +183,7 @@
-         PerlFixupHandler TestHooks::stacked_handlers2::push_handlers
-         # 2 run, 2 left behind
--        PerlResponseHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2 
-+        PerlResponseHandler TestHooks::stacked_handlers2::declined TestHooks::stacked_handlers2
-         PerlResponseHandler TestHooks::stacked_handlers2::ok TestHooks::stacked_handlers2::server_error
-         SetHandler modperl
-Index: t/hooks/TestHooks/push_handlers_same_phase.pm
-===================================================================
---- t/hooks/TestHooks/push_handlers_same_phase.pm      (.../tags/2_0_3)        (revision 630610)
-+++ t/hooks/TestHooks/push_handlers_same_phase.pm      (.../trunk)     (revision 630610)
-@@ -1,6 +1,6 @@
- package TestHooks::push_handlers_same_phase;
--# test that we 
-+# test that we
- # - can push handlers into the same phase that is currently running
- # - cannot switch 'perl-script' to 'modperl' and vice versa once
- #   inside the response phase
-Index: t/hooks/TestHooks/authz.pm
-===================================================================
---- t/hooks/TestHooks/authz.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/hooks/TestHooks/authz.pm (.../trunk)     (revision 630610)
-@@ -16,8 +16,8 @@
-     unless($r->user and $sent_pw) {
-         # testing $r->note_auth_failure:
-         # AuthType Basic + note_auth_failure == note_basic_auth_failure;
--      $r->note_auth_failure;
--      return Apache2::Const::HTTP_UNAUTHORIZED;
-+        $r->note_auth_failure;
-+        return Apache2::Const::HTTP_UNAUTHORIZED;
-     }
-     return Apache2::Const::OK;
-Index: t/hooks/TestHooks/push_handlers.pm
-===================================================================
---- t/hooks/TestHooks/push_handlers.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/hooks/TestHooks/push_handlers.pm (.../trunk)     (revision 630610)
-@@ -17,7 +17,7 @@
-     $r->handler("modperl");
-     $r->push_handlers(PerlResponseHandler => \&coderef);
--    $r->push_handlers(PerlResponseHandler => 
-+    $r->push_handlers(PerlResponseHandler =>
-         \&TestHooks::push_handlers::full_coderef);
-     $r->push_handlers(PerlResponseHandler =>
-Index: t/hooks/TestHooks/inlined_handlers.pm
-===================================================================
---- t/hooks/TestHooks/inlined_handlers.pm      (.../tags/2_0_3)        (revision 630610)
-+++ t/hooks/TestHooks/inlined_handlers.pm      (.../trunk)     (revision 630610)
-@@ -5,10 +5,6 @@
- # previously there was a bug in non-ithreaded-perl implementation
- # where the cached compiled CODE ref didn't have the reference count
- # right.
--#
--# this test needs to run via the same_interpr framework, since it must
--# test that the same perl interprter/process gets to run the same
--# inlined handler
- use strict;
- use warnings FATAL => 'all';
-@@ -30,7 +26,6 @@
- <NoAutoConfig>
-   <Location /TestHooks__inlined_handlers>
-       SetHandler modperl
--      PerlInitHandler     Apache::TestHandler::same_interp_fixup
-       PerlFixupHandler    'sub { use Apache2::Const qw(DECLINED); DECLINED }'
-       PerlResponseHandler TestHooks::inlined_handlers
-   </Location>
-Index: t/hooks/push_handlers.t
-===================================================================
---- t/hooks/push_handlers.t    (.../tags/2_0_3)        (revision 630610)
-+++ t/hooks/push_handlers.t    (.../trunk)     (revision 630610)
-@@ -7,7 +7,7 @@
- plan tests => 1;
--my @refs = qw(conf conf1 conf2 coderef 
-+my @refs = qw(conf conf1 conf2 coderef
-              full_coderef coderef1 coderef2 coderef3);
- my @anon = qw(anonymous anonymous1 coderef4 anonymous3);
-Index: t/hooks/inlined_handlers.t
-===================================================================
---- t/hooks/inlined_handlers.t (.../tags/2_0_3)        (revision 630610)
-+++ t/hooks/inlined_handlers.t (.../trunk)     (revision 630610)
-@@ -10,19 +10,14 @@
- my $location = "/TestHooks__inlined_handlers";
--t_debug "getting the same interp ID for $location";
--my $same_interp = Apache::TestRequest::same_interp_tie($location);
--
--my $skip = $same_interp ? 0 : 1;
- my $expected = "ok";
- for (1..2) {
--    my $received = same_interp_req_body($same_interp, \&GET, $location);
--    $skip++ unless defined $received;
--    same_interp_skip_not_found(
--        $skip,
--        $received,
-+    my $received = GET $location;
-+
-+    ok t_cmp(
-+        $received->content,
-         $expected,
--        "anonymous handlers in httpd.conf test"
-+        "anonymous handlers in httpd.conf test",
-     );
- }
-Index: t/filter/out_str_req_mix.t
-===================================================================
---- t/filter/out_str_req_mix.t (.../tags/2_0_3)        (revision 630610)
-+++ t/filter/out_str_req_mix.t (.../trunk)     (revision 630610)
-@@ -15,5 +15,5 @@
- my $received = POST_BODY $location, content => $content;
- $received =~ s{\r?\n$}{};
--ok t_cmp($expected, $received, 
-+ok t_cmp($expected, $received,
-     "mixing output httpd and mod_perl filters, while preserving order");
-Index: t/filter/TestFilter/out_str_subreq_default.pm
-===================================================================
---- t/filter/TestFilter/out_str_subreq_default.pm      (.../tags/2_0_3)        (revision 630610)
-+++ t/filter/TestFilter/out_str_subreq_default.pm      (.../trunk)     (revision 630610)
-@@ -15,7 +15,7 @@
- use Apache2::Const -compile => qw(OK);
- # include the contents of a subrequest
--# in the filter, a la mod_include's 
-+# in the filter, a la mod_include's
- # <!--#include virtual="/subrequest" -->
- sub include {
-Index: t/filter/TestFilter/out_str_reverse.pm
-===================================================================
---- t/filter/TestFilter/out_str_reverse.pm     (.../tags/2_0_3)        (revision 630610)
-+++ t/filter/TestFilter/out_str_reverse.pm     (.../trunk)     (revision 630610)
-@@ -49,9 +49,9 @@
-     $r->content_type('text/plain');
-     # unbuffer stdout, so we get the data split across several bbs
--    local $_ = 1; 
-+    local $_ = 1;
-     if ($r->method_number == Apache2::Const::M_POST) {
--        my $data = TestCommon::Utils::read_post($r); 
-+        my $data = TestCommon::Utils::read_post($r);
-         $r->print($_) for grep length $_, split /(.{5})/, $data;
-     }
-Index: t/filter/TestFilter/with_subrequest.pm
-===================================================================
---- t/filter/TestFilter/with_subrequest.pm     (.../tags/2_0_3)        (revision 0)
-+++ t/filter/TestFilter/with_subrequest.pm     (.../trunk)     (revision 630610)
-@@ -0,0 +1,38 @@
-+package TestFilter::with_subrequest;
-+
-+use strict;
-+use warnings FATAL => 'all';
-+
-+use Apache2::Filter ();
-+use Apache2::SubRequest ();
-+
-+use TestCommon::Utils;
-+
-+use Apache2::Const -compile => 'OK';
-+
-+sub handler {
-+    my $f = shift;
-+    my $r = $f->r;
-+
-+    my $subr;
-+    while ($f->read(my $buffer, 1024)) {
-+        $f->print(lc $buffer);
-+      if (!$subr) {
-+            $subr = $r->lookup_uri($r->uri);
-+            my $rc = $subr->run;
-+        }
-+    }
-+
-+    Apache2::Const::OK;
-+}
-+
-+1;
-+__DATA__
-+
-+<Location /with_subrequest>
-+  PerlOutputFilterHandler TestFilter::with_subrequest
-+</Location>
-+
-+<IfModule mod_alias.c>
-+    Alias /with_subrequest @top_dir@
-+</IfModule>
-Index: t/filter/TestFilter/out_str_declined.pm
-===================================================================
---- t/filter/TestFilter/out_str_declined.pm    (.../tags/2_0_3)        (revision 630610)
-+++ t/filter/TestFilter/out_str_declined.pm    (.../trunk)     (revision 630610)
-@@ -34,7 +34,7 @@
- # this filter ignores all the data that comes through, though on the
- # last invocation it prints how many times the filter 'decline' was called
--# which it could count by itself, but we want to test that 
-+# which it could count by itself, but we want to test that
- # 'return Apache2::Const::DECLINED' works properly in output filters
- sub black_hole {
-     my $filter = shift;
-Index: t/filter/TestFilter/in_bbs_inject_header.pm
-===================================================================
---- t/filter/TestFilter/in_bbs_inject_header.pm        (.../tags/2_0_3)        (revision 630610)
-+++ t/filter/TestFilter/in_bbs_inject_header.pm        (.../trunk)     (revision 630610)
-@@ -188,7 +188,7 @@
-             # normally the body will start coming in the next call to
-             # get_brigade, so if your filter only wants to work with
-             # the headers, it can decline all other invocations if that
--            # flag is set. However since in this test we need to send 
-+            # flag is set. However since in this test we need to send
-             # a few extra bucket brigades, we will turn another flag
-             # 'done_with_headers' when 'seen_body_separator' is on and
-             # all headers were sent out
-@@ -232,7 +232,7 @@
-     # propogate the input headers and the input back to the client
-     # as we need to do the validations on the client side
--    $r->headers_out->set($header1_key => 
-+    $r->headers_out->set($header1_key =>
-                          $r->headers_in->get($header1_key)||'');
-     for my $key (sort keys %headers) {
-Index: t/filter/TestFilter/out_str_subreq_modperl.pm
-===================================================================
---- t/filter/TestFilter/out_str_subreq_modperl.pm      (.../tags/2_0_3)        (revision 630610)
-+++ t/filter/TestFilter/out_str_subreq_modperl.pm      (.../trunk)     (revision 630610)
-@@ -15,7 +15,7 @@
- use Apache2::Const -compile => qw(OK);
- # include the contents of a subrequest
--# in the filter, a la mod_include's 
-+# in the filter, a la mod_include's
- # <!--#include virtual="/subrequest" -->
- sub include {
-Index: t/filter/with_subrequest.t
-===================================================================
---- t/filter/with_subrequest.t (.../tags/2_0_3)        (revision 0)
-+++ t/filter/with_subrequest.t (.../trunk)     (revision 630610)
-@@ -0,0 +1,13 @@
-+use strict;
-+use warnings FATAL => 'all';
-+
-+use Apache::Test;
-+use Apache::TestRequest;
-+
-+plan tests => 1, need 'mod_alias';
-+
-+my $location = "/with_subrequest/Makefile";
-+
-+my $str = GET_BODY $location;
-+
-+ok $str !~ /[A-Z]/;
-Index: t/conf/modperl_extra.pl
-===================================================================
---- t/conf/modperl_extra.pl    (.../tags/2_0_3)        (revision 630610)
-+++ t/conf/modperl_extra.pl    (.../trunk)     (revision 630610)
-@@ -19,7 +19,7 @@
- use warnings FATAL => 'all';
- die '$ENV{MOD_PERL} not set!' unless $ENV{MOD_PERL};
--die '$ENV{MOD_PERL_API_VERSION} not set!' 
-+die '$ENV{MOD_PERL_API_VERSION} not set!'
-     unless $ENV{MOD_PERL_API_VERSION} == 2;
- use File::Spec::Functions qw(canonpath catdir);
-Index: t/response/TestApache/conftree.pm
-===================================================================
---- t/response/TestApache/conftree.pm  (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestApache/conftree.pm  (.../trunk)     (revision 630610)
-@@ -45,7 +45,7 @@
-     #XXX: This test isn't so good, but its quite problematic to try
-     #and _really_ compare $cfg and $tree...
-     {
--        my %vhosts = map { 
-+        my %vhosts = map {
-             $cfg->{vhosts}{$_}{name} => { %{$cfg->{vhosts}{$_}}, index => $_ }
-         } keys %{$cfg->{vhosts}};
-@@ -55,7 +55,7 @@
-         my $vhost_failed;
-         for my $vhost ($tree->lookup("VirtualHost")) {
--            unless (exists $vhosts{$vhost->{'ServerName'} 
-+            unless (exists $vhosts{$vhost->{'ServerName'}
-                 || $vhost->{'PerlProcessConnectionHandler'}}) {
-                 $vhost_failed++;
-             }
-@@ -87,7 +87,7 @@
-         $sub->($data, $node);
-         if (my $kid = $node->first_child) {
-             $node = $kid;
--        } 
-+        }
-         elsif (my $next = $node->next) {
-             $node = $next;
-         }
-Index: t/response/TestAPR/pool_lifetime.pm
-===================================================================
---- t/response/TestAPR/pool_lifetime.pm        (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPR/pool_lifetime.pm        (.../trunk)     (revision 630610)
-@@ -23,5 +23,3 @@
- }
- 1;
--__END__
--PerlFixupHandler Apache::TestHandler::same_interp_fixup
-Index: t/response/TestAPR/threadrwlock.pm
-===================================================================
---- t/response/TestAPR/threadrwlock.pm (.../tags/2_0_3)        (revision 0)
-+++ t/response/TestAPR/threadrwlock.pm (.../trunk)     (revision 630610)
-@@ -0,0 +1,24 @@
-+package TestAPR::threadrwlock;
-+
-+use strict;
-+use warnings FATAL => 'all';
-+
-+use Apache::Test;
-+use Apache::TestUtil;
-+
-+use Apache2::Const -compile => 'OK';
-+
-+use TestAPRlib::threadrwlock;
-+
-+sub handler {
-+    my $r = shift;
-+
-+    my $tests = TestAPRlib::threadrwlock::num_of_tests();
-+    plan $r, tests => $tests, need_threads;
-+
-+    TestAPRlib::threadrwlock::test();
-+
-+    Apache2::Const::OK;
-+}
-+
-+1;
-Index: t/response/TestAPR/perlio.pm
-===================================================================
---- t/response/TestAPR/perlio.pm       (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPR/perlio.pm       (.../trunk)     (revision 630610)
-@@ -22,7 +22,7 @@
- # apr_file_dup has a bug on win32,
- # should be fixed in apr 0.9.4 / httpd-2.0.48
- require Apache2::Build;
--use constant APR_WIN32_FILE_DUP_BUG => 
-+use constant APR_WIN32_FILE_DUP_BUG =>
-     Apache2::Build::WIN32() && !have_min_apache_version('2.0.48');
- sub handler {
-@@ -224,7 +224,7 @@
-     # tests reading and writing text and binary files
-     {
-         for my $file ('MoonRise.jpeg', 'redrum.txt') {
--            my $in = catfile $dir, $file; 
-+            my $in = catfile $dir, $file;
-             my $out = catfile $dir, "$file.out";
-             my ($apr_content, $perl_content);
-             open my $rfh, "<:APR", $in, $r->pool
-@@ -331,11 +331,11 @@
-         unlink $scratch;
-     }
--    # XXX: need tests 
-+    # XXX: need tests
-     # - for stdin/out/err as they are handled specially
-     # XXX: tmpfile is missing:
--    # consider to use 5.8's syntax: 
-+    # consider to use 5.8's syntax:
-     #   open $fh, "+>", undef;
-     # cleanup: t_mkdir will remove the whole tree including the file
-Index: t/response/TestModperl/sameinterp.pm
-===================================================================
---- t/response/TestModperl/sameinterp.pm       (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/sameinterp.pm       (.../trunk)     (revision 630610)
-@@ -1,26 +0,0 @@
--package TestModperl::sameinterp;
--
--use warnings FATAL => 'all';
--use strict;
--
--use Apache2::RequestIO ();
--
--use Apache::TestHandler ();
--
--use Apache2::Const -compile => qw(OK);
--
--my $value = '';
--
--sub handler {
--    my $r = shift;
--
--    # test the actual global data
--    $value = Apache::TestHandler::same_interp_counter();
--    $r->puts($value);
--
--    Apache2::Const::OK;
--}
--
--1;
--__END__
--PerlFixupHandler Apache::TestHandler::same_interp_fixup
-Index: t/response/TestModperl/pnotes.pm
-===================================================================
---- t/response/TestModperl/pnotes.pm   (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/pnotes.pm   (.../trunk)     (revision 630610)
-@@ -16,7 +16,7 @@
-     # make it ok to call ok() here while plan()ing elsewhere
-     Apache::Test::init_test_pm($r);
--    
-+
-     Test::_reset_globals() if Test->can('_reset_globals');
-     $Test::ntest   = 1 + (26 * ($r->args - 1));
-     $Test::planned = 26;
-@@ -102,7 +102,7 @@
-         else {
-           skip ('skipping $dbh retrival test - no DBI or DBD::DBM');
-           skip ('skipping $dbh->quote() test - no DBI or DBD::DBM');
--        } 
-+        }
-     }
-     # set pnotes so we can test unset on later connections
-Index: t/response/TestModperl/pnotes2.pm
-===================================================================
---- t/response/TestModperl/pnotes2.pm  (.../tags/2_0_3)        (revision 0)
-+++ t/response/TestModperl/pnotes2.pm  (.../trunk)     (revision 630610)
-@@ -0,0 +1,89 @@
-+package TestModperl::pnotes2;
-+
-+use strict;
-+use warnings FATAL => 'all';
-+
-+use Apache2::Log ();
-+use Apache2::RequestUtil ();
-+use Apache2::ConnectionUtil ();
-+
-+use Apache2::Const -compile => 'OK';
-+
-+{
-+    package TestModerl::pnotes2::x;
-+    use strict;
-+    use warnings FATAL => 'all';
-+
-+    sub new {shift;bless [@_];}
-+    sub DESTROY {my $f=shift @{$_[0]}; $f->(@{$_[0]});}
-+}
-+
-+sub line {
-+    our $cleanup;
-+
-+    Apache2::ServerRec::warn "pnotes are destroyed after cleanup ".$cleanup;
-+}
-+
-+sub cleanup {
-+    our $cleanup;
-+    $cleanup='passed';
-+
-+    return Apache2::Const::OK;
-+}
-+
-+sub handler {
-+    my $r = shift;
-+
-+    our $cleanup;
-+    $cleanup='';
-+
-+    $r->push_handlers( PerlCleanupHandler=>__PACKAGE__.'::cleanup' );
-+
-+    if(!defined $r->args) {
-+    } elsif($r->args == 1) {
-+        $r->pnotes(x1 => TestModerl::pnotes2::x->new(\&line));
-+    } elsif($r->args == 2) {
-+        $r->pnotes->{x1} = TestModerl::pnotes2::x->new(\&line);
-+    } elsif($r->args == 3) {
-+        $r->pnotes(x1 => TestModerl::pnotes2::x->new(\&line));
-+        $r->pnotes(x2 => 2);
-+    } elsif($r->args == 4) {
-+        $r->pnotes->{x1} = TestModerl::pnotes2::x->new(\&line);
-+        $r->pnotes->{x2} = 2;
-+    } elsif($r->args == 5) {
-+        $r->pnotes(x1 => TestModerl::pnotes2::x->new(\&line));
-+        $r->pnotes->{x2} = 2;
-+    } elsif($r->args == 6) {
-+        $r->pnotes->{x1} = TestModerl::pnotes2::x->new(\&line);
-+        $r->pnotes(x2 => 2);
-+    } elsif($r->args == 7) {
-+        $r->connection->pnotes(x1 => TestModerl::pnotes2::x->new(\&line));
-+    } elsif($r->args == 8) {
-+        $r->connection->pnotes->{x1} = TestModerl::pnotes2::x->new(\&line);
-+    } elsif($r->args == 9) {
-+        $r->connection->pnotes(x1 => TestModerl::pnotes2::x->new(\&line));
-+        $r->connection->pnotes(x2 => 2);
-+    } elsif($r->args == 10) {
-+        $r->connection->pnotes->{x1} = TestModerl::pnotes2::x->new(\&line);
-+        $r->connection->pnotes->{x2} = 2;
-+    } elsif($r->args == 11) {
-+        $r->connection->pnotes(x1 => TestModerl::pnotes2::x->new(\&line));
-+        $r->connection->pnotes->{x2} = 2;
-+    } elsif($r->args == 12) {
-+        $r->connection->pnotes->{x1} = TestModerl::pnotes2::x->new(\&line);
-+        $r->connection->pnotes(x2 => 2);
-+    }
-+
-+    $r->content_type('text/plain');
-+    $r->print("OK");
-+
-+    Apache2::Const::OK;
-+}
-+
-+1;
-+__END__
-+
-+# Local Variables: #
-+# mode: cperl #
-+# cperl-indent-level: 4 #
-+# End: #
-Index: t/response/TestModperl/cookie2.pm
-===================================================================
---- t/response/TestModperl/cookie2.pm  (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/cookie2.pm  (.../trunk)     (revision 630610)
-@@ -44,6 +44,5 @@
- __DATA__
- SetHandler modperl
- PerlModule          TestModperl::cookie2
--PerlInitHandler     Apache::TestHandler::same_interp_fixup
- PerlAccessHandler   TestModperl::cookie2::access
- PerlResponseHandler TestModperl::cookie2
-Index: t/response/TestModperl/perl_options2.pm
-===================================================================
---- t/response/TestModperl/perl_options2.pm    (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/perl_options2.pm    (.../trunk)     (revision 630610)
-@@ -52,7 +52,7 @@
-     ok t_cmp($s->is_perl_option_enabled('Response'), 1,
-              "Response is off under PerlOptions None");
--           
-+
-     return Apache2::Const::OK;
- }
-Index: t/response/TestModperl/printf.pm
-===================================================================
---- t/response/TestModperl/printf.pm   (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/printf.pm   (.../trunk)     (revision 630610)
-@@ -31,7 +31,7 @@
-     # ok 4 (gets input from the fixup handler via notes)
-     {
-         my $note = $r->notes->get("fixup") || '';
--        my $ok = $note =~ 
-+        my $ok = $note =~
-             /\$r->printf can't be called before the response phase/;
-         $r->print("not ") unless $ok;
-         $r->print("ok 4\n");
-Index: t/response/TestModperl/subenv.pm
-===================================================================
---- t/response/TestModperl/subenv.pm   (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/subenv.pm   (.../trunk)     (revision 630610)
-@@ -32,7 +32,7 @@
-         ok ! $ENV{$key};               # %ENV not populated yet
-     }
--    # subprocess_env in void context with no arguments 
-+    # subprocess_env in void context with no arguments
-     # populates the same as +SetEnv
-     {
-         my $env = $r->subprocess_env;
-Index: t/response/TestModperl/dir_config.pm
-===================================================================
---- t/response/TestModperl/dir_config.pm       (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/dir_config.pm       (.../trunk)     (revision 630610)
-@@ -16,7 +16,7 @@
- sub handler {
-     my $r = shift;
--    plan $r, tests => 14;
-+    plan $r, tests => 15;
-     #Apache2::RequestRec::dir_config tests
-@@ -28,6 +28,13 @@
-     my $dir_config = $r->dir_config;
-     ok defined $dir_config && ref($dir_config) eq 'APR::Table';
-+    # make sure trying to get something that's not defined
-+    # doesn't blow up
-+    my $undef = $r->dir_config('EDOESNOTEXIST');
-+
-+    ok t_cmp($undef, undef,
-+             'no PerlSetVar to get data from');
-+
-     # PerlAddVar ITERATE2 test
-     {
-         my $key = make_key('1');
-Index: t/response/TestModperl/setupenv.pm
-===================================================================
---- t/response/TestModperl/setupenv.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/setupenv.pm (.../trunk)     (revision 630610)
-@@ -321,7 +321,7 @@
-         PerlSetEnv DIR_PERLSETENV psvoid
-     </Location>
--    # equivalent to modperl handler with $r->subprocess_env() - 
-+    # equivalent to modperl handler with $r->subprocess_env() -
-     # CGI variables are there, but not subprocess_env entries
-     # that are populated after the void call
-     <Location /TestModperl__setupenv_psnosetupvoid>
-Index: t/response/TestModperl/cookie.pm
-===================================================================
---- t/response/TestModperl/cookie.pm   (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/cookie.pm   (.../trunk)     (revision 630610)
-@@ -48,7 +48,6 @@
- __DATA__
- SetHandler perl-script
- PerlModule          TestModperl::cookie
--PerlInitHandler     Apache::TestHandler::same_interp_fixup
- PerlAccessHandler   TestModperl::cookie::access
- PerlResponseHandler TestModperl::cookie
- PerlOptions -SetupEnv
-Index: t/response/TestModperl/method.pm
-===================================================================
---- t/response/TestModperl/method.pm   (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/method.pm   (.../trunk)     (revision 630610)
-@@ -40,7 +40,7 @@
-     ok t_cmp(
-         $r->uri,
--        '/' . Apache::TestRequest::module2path($class), 
-+        '/' . Apache::TestRequest::module2path($class),
-         '$r->uri eq $location');
-     if ($is_obj) {
-Index: t/response/TestModperl/request_rec_perlio_api.pm
-===================================================================
---- t/response/TestModperl/request_rec_perlio_api.pm   (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/request_rec_perlio_api.pm   (.../trunk)     (revision 630610)
-@@ -93,7 +93,7 @@
-     # now close it completely and restore it, without using any dupped
-     # filehandle
-     close STDOUT;
--    open STDOUT, ">:Apache2", $r 
-+    open STDOUT, ">:Apache2", $r
-         or die "can't open STDOUT via :Apache2 layer : $!";
-     print "next you reincarnate...";
-Index: t/response/TestModperl/current_callback.pm
-===================================================================
---- t/response/TestModperl/current_callback.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/current_callback.pm (.../trunk)     (revision 630610)
-@@ -33,7 +33,7 @@
- sub check {
-     my $expected = 'Perl' . shift() . 'Handler';
-     my $callback = ModPerl::Util::current_callback();
--    die "expecting $expected callback, instead got $callback" 
-+    die "expecting $expected callback, instead got $callback"
-         unless $callback eq $expected;
-     #warn "in callback: $callback\n";
-     return Apache2::Const::OK;
-Index: t/response/TestModperl/local_env.pm
-===================================================================
---- t/response/TestModperl/local_env.pm        (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModperl/local_env.pm        (.../trunk)     (revision 630610)
-@@ -22,16 +22,16 @@
-     my %copy_ENV = %ENV;  ## this is not a deep copy;
--    ok t_cmp($ENV{MOD_PERL_API_VERSION}, 2, 
-+    ok t_cmp($ENV{MOD_PERL_API_VERSION}, 2,
-       "\$ENV{MOD_PERL_API_VERSION} is 2 before local \%ENV");
-     {
-       local %ENV;
--      ok t_cmp($ENV{MOD_PERL_API_VERSION}, undef, 
-+      ok t_cmp($ENV{MOD_PERL_API_VERSION}, undef,
-           "\$ENV{MOD_PERL_API_VERSION} is undef after local \%ENV");
--      ok t_cmp(scalar keys %ENV, 0, 
-+      ok t_cmp(scalar keys %ENV, 0,
-           "\%ENV has 0 keys after local");
-       $ENV{LOCAL} = 1;
-Index: t/response/TestPerl/hash_attack.pm
-===================================================================
---- t/response/TestPerl/hash_attack.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestPerl/hash_attack.pm (.../trunk)     (revision 630610)
-@@ -92,7 +92,7 @@
-         $stash->{$s}++;
-         debug sprintf "%2d: %5s, %10s, %s", $c, $s, $h, scalar(%$stash);
-         push @keys, $s;
--        debug "The hash collision attack has been successful" 
-+        debug "The hash collision attack has been successful"
-             if Internals::HvREHASH(%$stash);
-     } continue {
-         $s++;
-Index: t/response/TestPerl/ithreads_eval.pm
-===================================================================
---- t/response/TestPerl/ithreads_eval.pm       (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestPerl/ithreads_eval.pm       (.../trunk)     (revision 630610)
-@@ -3,7 +3,7 @@
- # reproducing a bug in perl ithreads: [perl #34341]
- # https://rt.perl.org/rt3/Ticket/Display.html?id=34341
- #
--# $thr->join triggers the following leak: 
-+# $thr->join triggers the following leak:
- # - due to to local $0, (its second MAGIC's MG_OBJ,
- #   you can see it in the output of Dump $0). This leak was first
- #   spotted in the RegistryCooker.pm which localizes $0
-Index: t/response/TestPerl/ithreads.pm
-===================================================================
---- t/response/TestPerl/ithreads.pm    (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestPerl/ithreads.pm    (.../trunk)     (revision 630610)
-@@ -62,9 +62,9 @@
-         $counter_priv += $counter_priv for 1..10;
-         {
--          lock $counter_shar;
--          $counter_shar += $counter_shar for 1..10;
--      }
-+            lock $counter_shar;
-+            $counter_shar += $counter_shar for 1..10;
-+        }
-         $thr->join;
-         ok t_cmp($counter_shar, 2**20, "shared counter");
-Index: t/response/TestCompat/apache.pm
-===================================================================
---- t/response/TestCompat/apache.pm    (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestCompat/apache.pm    (.../trunk)     (revision 630610)
-@@ -128,6 +128,5 @@
- __END__
- # so we can test whether send_httpd_header() works fine
- PerlOptions +ParseHeaders +GlobalRequest
--AllowOverride Options
- PerlModule TestCompat::apache
- PerlFixupHandler TestCompat::apache::fixup
-Index: t/response/TestModules/reload.pm
-===================================================================
---- t/response/TestModules/reload.pm   (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestModules/reload.pm   (.../trunk)     (revision 630610)
-@@ -1,50 +0,0 @@
--package TestModules::reload;
--
--use strict;
--use warnings FATAL => 'all';
--
--use ModPerl::Util ();
--
--use Apache2::Const -compile => qw(OK);
--
--my $package = 'Apache2::Reload::Test';
--
--our $pass = 0;
--
--sub handler {
--    my $r = shift;
--    $pass++;
--    if ($r->args eq 'last') {
--        Apache2::Reload->unregister_module($package);
--        ModPerl::Util::unload_package($package);
--        $pass = 0;
--        $r->print("unregistered OK");
--        return Apache2::Const::OK;
--    }
--
--    eval "use $package";
--
--    Apache2::Reload::Test::run($r);
--
--    return Apache2::Const::OK;
--}
--
--#This one shouldn't be touched
--package Apache2::Reload::Test::SubPackage;
--
--sub subpackage { 
--    if ($TestModules::reload::pass == '2') {
--        return 'subpackage';
--    }
--    else {
--        return 'SUBPACKAGE';
--    }
--}
--
--1;
--__END__
--
--PerlModule Apache2::Reload
--PerlInitHandler Apache::TestHandler::same_interp_fixup Apache2::Reload
--PerlSetVar ReloadDebug Off
--PerlSetVar ReloadAll Off
-Index: t/response/TestAPI/request_rec.pm
-===================================================================
---- t/response/TestAPI/request_rec.pm  (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPI/request_rec.pm  (.../trunk)     (revision 630610)
-@@ -24,7 +24,7 @@
- sub handler {
-     my $r = shift;
--    plan $r, tests => 54;
-+    plan $r, tests => 55;
-     #Apache2::RequestUtil->request($r); #PerlOptions +GlobalRequest takes care
-     my $gr = Apache2::RequestUtil->request;
-@@ -127,6 +127,13 @@
-         ok t_cmp $r->the_request, "GET $base_uri$path_info?$args HTTP/1.0",
-             '$r->the_request';
-+        {
-+            my $new_request = "GET $base_uri$path_info?$args&foo=bar HTTP/1.0";
-+            my $old_request = $r->the_request($new_request);
-+            ok t_cmp $r->the_request, $new_request, '$r->the_request rw';
-+            $r->the_request($old_request);
-+        }
-+
-         ok $r->filename;
-         my $location = '/' . Apache::TestRequest::module2path(__PACKAGE__);
-Index: t/response/TestAPI/status.pm
-===================================================================
---- t/response/TestAPI/status.pm       (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPI/status.pm       (.../trunk)     (revision 630610)
-@@ -22,7 +22,7 @@
-     if ($string) {
-         # status_line must be valid and match status
-         # or it is 'zapped' by httpd as of 2.2.1
--        $r->status($code); 
-+        $r->status($code);
-         $r->status_line("$code $string");
-     }
-     else {
-Index: t/response/TestAPI/access2.pm
-===================================================================
---- t/response/TestAPI/access2.pm      (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPI/access2.pm      (.../trunk)     (revision 630610)
-@@ -55,7 +55,7 @@
-     return $rc if $rc != Apache2::Const::OK;
-     # extract just the requirement entries
--    my %require = 
-+    my %require =
-         map { my ($k, $v) = split /\s+/, $_->{requirement}, 2; ($k, $v||'') }
-         @{ $r->requires };
-     debug \%require;
-Index: t/response/TestAPI/uri.pm
-===================================================================
---- t/response/TestAPI/uri.pm  (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPI/uri.pm  (.../trunk)     (revision 630610)
-@@ -104,7 +104,7 @@
-     }
-     {
-         # this time include args and a pool object
--        my $curl = $r->construct_url(sprintf "%s?%s", $r->uri, $r->args, 
-+        my $curl = $r->construct_url(sprintf "%s?%s", $r->uri, $r->args,
-                                      $r->pool->new);
-         t_debug("construct_url: $curl");
-         t_debug("r->uri: ", $r->uri);
-@@ -167,7 +167,7 @@
-         ok t_cmp($puri->port, $port, "port");
-         ok t_cmp($puri->unparse,
--                 "ftp://perl.apache.org:$port$path?$query#$fragment", 
-+                 "ftp://perl.apache.org:$port$path?$query#$fragment",
-                  "unparse");
-     }
-Index: t/response/TestAPI/server_util.pm
-===================================================================
---- t/response/TestAPI/server_util.pm  (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPI/server_util.pm  (.../trunk)     (revision 630610)
-@@ -110,7 +110,7 @@
-     # no file argument gives ServerRoot
-     {
--        my $server_root_relative = 
-+        my $server_root_relative =
-             Apache2::ServerUtil::server_root_relative($r->pool);
-         ok t_filepath_cmp(canonpath($server_root_relative),
-Index: t/response/TestAPI/server_const.pm
-===================================================================
---- t/response/TestAPI/server_const.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPI/server_const.pm (.../trunk)     (revision 630610)
-@@ -24,7 +24,7 @@
-     my $r = shift;
--    plan $r, tests => 3;
-+    plan $r, tests => 5;
-     # test Apache2::ServerUtil constant subroutines
-@@ -36,10 +36,20 @@
-              $built,
-              'Apache2::ServerUtil::get_server_built()');
--    ok t_cmp(Apache2::ServerUtil::get_server_version,
-+    ok t_cmp(Apache2::ServerUtil::get_server_description,
-              $version,
-+             'Apache2::ServerUtil::get_server_description()');
-+
-+    my $server_version = Apache2::ServerUtil::get_server_version;
-+    ok t_cmp($version,
-+             qr/^$server_version/,
-              'Apache2::ServerUtil::get_server_version()');
-+    my $server_banner = Apache2::ServerUtil::get_server_banner;
-+    ok t_cmp($version,
-+             qr/^$server_banner/,
-+             'Apache2::ServerUtil::get_server_banner()');
-+
-     Apache2::Const::OK;
- }
-Index: t/response/TestAPI/add_config.pm
-===================================================================
---- t/response/TestAPI/add_config.pm   (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPI/add_config.pm   (.../trunk)     (revision 630610)
-@@ -58,6 +58,14 @@
-     };
-     $r->pnotes(followsymlinks => "$@");
-+    eval {
-+        my $path="/a/path/to/somewhere";
-+        $r->add_config(['PerlResponseHandler '.__PACKAGE__], -1, $path);
-+        # now overwrite the path in place to see if the location pointer
-+        # is really copied: see modperl_config_dir_create
-+        $path=~tr[a-z][n-za-m];
-+    };
-+
-     return Apache2::Const::DECLINED;
- }
-@@ -82,7 +90,7 @@
-     my ($self, $r) = @_;
-     my $cf = $self->get_config($r->server);
--    plan $r, tests => 8;
-+    plan $r, tests => 9;
-     ok t_cmp $r->pnotes('add_config1'), qr/.+\n/;
-     ok t_cmp $r->pnotes('add_config2'), (APACHE22 ? qr/.+\n/ : '');
-@@ -102,6 +110,8 @@
-     my $opts = APACHE22 ? Apache2::Const::OPT_SYM_LINKS : $expect;
-     ok t_cmp $r->allow_override_opts, $opts;
-+    ok t_cmp $r->location, '/a/path/to/somewhere';
-+
-     return Apache2::Const::OK;
- }
-@@ -117,7 +127,6 @@
-         <Directory @DocumentRoot@>
-             AllowOverride All
-         </Directory>
--        PerlResponseHandler TestAPI::add_config
-         PerlMapToStorageHandler TestAPI::add_config::map2storage
-         PerlFixupHandler TestAPI::add_config::fixup
-     </VirtualHost>
-Index: t/response/TestAPI/request_util.pm
-===================================================================
---- t/response/TestAPI/request_util.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestAPI/request_util.pm (.../trunk)     (revision 630610)
-@@ -40,7 +40,7 @@
-     }
-     else {
-         eval { $r->document_root('/tmp/foo') };
--        ok t_cmp($@, qr/Can't run.*in the threaded env/, 
-+        ok t_cmp($@, qr/Can't run.*in the threaded env/,
-                  "document_root is read-only under threads");
-         ok 1;
-     }
-Index: t/response/TestError/api.pm
-===================================================================
---- t/response/TestError/api.pm        (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestError/api.pm        (.../trunk)     (revision 630610)
-@@ -21,7 +21,7 @@
-     # PerlOptions -GlobalRequest is in effect
-     eval { my $gr = Apache2::RequestUtil->request; };
--    ok t_cmp($@, 
-+    ok t_cmp($@,
-              qr/\$r object is not available/,
-              "unavailable global $r object");
-Index: t/response/TestDirective/perldo.pm
-===================================================================
---- t/response/TestDirective/perldo.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestDirective/perldo.pm (.../trunk)     (revision 630610)
-@@ -12,7 +12,7 @@
- sub handler {
-     my $r = shift;
--    plan $r, tests => 22, need_module('mod_alias'); 
-+    plan $r, tests => 22, need_module('mod_alias');
-     ok t_cmp('yes', $TestDirective::perl::worked);
-@@ -53,22 +53,22 @@
-     ok t_cmp($@, "", "PerlSections dump syntax check");
-     ok t_cmp($TestDirective::perldo::test::Include, qr/perlsection.conf/);
--    
-+
-     #Check for correct Apache2::ServerUtil->server behavior
-     my $bport = $TestDirective::perl::base_server->port;
-     my $vport = $TestDirective::perl::vhost_server->port;
-     ok defined $bport && defined $vport && $vport != $bport;
--    
-+
-     foreach my $url (qw(scalar scalar1 scalar2)) {
-         my $res = GET "/perl_sections_perlconfig_$url/";
-         ok t_cmp($res->is_success, 1, '$PerlConfig');
-     }
--    
-+
-     foreach my $url (qw(array1 array2)) {
-         my $res = GET "/perl_sections_perlconfig_$url/";
-         ok t_cmp($res->is_success, 1, '@PerlConfig');
-     }
--    
-+
-     Apache2::Const::OK;
- }
-Index: t/response/TestDirective/cmdparms.pm
-===================================================================
---- t/response/TestDirective/cmdparms.pm       (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestDirective/cmdparms.pm       (.../trunk)     (revision 630610)
-@@ -47,7 +47,7 @@
-     foreach my $method (@methods) {
-         $srv_cfg->{$args}{$method} = $parms->$method();
-     }
--    $srv_cfg->{$args}{check_ctx} = 
-+    $srv_cfg->{$args}{check_ctx} =
-         $parms->check_cmd_context(Apache2::Const::NOT_IN_LOCATION);
-     $srv_cfg->{$args}{limited} = $parms->method_is_limited('GET');
-Index: t/response/TestDirective/env.pm
-===================================================================
---- t/response/TestDirective/env.pm    (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestDirective/env.pm    (.../trunk)     (revision 630610)
-@@ -18,7 +18,7 @@
-     # %ENV
-     ok t_cmp(env_get('srv1'),
--             'env_dir1', 
-+             'env_dir1',
-              '%ENV per-dir override per-srv');
-     ok t_cmp(env_get('srv2'),
-Index: t/response/TestDirective/perlloadmodule.pm
-===================================================================
---- t/response/TestDirective/perlloadmodule.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestDirective/perlloadmodule.pm (.../trunk)     (revision 630610)
-@@ -38,7 +38,7 @@
-     my ($class, $parms) = @_;
-     bless {
--      path => $parms->path || "/",
-+        path => $parms->path || "/",
-     }, $class;
- }
-@@ -48,7 +48,7 @@
-     my %new = ();
-     @new{keys %$base, keys %$add} =
--      (values %$base, values %$add);
-+        (values %$base, values %$add);
-     return bless \%new, ref($base);
- }
-@@ -69,7 +69,7 @@
-     my ($class, $parms) = @_;
-     debug "$class->SERVER_CREATE\n";
-     return bless {
--      name => __PACKAGE__,
-+        name => __PACKAGE__,
-     }, $class;
- }
-Index: t/response/TestDirective/perlloadmodule3.pm
-===================================================================
---- t/response/TestDirective/perlloadmodule3.pm        (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestDirective/perlloadmodule3.pm        (.../trunk)     (revision 630610)
-@@ -112,7 +112,7 @@
-         $secs{"2: Location"}     = $dir_cfg;
-      }
--    $r->printf("Processing by %s.\n", 
-+    $r->printf("Processing by %s.\n",
-         $s->is_virtual ? "virtual host" : "main server");
-     for my $sec (sort keys %secs) {
-Index: t/response/TestDirective/perlrequire.pm
-===================================================================
---- t/response/TestDirective/perlrequire.pm    (.../tags/2_0_3)        (revision 630610)
-+++ t/response/TestDirective/perlrequire.pm    (.../trunk)     (revision 630610)
-@@ -26,7 +26,7 @@
-     Apache2::Const::OK;
- }
--my %require_tests = 
-+my %require_tests =
-     (
-      main => 'PerlRequired by Parent',
-      vh   => 'PerlRequired by VirtualHost',
-Index: t/protocol/eliza.t
-===================================================================
---- t/protocol/eliza.t (.../tags/2_0_3)        (revision 630610)
-+++ t/protocol/eliza.t (.../trunk)     (revision 630610)
-@@ -5,9 +5,9 @@
- use Apache::TestUtil;
- use Apache::TestRequest ();
--my @test_strings = ('Hello Eliza', 
--                    'How are you?', 
--                    'Why do I have core dumped?', 
-+my @test_strings = ('Hello Eliza',
-+                    'How are you?',
-+                    'Why do I have core dumped?',
-                     'I feel like writing some tests today, what about you?',
-                     'Good bye, Eliza');
-Index: t/perl/hash_attack.t
-===================================================================
---- t/perl/hash_attack.t       (.../tags/2_0_3)        (revision 630610)
-+++ t/perl/hash_attack.t       (.../trunk)     (revision 630610)
-@@ -7,7 +7,7 @@
- use Apache::TestRequest 'GET_BODY_ASSERT';
--plan tests => 1, 
-+plan tests => 1,
-     need { "relevant only for perl 5.8.2 and higher" => ($] >= 5.008002) };
- my $expected = "ok";
-Index: t/modperl/sameinterp.t
-===================================================================
---- t/modperl/sameinterp.t     (.../tags/2_0_3)        (revision 630610)
-+++ t/modperl/sameinterp.t     (.../trunk)     (revision 630610)
-@@ -1,78 +0,0 @@
--use strict;
--use warnings FATAL => 'all';
--
--# run tests through the same interpreter, even if the server is
--# running more than one
--
--use Apache::Test;
--use Apache::TestUtil;
--use Apache::TestRequest;
--
--use TestCommon::SameInterp;
--
--plan tests => 12, need 'HTML::HeadParser';
--
--my $url = "/TestModperl__sameinterp";
--
--# test the tie and re-tie
--for (1..2) {
--    my $same_interp = Apache::TestRequest::same_interp_tie($url);
--    ok $same_interp;
--
--    my $expected = 1;
--    my $skip  = 0;
--    # test GET over the same same_interp
--    for (1..2) {
--        $expected++;
--        my $res = same_interp_req($same_interp, \&GET, $url, foo => 'bar');
--        $skip++ unless defined $res;
--        same_interp_skip_not_found(
--            $skip,
--            defined $res && $res->content,
--            $expected,
--            "GET over the same interp"
--        );
--    }
--}
--
--{
--    # test POST over the same same_interp
--    my $same_interp = Apache::TestRequest::same_interp_tie($url);
--    ok $same_interp;
--
--    my $expected = 1;
--    my $skip  = 0;
--    for (1..2) {
--        $expected++;
--        my $content = join ' ', 'ok', $_ + 3;
--        my $res = same_interp_req($same_interp, \&POST, $url,
--            content => $content);
--        $skip++ unless defined $res;
--        same_interp_skip_not_found(
--            $skip,
--            defined $res && $res->content,
--            $expected,
--            "POST over the same interp"
--        );
--    }
--}
--
--{
--    # test HEAD over the same same_interp
--    my $same_interp = Apache::TestRequest::same_interp_tie($url);
--    ok $same_interp;
--
--    my $expected = 1;
--    my $skip  = 0;
--    for (1..2) {
--        $expected++;
--        my $res = same_interp_req($same_interp, \&HEAD, $url);
--        $skip++ unless defined $res;
--        same_interp_skip_not_found(
--            $skip,
--            defined $res && $res->header(Apache::TestRequest::INTERP_KEY),
--            $same_interp,
--            "HEAD over the same interp"
--        );
--    }
--}
-Index: t/modperl/pnotes2.t
-===================================================================
---- t/modperl/pnotes2.t        (.../tags/2_0_3)        (revision 0)
-+++ t/modperl/pnotes2.t        (.../trunk)     (revision 630610)
-@@ -0,0 +1,32 @@
-+use strict;
-+use warnings FATAL => 'all';
-+
-+use Apache::TestRequest qw(GET_BODY);
-+use Apache::Test;
-+use Apache::TestUtil;
-+use Apache::TestUtil qw/t_start_error_log_watch t_finish_error_log_watch/;
-+
-+my $module = 'TestModperl::pnotes2';
-+my $url    = Apache::TestRequest::module2url($module);
-+my ($u, $ok);
-+
-+t_debug("connecting to $url");
-+
-+plan tests => 12, need_lwp;
-+
-+Apache::TestRequest::user_agent(reset => 1, keep_alive => 0);
-+
-+for my $i (1..12) {
-+    t_client_log_warn_is_expected();
-+    t_start_error_log_watch;
-+    $u="$url?$i"; $ok=GET_BODY $u;
-+    select undef, undef, undef, 0.2;  # give it time to write the logfile
-+    ok t_cmp scalar(grep {
-+        /pnotes are destroyed after cleanup passed/;
-+    } t_finish_error_log_watch), 1, $u;
-+}
-+
-+# Local Variables: #
-+# mode: cperl #
-+# cperl-indent-level: 4 #
-+# End: #
-Index: t/modperl/cookie2.t
-===================================================================
---- t/modperl/cookie2.t        (.../tags/2_0_3)        (revision 630610)
-+++ t/modperl/cookie2.t        (.../trunk)     (revision 630610)
-@@ -14,7 +14,7 @@
- use Apache::Test;
- use Apache::TestUtil;
- use Apache::TestRequest;
--use TestCommon::SameInterp;
-+Apache::TestRequest::user_agent(keep_alive => 1);
- plan tests => 3, need 'HTML::HeadParser';
-@@ -30,21 +30,14 @@
- my @tests_ordered = qw(header subprocess_env env);
--t_debug "getting the same interp ID for $location";
--my $same_interp = Apache::TestRequest::same_interp_tie($location);
--
--my $skip = $same_interp ? 0 : 1;
- for my $test (@tests_ordered) {
-     my $cookie = "key=$test";
--    my $received = same_interp_req_body($same_interp, \&GET,
--                                        "$location?$test",
--                                        Cookie => $cookie);
--    $skip++ unless defined $received;
--    same_interp_skip_not_found(
--        $skip,
--        $received,
-+    my $received = GET "$location?$test", Cookie => $cookie;
-+
-+    ok t_cmp(
-+        $received->content,
-         $expected{$test},
--        "perl-script+SetupEnv/cookie: $test"
-+        "perl-script+SetupEnv/cookie: $test",
-     );
- }
-Index: t/modperl/cookie.t
-===================================================================
---- t/modperl/cookie.t (.../tags/2_0_3)        (revision 630610)
-+++ t/modperl/cookie.t (.../trunk)     (revision 630610)
-@@ -9,7 +9,7 @@
- # this test we call $r->subprocess_env, which adds them on demand, and
- # we are able to get the cookie via %ENV.
- #
--# the last sub-test makes sure that mod_cgi env vars don't persist 
-+# the last sub-test makes sure that mod_cgi env vars don't persist
- # and are properly re-set at the end of each request.
- #
- # since the test is run against the same interpreter we also test that
-@@ -19,9 +19,8 @@
- use Apache::Test;
- use Apache::TestUtil;
- use Apache::TestRequest;
-+Apache::TestRequest::user_agent(keep_alive => 1);
--use TestCommon::SameInterp;
--
- plan tests => 3, need 'HTML::HeadParser';
- my $module   = 'TestModperl::cookie';
-@@ -41,21 +40,17 @@
- my @tests_ordered = qw(header env nocookie);
--t_debug "getting the same interp ID for $location";
--my $same_interp = Apache::TestRequest::same_interp_tie($location);
-+GET $location;
--my $skip = $same_interp ? 0 : 1;
- for my $test (@tests_ordered) {
-     my $expected = $test eq 'nocookie' ? '' : "bar";
-     my @headers = ();
-     push @headers, (Cookie => $cookies{$test}) unless $test eq 'nocookie';
--    my $received = same_interp_req_body($same_interp, \&GET,
--                                        "$location?$test", @headers);
--    $skip++ unless defined $received;
--    same_interp_skip_not_found(
--        $skip,
--        $received,
-+    my $received = GET "$location?$test", @headers;
-+    
-+    ok t_cmp(
-+        $received->content,
-         $expected,
-         "perl-script+SetupEnv/cookie: $test"
-     );
-Index: t/lib/TestCommon/MemoryLeak.pm
-===================================================================
---- t/lib/TestCommon/MemoryLeak.pm     (.../tags/2_0_3)        (revision 630610)
-+++ t/lib/TestCommon/MemoryLeak.pm     (.../trunk)     (revision 630610)
-@@ -18,7 +18,7 @@
- #  % t/TEST -maxclients 1 -start
- #
- # of course use maxclients 1 only if your test be handled with one
--# client, e.g. proxy tests need at least two clients. 
-+# client, e.g. proxy tests need at least two clients.
- #
- # Now repeat the same test several times (more than 3)
- #
-Index: t/lib/TestCommon/SameInterp.pm
-===================================================================
---- t/lib/TestCommon/SameInterp.pm     (.../tags/2_0_3)        (revision 630610)
-+++ t/lib/TestCommon/SameInterp.pm     (.../trunk)     (revision 630610)
-@@ -100,7 +100,7 @@
- in the same_interp framework one runs
--  my $res = Apache::TestRequest::same_interp_do($same_interp, 
-+  my $res = Apache::TestRequest::same_interp_do($same_interp,
-       \&GET, $url, @data);
- but if there is a failure to find the same interpreter we get an
-Index: t/lib/TestAPRlib/date.pm
-===================================================================
---- t/lib/TestAPRlib/date.pm   (.../tags/2_0_3)        (revision 630610)
-+++ t/lib/TestAPRlib/date.pm   (.../trunk)     (revision 630610)
-@@ -45,7 +45,7 @@
-     # parse_http
-     for my $date_str (@http_dates) {
-         ok t_cmp(APR::Date::parse_http($date_str),
--                 $date_msec, 
-+                 $date_msec,
-                  "parse_http: $date_str");
-         #t_debug "testing : parse_http: $date_str";
-     }
-@@ -53,7 +53,7 @@
-     # parse_rfc
-     for my $date_str (@rfc_dates) {
-         ok t_cmp(APR::Date::parse_rfc($date_str),
--                 $date_msec, 
-+                 $date_msec,
-                  "parse_rfc: $date_str");
-         #t_debug "testing : parse_rfc: $date_str";
-     }
-Index: t/lib/TestAPRlib/status.pm
-===================================================================
---- t/lib/TestAPRlib/status.pm (.../tags/2_0_3)        (revision 630610)
-+++ t/lib/TestAPRlib/status.pm (.../trunk)     (revision 630610)
-@@ -15,7 +15,7 @@
-     return 2;
- }
--sub test {    
-+sub test {
-     ok APR::Status::is_EAGAIN(APR::Const::EAGAIN);
-     ok ! APR::Status::is_EAGAIN(APR::Const::ENOPOLL);
- }
-Index: t/lib/TestAPRlib/table.pm
-===================================================================
---- t/lib/TestAPRlib/table.pm  (.../tags/2_0_3)        (revision 630610)
-+++ t/lib/TestAPRlib/table.pm  (.../trunk)     (revision 630610)
-@@ -334,7 +334,7 @@
-         $table2->set($_**2 => $_**2) for 1..20;
-         my $table2_copy = APR::Table::make($pool, 1);
-         $table2_copy->set($_ => $_) for 1..20;
--        
-+
-         my $overlay = $table2_copy->overlay($table2, $pool->new);
-         {
-             # see the comment for above's:
-Index: t/lib/TestAPRlib/threadrwlock.pm
-===================================================================
---- t/lib/TestAPRlib/threadrwlock.pm   (.../tags/2_0_3)        (revision 0)
-+++ t/lib/TestAPRlib/threadrwlock.pm   (.../trunk)     (revision 630610)
-@@ -0,0 +1,39 @@
-+package TestAPRlib::threadrwlock;
-+
-+use strict;
-+use warnings FATAL => 'all';
-+
-+use Apache::Test;
-+use Apache::TestUtil;
-+
-+use APR::Const -compile => qw(EBUSY SUCCESS);
-+use APR::Pool();
-+
-+sub num_of_tests {
-+    return 5;
-+}
-+
-+sub test {
-+
-+    require APR::ThreadRWLock;
-+
-+    my $pool = APR::Pool->new();
-+    my $mutex = APR::ThreadRWLock->new($pool);
-+
-+    ok $mutex;
-+
-+    ok t_cmp($mutex->rdlock, APR::Const::SUCCESS,
-+             'rdlock == APR::Const::SUCCESS');
-+
-+    ok t_cmp($mutex->unlock, APR::Const::SUCCESS,
-+             'unlock == APR::Const::SUCCESS');
-+
-+    ok t_cmp($mutex->wrlock, APR::Const::SUCCESS,
-+             'wrlock == APR::Const::SUCCESS');
-+
-+    ok t_cmp($mutex->unlock, APR::Const::SUCCESS,
-+             'unlock == APR::Const::SUCCESS');
-+
-+}
-+
-+1;
-Index: t/lib/TestAPRlib/finfo.pm
-===================================================================
---- t/lib/TestAPRlib/finfo.pm  (.../tags/2_0_3)        (revision 630610)
-+++ t/lib/TestAPRlib/finfo.pm  (.../trunk)     (revision 630610)
-@@ -144,7 +144,7 @@
-             ok t_cmp($finfo->protection & APR::Const::FPROT_WREAD,
-                      $stat->{protection} & S_IROTH,
-                      '$finfo->protection() & APR::Const::FPROT_WREAD');
--      }
-+        }
-         if (WIN32 and APACHE_2_2_PLUS) {
-             skip "broken apr stat on Win32", 0;
-         }
-@@ -152,7 +152,7 @@
-             ok t_cmp($finfo->protection & APR::Const::FPROT_WWRITE,
-                      $stat->{protection} & S_IWOTH,
-                      '$finfo->protection() & APR::Const::FPROT_WWRITE');
--      }
-+        }
-         if (WIN32) {
-             skip "different file semantics", 0;
-         }
-Index: t/modules/reload.t
-===================================================================
---- t/modules/reload.t (.../tags/2_0_3)        (revision 630610)
-+++ t/modules/reload.t (.../trunk)     (revision 630610)
-@@ -1,107 +0,0 @@
--use strict;
--use warnings FATAL => 'all';
--
--use Apache::Test;
--use Apache::TestUtil;
--use Apache::TestRequest;
--use File::Spec::Functions qw(catfile);
--
--use TestCommon::SameInterp;
--
--plan tests => 3, need 'HTML::HeadParser';
--
--my $test_file = catfile Apache::Test::vars("serverroot"),
--    qw(lib Apache2 Reload Test.pm);
--
--my $module   = 'TestModules::reload';
--my $location = '/' . Apache::TestRequest::module2path($module);
--
--my @tests = qw(simple const prototype subpackage);
--
--my $header = join '', <DATA>;
--
--my $initial = <<'EOF';
--sub simple { 'simple' }
--use constant const => 'const';
--sub prototype($) { 'prototype' }
--sub promised;
--EOF
--
--my $modified = <<'EOF';
--sub simple { 'SIMPLE' }
--use constant const => 'CONST';
--sub prototype($$) { 'PROTOTYPE' }
--EOF
--
--t_write_file($test_file, $header, $initial);
--
--t_debug "getting the same interp ID for $location";
--my $same_interp = Apache::TestRequest::same_interp_tie($location);
--
--my $skip = $same_interp ? 0 : 1;
--
--{
--    my $expected = join '', map { "$_:$_\n" } sort @tests;
--    my $received = same_interp_req_body($same_interp, \&GET,
--                                        $location);
--    $skip++ unless defined $received;
--    same_interp_skip_not_found(
--        $skip,
--        $received,
--        $expected,
--        "Initial"
--    );
--}
--
--t_write_file($test_file, $header, $modified);
--touch_mtime($test_file);
--
--{
--    my $expected = join '', map { "$_:" . uc($_) . "\n" } sort @tests;
--    my $received = same_interp_req_body($same_interp, \&GET,
--                                        $location);
--    $skip++ unless defined $received;
--    same_interp_skip_not_found(
--        $skip,
--        $received,
--        $expected,
--        "Reload"
--    );
--}
--
--{
--    my $expected = "unregistered OK";
--    my $received = same_interp_req_body($same_interp, \&GET, 
--                                        $location . '?last' );
--    $skip++ unless defined $received;
--    same_interp_skip_not_found(
--        $skip,
--        $received,
--        $expected,
--        "Unregister"
--    );
--}
--
--sub touch_mtime {
--    my $file = shift;
--    # push the mtime into the future (at least 2 secs to work on win32)
--    # so Apache2::Reload will reload the package
--    my $time = time + 5; # make it 5 to be sure
--    utime $time, $time, $file;
--}
--
--__DATA__
--package Apache2::Reload::Test;
--
--use Apache2::Reload;
--
--our @methods = qw(simple const prototype subpackage);
--
--sub subpackage { return Apache2::Reload::Test::SubPackage::subpackage() } 
--
--sub run {
--    my $r = shift;
--    foreach my $m (sort @methods) {
--        $r->print($m, ':', __PACKAGE__->$m(), "\n");
--    }
--}
-Index: t/modules/apache_status.t
-===================================================================
---- t/modules/apache_status.t  (.../tags/2_0_3)        (revision 630610)
-+++ t/modules/apache_status.t  (.../trunk)     (revision 630610)
-@@ -18,13 +18,9 @@
- {
-     my $url = "$base_url";
-     my $body = GET_BODY_ASSERT $url;
--    (my $pver = $]) =~ s/00//;
--    $pver =~ s/(\d\.\d)(.*)/"$1." . ($2 ? int($2) : 0)/e;
--    #t_debug $body;
--    t_debug $pver;
--    # expecting: Embedded Perl version v5.8.2 for ...
--    ok $body =~ /$pver/;
--
-+    # expecting: Embedded Perl version <b>v5.8.2</b> for ...
-+    my $pver = $^V ? sprintf "v%vd", $^V : $];
-+    ok t_cmp($body, qr[Embedded Perl version <b>$pver</b> for]);
-     # menu_item, part 1
-     # expecting: Test Entry
-     ok $body =~ /Test Menu Entry/;
-Index: t/directive/perl.t
-===================================================================
---- t/directive/perl.t (.../tags/2_0_3)        (revision 630610)
-+++ t/directive/perl.t (.../trunk)     (revision 630610)
-@@ -10,7 +10,7 @@
- my @auth = (Authorization => 'Basic ZG91Z206Zm9v'); #dougm:foo
--foreach my $location ("/perl_sections/index.html", 
-+foreach my $location ("/perl_sections/index.html",
-                       "/perl_sections_readconfig/index.html") {
-     sok {
-Index: lib/ModPerl/WrapXS.pm
-===================================================================
---- lib/ModPerl/WrapXS.pm      (.../tags/2_0_3)        (revision 630610)
-+++ lib/ModPerl/WrapXS.pm      (.../trunk)     (revision 630610)
-@@ -289,7 +289,7 @@
- EOF
-             }
-             elsif ($access_mode eq 'rw_char_undef') {
--                my $pool = $e->{pool} 
-+                my $pool = $e->{pool}
-                     or die "rw_char_undef accessors need pool";
-                 $pool .= '(obj)';
- # XXX: not sure where val=$default is coming from, but for now use
-@@ -595,8 +595,9 @@
-         }
-     }
--    if ($module eq 'APR::Pool') {
-+    if ($module eq 'APR::Pool' && Apache2::Build::PERL_HAS_ITHREADS) {
-         print $fh "    modperl_opt_interp_unselect = APR_RETRIEVE_OPTIONAL_FN(modperl_interp_unselect);\n\n";
-+        print $fh "    modperl_opt_thx_interp_get  = APR_RETRIEVE_OPTIONAL_FN(modperl_thx_interp_get);\n\n";
-     }
-     close $fh;
-@@ -778,7 +779,7 @@
- my $objects;
- sub _get_modules {
--    for my $method (sort keys %$methods) { 
-+    for my $method (sort keys %$methods) {
-         for my $item ( @{ $methods->{$method} }) {
-             push @{ $modules->{$item->[MODULE]} }, [$method, $item->[OBJECT]];
-         }
-@@ -786,7 +787,7 @@
- }
- sub _get_objects {
--    for my $method (sort keys %$methods) { 
-+    for my $method (sort keys %$methods) {
-         for my $item ( @{ $methods->{$method} }) {
-             next unless defined $item->[OBJECT];
-             push @{ $objects->{$item->[OBJECT]} }, [$method, $item->[MODULE]];
-@@ -945,7 +946,7 @@
-     my @args = @_ ? @_ : @ARGV;
-     while (@args) {
-          my $method = shift @args;
--         my $object = (@args && 
-+         my $object = (@args &&
-              (ref($args[0]) || $args[0] =~ /^(Apache2|ModPerl|APR)/))
-              ? shift @args
-              : undef;
-@@ -1065,7 +1066,7 @@
-     my $format = "%-${max_len}s %s\n";
-     my $banner = sprintf($format, "Method", "Invoked on object type");
-     my $hint = join '',
--        ("\nModule '$module' contains the following XS methods:\n\n", 
-+        ("\nModule '$module' contains the following XS methods:\n\n",
-          $banner,  sep(length($banner)),
-          map( { sprintf $format, $_->[0], $_->[1]||'???'}
-              @{ $modules->{$module} }),
-@@ -1225,10 +1226,10 @@
-     if (my $attr = $entry->{attr}) {
-         return 1 if grep { $_ eq 'static' } @$attr;
-     }
--    
-+
-     #C::Scan doesnt always pickup static __inline__
-     return 1 if $entry->{name} =~ /^mpxs_/o;
--    
-+
-     return 0;
- }
-@@ -1297,7 +1298,7 @@
-     while (my ($key, $table) = each %files) {
-         my $handles = $self->open_export_files($key, $ext);
--      my %seen; #only write header once if this is a single file
-+        my %seen; #only write header once if this is a single file
-         for my $fh (values %$handles) {
-             next if $seen{$fh}++;
-             print $fh $self->$header();
-@@ -1356,14 +1357,14 @@
- EOF
-         return;
-     }
--    
-+
-     print $fh <<"EOF";
--/* 
-+/*
-  * This is indeed a ugly hack!
-  * See also src/modules/perl/mod_perl.c for modperl_ugly_hack
-  * If we don't build such a list of exported API functions, the over-zealous
-  * linker can and will remove the unused functions completely. In order to
-- * avoid this, we create this object and modperl_ugly_hack to create a 
-+ * avoid this, we create this object and modperl_ugly_hack to create a
-  * dependency between all the exported API and mod_perl.c
-  */
- const void *modperl_ugly_hack = NULL;
-Index: lib/ModPerl/Config.pm
-===================================================================
---- lib/ModPerl/Config.pm      (.../tags/2_0_3)        (revision 630610)
-+++ lib/ModPerl/Config.pm      (.../trunk)     (revision 630610)
-@@ -56,7 +56,7 @@
-         $cfg .= qx{$command};
-         $cfg .= Apache::TestConfig::ldd_as_string($httpd);
--    } 
-+    }
-     else {
-         $cfg .= "\n\n*** The httpd binary was not found\n";
-     }
-Index: lib/ModPerl/Manifest.pm
-===================================================================
---- lib/ModPerl/Manifest.pm    (.../tags/2_0_3)        (revision 630610)
-+++ lib/ModPerl/Manifest.pm    (.../trunk)     (revision 630610)
-@@ -40,7 +40,7 @@
-     my @files;
-     my $cwd = Cwd::cwd();
--    my @lines = `svn status -v`       ;
-+    my @lines = `svn status -v` ;
-     foreach my $line (@lines) {
-         chomp $line;
-         if ($line =~ /(?:\d+)\s+(?:\d+)\s+(?:\w+)\s+(.*)\s*/) {
-Index: lib/ModPerl/CScan.pm
-===================================================================
---- lib/ModPerl/CScan.pm       (.../tags/2_0_3)        (revision 630610)
-+++ lib/ModPerl/CScan.pm       (.../trunk)     (revision 630610)
-@@ -8,7 +8,7 @@
- # it's not a requirement for mod_perl users
- use Data::Flow qw(0.05);
--use strict;                   # Earlier it catches ISA and EXPORT.
-+use strict;                     # Earlier it catches ISA and EXPORT.
- @ModPerl::CScan::ISA = qw(Exporter Data::Flow);
-@@ -17,9 +17,9 @@
- # Do not simply export all your public functions/methods/constants.
- @ModPerl::CScan::EXPORT = qw(
--          );
-+            );
- @ModPerl::CScan::EXPORT_OK = qw(
--                      );
-+                        );
- # this flag tells cpp to only output macros
- $ModPerl::CScan::MACROS_ONLY = '-dM';
-@@ -38,8 +38,8 @@
- for (qw(__func__ _Complex _Imaginary _Bool inline restrict)) {
-   $style_keywords{'C9X'}{$_}++;
- }
--for (qw(inline const asm noreturn section 
--      constructor destructor unused weak)) {
-+for (qw(inline const asm noreturn section
-+        constructor destructor unused weak)) {
-   $style_keywords{'GNU'}{$_}++;
-   $style_keywords{'GNU'}{"__$ {_}__"}++;
- }
-@@ -57,37 +57,37 @@
-       c_styles => { default => [qw(C++ GNU C9X)] },
-       add_cppflags => { default => '' },
-       keywords => { prerequisites => ['c_styles'],
--                  output => sub {
--                    my %kw = %keywords;
--                    my %add;
--                    for ( @{ shift->{c_styles} } ) {
--                      %add = %{ $style_keywords{$_} };
--                      %kw = (%kw, %add);
--                    }
--                    \%kw;
--                  }, },
-+                    output => sub {
-+                      my %kw = %keywords;
-+                      my %add;
-+                      for ( @{ shift->{c_styles} } ) {
-+                        %add = %{ $style_keywords{$_} };
-+                        %kw = (%kw, %add);
-+                      }
-+                      \%kw;
-+                    }, },
-       'undef' => { default => undef },
-       filename_filter => { default => undef },
-       full_text => { class_filter => [ 'text', 'C::Preprocessed',
--                                     qw(undef filename Defines includeDirs Cpp)] },
-+                                       qw(undef filename Defines includeDirs Cpp)] },
-       text => { class_filter => [ 'text', 'C::Preprocessed',
--                                qw(filename_filter filename Defines includeDirs Cpp)] },
-+                                  qw(filename_filter filename Defines includeDirs Cpp)] },
-       text_only_from => { class_filter => [ 'text_only_from', 'C::Preprocessed',
--                                          qw(filename_filter filename Defines includeDirs Cpp)] },
--      includes => { filter => [ \&includes, 
--                              qw(filename Defines includeDirs Cpp) ], },
--      includeDirs =>  { prerequisites => ['filedir'], 
--                      output => sub {
--                        my $data = shift;
--                        [ $data->{filedir}, '/usr/local/include', '.'];
--                      } },
--      Cpp => { prerequisites => [qw(cppminus add_cppflags cppflags cppstdin)], 
--             output => sub {
--               my $data = shift;
--               return { cppstdin => $data->{cppstdin},
--                        cppflags => "$data->{cppflags} $data->{add_cppflags}",
--                        cppminus => $data->{cppminus} };
--             } },
-+                                            qw(filename_filter filename Defines includeDirs Cpp)] },
-+      includes => { filter => [ \&includes,
-+                                qw(filename Defines includeDirs Cpp) ], },
-+      includeDirs =>  { prerequisites => ['filedir'],
-+                        output => sub {
-+                          my $data = shift;
-+                          [ $data->{filedir}, '/usr/local/include', '.'];
-+                        } },
-+      Cpp => { prerequisites => [qw(cppminus add_cppflags cppflags cppstdin)],
-+               output => sub {
-+                 my $data = shift;
-+                 return { cppstdin => $data->{cppstdin},
-+                          cppflags => "$data->{cppflags} $data->{add_cppflags}",
-+                          cppminus => $data->{cppminus} };
-+               } },
-       filedir => { output => sub { dirname ( shift->{filename} || '.' ) } },
-       sanitized => { filter => [ \&sanitize, 'text'], },
-       toplevel => { filter => [ \&top_level, 'sanitized'], },
-@@ -97,30 +97,30 @@
-       typedef_chunks => { filter => [ \&typedef_chunks, 'full_toplevel'], },
-       struct_chunks => { filter => [ \&struct_chunks, 'full_toplevel'], },
-       typedefs_whited => { filter => [ \&typedefs_whited,
--                                     'full_sanitized', 'typedef_chunks',
--                                     'keywords_rex'], },
-+                                       'full_sanitized', 'typedef_chunks',
-+                                       'keywords_rex'], },
-       typedef_texts => { filter => [ \&typedef_texts,
--                                   'full_text', 'typedef_chunks'], },
-+                                     'full_text', 'typedef_chunks'], },
-       struct_texts => { filter => [ \&typedef_texts,
--                                  'full_text', 'struct_chunks'], },
-+                                    'full_text', 'struct_chunks'], },
-       typedef_hash => { filter => [ \&typedef_hash,
--                                  'typedef_texts', 'typedefs_whited'], },
-+                                    'typedef_texts', 'typedefs_whited'], },
-       typedef_structs => { filter => [ \&typedef_structs,
--                                     'typedef_hash', 'struct_texts'], },
-+                                       'typedef_hash', 'struct_texts'], },
-       typedefs_maybe => { filter => [ sub {[keys %{+shift}]},
--                                    'typedef_hash'], },
-+                                      'typedef_hash'], },
-       defines_maybe => { filter => [ \&defines_maybe, 'filename'], },
-       defines_no_args => { prerequisites => ['defines_maybe'],
--                         output => sub { shift->{defines_maybe}->[0] }, },
-+                           output => sub { shift->{defines_maybe}->[0] }, },
-       defines_args => { prerequisites => ['defines_maybe'],
--                      output => sub { shift->{defines_maybe}->[1] }, },
-+                        output => sub { shift->{defines_maybe}->[1] }, },
--      defines_full => { filter => [ \&defines_full, 
--                                  qw(filename Defines includeDirs Cpp) ], },
-+      defines_full => { filter => [ \&defines_full,
-+                                    qw(filename Defines includeDirs Cpp) ], },
-       defines_no_args_full => { prerequisites => ['defines_full'],
--                              output => sub { shift->{defines_full}->[0] }, },
-+                                output => sub { shift->{defines_full}->[0] }, },
-       defines_args_full => { prerequisites => ['defines_full'],
--                      output => sub { shift->{defines_full}->[1] }, },
-+                        output => sub { shift->{defines_full}->[1] }, },
-       decl_inlines => { filter => [ \&functions_in, 'no_type_decl'], },
-       inline_chunks => { filter => [ sub { shift->[0] }, 'decl_inlines'], },
-@@ -134,13 +134,13 @@
-       vdecl_chunks => { filter => [ sub { shift->[3] }, 'decl_inlines'], },
-       vdecls => { filter => [ \&from_chunks, 'vdecl_chunks', 'text'], },
-       vdecl_hash => { filter => [ \&vdecl_hash, 'vdecls', 'mdecls' ], },
--      parsed_fdecls => { filter => [ \&do_declarations, 'fdecls', 
--                                   'typedef_hash', 'keywords'], },
-+      parsed_fdecls => { filter => [ \&do_declarations, 'fdecls',
-+                                     'typedef_hash', 'keywords'], },
-       keywords_rex => { filter => [ sub { my @k = keys %{ shift() };
--                                        local $" = '|';
--                                        my $r = "(?:@k)";
--                                        eval 'qr/$r/' or $r   # Older Perls
--                                      }, 'keywords'], },
-+                                          local $" = '|';
-+                                          my $r = "(?:@k)";
-+                                          eval 'qr/$r/' or $r   # Older Perls
-+                                        }, 'keywords'], },
-     };
- sub from_chunks {
-@@ -164,11 +164,11 @@
-     or die "Cannot open pipe from cppstdin: $!\n";
-   while (<$stream>) {
--    next unless m(^\s*\#\s*   # Leading hash
--                (line\s*)?    # 1: Optional line
--                ([0-9]+)\s*   # 2: Line number
--                (.*)          # 3: The rest
--               )x;
-+    next unless m(^\s*\#\s*     # Leading hash
-+                  (line\s*)?    # 1: Optional line
-+                  ([0-9]+)\s*   # 2: Line number
-+                  (.*)          # 3: The rest
-+                 )x;
-     my $include = $3;
-     $include = $1 if $include =~ /"(.*)"/; # Filename may be in quotes
-     $include =~ s,\\\\,/,g if $^O eq 'os2';
-@@ -182,19 +182,19 @@
-   my ($mline,$line,%macros,%macrosargs,$sym,$args);
-   open(C, $file) or die "Cannot open file $file: $!\n";
-   while (not eof(C) and $line = <C>) {
--    next unless 
-+    next unless
-       ( $line =~ s[
--                 ^ \s* \# \s* # Start of directive
--                 define \s+
--                 (\w+)        # 1: symbol
--                 (?:
--                  \( (.*?) \s* \) # 2: Minimal match for arguments
-+                   ^ \s* \# \s* # Start of directive
-+                   define \s+
-+                   (\w+)        # 1: symbol
-+                   (?:
-+                    \( (.*?) \s* \) # 2: Minimal match for arguments
-                                     # in parenths (without trailing
-                                     # spaces)
--                 )?           # optional, no grouping
--                 \s*          # rest is the definition
--                 ([\s\S]*)    # 3: the rest
--                ][]x );
-+                   )?           # optional, no grouping
-+                   \s*          # rest is the definition
-+                   ([\s\S]*)    # 3: the rest
-+                  ][]x );
-     ($sym, $args, $mline) = ($1, $2, $3);
-     $mline .= <C> while not eof(C) and $mline =~ s/\\\n/\n/;
-     chomp $mline;
-@@ -221,19 +221,19 @@
-     or die "Cannot open pipe from cppstdin: $!\n";
-   while (defined ($line = <$stream>)) {
--    next unless 
-+    next unless
-       ( $line =~ s[
--                 ^ \s* \# \s* # Start of directive
--                 define \s+
--                 (\w+)        # 1: symbol
--                 (?:
--                  \( (.*?) \s* \) # 2: Minimal match for arguments
-+                   ^ \s* \# \s* # Start of directive
-+                   define \s+
-+                   (\w+)        # 1: symbol
-+                   (?:
-+                    \( (.*?) \s* \) # 2: Minimal match for arguments
-                                     # in parenths (without trailing
-                                     # spaces)
--                 )?           # optional, no grouping
--                 \s*          # rest is the definition
--                 ([\s\S]*)    # 3: the rest
--                ][]x );
-+                   )?           # optional, no grouping
-+                   \s*          # rest is the definition
-+                   ([\s\S]*)    # 3: the rest
-+                  ][]x );
-     ($sym, $args, $mline) = ($1, $2, $3);
-     $mline .= <$stream> while ($mline =~ s/\\\n/\n/);
-     chomp $mline;
-@@ -249,7 +249,7 @@
-   [\%macros, \%macrosargs];
- }
--sub typedef_chunks {          # Input is toplevel, output: starts and ends
-+sub typedef_chunks {            # Input is toplevel, output: starts and ends
-   my $txt = shift;
-   pos $txt = 0;
-   my ($b, $e, @out);
-@@ -273,7 +273,7 @@
-   \@out;
- }
--sub typedefs_whited {         # Input is sanitized text, and list of beg/end.
-+sub typedefs_whited {           # Input is sanitized text, and list of beg/end.
-   my @lst = @{$_[1]};
-   my @out;
-   my ($b, $e);
-@@ -325,35 +325,35 @@
-       $wh =~ /,/g;
-       my $p = pos $wh;
-       my ($s, $e);
--      if (matchingbrace($wh)) {       # Inside.  Easy part: just split on /,/...
--      $e = pos($wh) - 1;
--      $s = $e;
--      my $d = 0;
--      # Skip back
--      while (--$s >= 0) {
--        my $c = substr $wh, $s, 1;
--        if ($c =~ /[\(\{\[]/) {
--          $d--;
--        } elsif ($c =~ /[\)\]\}]/) {
--          $d++;
--        }
--        last if $d < 0;
--      }
--      if ($s < 0) {           # Should not happen
--        warn("panic: could not match braces in\n\t$td\nwhited as\n\t$wh\n");
--        next loop;
--      }
--      $s++;
--      } else {                        # We are at toplevel
--      # We need to skip back all the modifiers attached to the first thingy
--      # Guesstimates: everything after the first '*' (inclusive)
--      pos $wh = 0;
--      $wh = /(?=\w)/g;
--      my $ws = pos $wh;
--      my $pre = substr $wh, 0, $ws;
--      $s = $ws;
--      $s = pos $pre if $pre =~ /(?=\*)/g;
--      $e = length $wh;
-+      if (matchingbrace($wh)) { # Inside.  Easy part: just split on /,/...
-+        $e = pos($wh) - 1;
-+        $s = $e;
-+        my $d = 0;
-+        # Skip back
-+        while (--$s >= 0) {
-+          my $c = substr $wh, $s, 1;
-+          if ($c =~ /[\(\{\[]/) {
-+            $d--;
-+          } elsif ($c =~ /[\)\]\}]/) {
-+            $d++;
-+          }
-+          last if $d < 0;
-+        }
-+        if ($s < 0) {           # Should not happen
-+          warn("panic: could not match braces in\n\t$td\nwhited as\n\t$wh\n");
-+          next loop;
-+        }
-+        $s++;
-+      } else {                  # We are at toplevel
-+        # We need to skip back all the modifiers attached to the first thingy
-+        # Guesstimates: everything after the first '*' (inclusive)
-+        pos $wh = 0;
-+        $wh = /(?=\w)/g;
-+        my $ws = pos $wh;
-+        my $pre = substr $wh, 0, $ws;
-+        $s = $ws;
-+        $s = pos $pre if $pre =~ /(?=\*)/g;
-+        $e = length $wh;
-       }
-       # Now: need to split $td based on commas in $wh!
-       # And need to split each chunk of $td based on word in the chunk of $wh!
-@@ -364,29 +364,29 @@
-       my $td_s = 0;
-       my (@td_decl, @td_pre, @td_post, @td_word);
-       for my $wh_d (@wh_decls) {
--      my $td_d = substr $td, $td_s, length $wh_d;
--      push @td_decl, $td_d;
--      $wh_d =~ /(\w+)/g;
--      push @td_word, $1;
--      push @td_post, substr $td_d, pos($wh_d);
--      push @td_pre,  substr $td_d, pos($wh_d) - length $1, length $1;
--      $td_s += 1 + length $wh_d; # Skip over ','
-+        my $td_d = substr $td, $td_s, length $wh_d;
-+        push @td_decl, $td_d;
-+        $wh_d =~ /(\w+)/g;
-+        push @td_word, $1;
-+        push @td_post, substr $td_d, pos($wh_d);
-+        push @td_pre,  substr $td_d, pos($wh_d) - length $1, length $1;
-+        $td_s += 1 + length $wh_d; # Skip over ','
-       }
-       for my $i (0..$#wh_decls) {
--      my $p = "$td_post[$i]$post";
--      $p = '' unless $p =~ /\S/;
--      $out{$td_word[$i]} = ["$pre$td_pre[$i]", $p];
-+        my $p = "$td_post[$i]$post";
-+        $p = '' unless $p =~ /\S/;
-+        $out{$td_word[$i]} = ["$pre$td_pre[$i]", $p];
-       }
--    } elsif ($td =~ /\(\s* \*? \s* ([^)]+) \s* \) \s* \(.*\)/gxs){    # XXX: function pointer typedef
-+    } elsif ($td =~ /\(\s* \*? \s* ([^)]+) \s* \) \s* \(.*\)/gxs){      # XXX: function pointer typedef
-       $out{$1} = ['XXX: pre_foo', 'XXX: post_bar']; # XXX: not sure what to stuff here
-       #warn "[$1] [$td]" if $verb;
--    } else {                  # Only one thing defined...
-+    } else {                    # Only one thing defined...
-       $wh =~ /(\w+)/g;
--      my $e   = pos $wh;
--      my $s   = $e - length $1;
--      my $type        = $1;
--      my $pre = substr $td, 0, $s;
--      my $post        = substr $td, $e, length($td) - $e;
-+      my $e     = pos $wh;
-+      my $s     = $e - length $1;
-+      my $type  = $1;
-+      my $pre   = substr $td, 0, $s;
-+      my $post  = substr $td, $e, length($td) - $e;
-       $post = '' unless $post =~ /\S/;
-       $out{$type} = [$pre, $post];
-     }
-@@ -459,18 +459,18 @@
-     $word = $1;
-     if ($word eq ';' || $word eq '') {
-       next unless defined $id;
--      $type = 'int' unless defined $type;     # or is this an error?
-+      $type = 'int' unless defined $type;       # or is this an error?
-       push @$vars, [ $type, $post, $id ];
-       ($type, $post, $id, $func) = (undef, undef, undef);
-     } elsif ($word eq ',') {
-       warn "panic: expecting name before comma in '$in'\n" unless defined $id;
--      $type = 'int' unless defined $type;     # or is this an error?
-+      $type = 'int' unless defined $type;       # or is this an error?
-       push @$vars, [ $type, $post, $id ];
-       $type =~ s/[ *]*$//;
-       $id = undef;
-     } elsif ($word eq '[') {
-       warn "panic: expecting name before '[' in '$in'\n" unless defined $id;
--      $type = 'int' unless defined $type;     # or is this an error?
-+      $type = 'int' unless defined $type;       # or is this an error?
-       my $b = pos $in;
-       matchingbrace($in);
-       $post .= $word . substr $in, $b, pos($in) - $b;
-@@ -479,15 +479,15 @@
-       $type = join ' ', grep defined, $type, $id if defined $id;
-       $type = 'int' unless defined $type;
-       if ($in =~ /\G\s*(\*[\s\*]*?)\s*(\w+)[\[\]\d\s]*(\)\s*\()/gc) {
--      $type .= "($1";
--      $id = $2;
--      $post = $3;
--      my $b = pos $in;
--      matchingbrace($in);
--      $post .= substr $in, $b, pos($in) - $b;
-+        $type .= "($1";
-+        $id = $2;
-+        $post = $3;
-+        my $b = pos $in;
-+        matchingbrace($in);
-+        $post .= substr $in, $b, pos($in) - $b;
-       } else {
--      warn "panic: can't parse function pointer declaration in '$in'\n";
--      return;
-+        warn "panic: can't parse function pointer declaration in '$in'\n";
-+        return;
-       }
-     } elsif ($word =~ /^:/) {
-       # bitfield
-@@ -495,14 +495,14 @@
-       $post .= $word;
-     } else {
-       if (defined $post) {
--      if ($func) {
--        $post .= $word;
--      } else {
--        warn "panic: not expecting '$word' after array bounds in '$in'\n";
--      }
-+        if ($func) {
-+          $post .= $word;
-+        } else {
-+          warn "panic: not expecting '$word' after array bounds in '$in'\n";
-+        }
-       } else {
--      $type = join ' ', grep defined, $type, $id if defined $id;
--      $id = $word;
-+        $type = join ' ', grep defined, $type, $id if defined $id;
-+        $id = $word;
-       }
-     }
-   }
-@@ -517,7 +517,7 @@
-   my ($vdecls, $mdecls) = @_;
-   my %vdecl_hash;
-   for (@$vdecls, @$mdecls) {
--    next if /[()]/;   # ignore functions, and function pointers
-+    next if /[()]/;     # ignore functions, and function pointers
-     my $copy = $_;
-     next unless $copy =~ s/^\s*extern\s*//;
-     my $vars = parse_vars($copy);
-@@ -529,8 +529,8 @@
- # The output is the list of list of inline chunks and list of
- # declaration chunks.
--sub functions_in {            # The arg is text without type declarations.
--  my $in = shift;             # remove_type_decl(top_level(sanitize($txt)));
-+sub functions_in {              # The arg is text without type declarations.
-+  my $in = shift;               # remove_type_decl(top_level(sanitize($txt)));
-   # What remains now consists of variable and function declarations,
-   # and inline functions.
-   $in =~ /(?=\S)/g;
-@@ -542,7 +542,7 @@
-     $e = pos $in;
-     $chunk = substr $in, $b, $e - $b;
-     # Now subdivide the chunk.
--    # 
-+    #
-     # What we got is one chunk, probably finished by `;'. Whoever, it
-     # may start with several inline functions.
-     #
-@@ -552,39 +552,39 @@
-       $e1 = pos $chunk;
-       push @inlines, $b + $b1, $b + $e1;
-       $chunk =~ /(?=\S)/g;
--      $b1 = pos $chunk; 
-+      $b1 = pos $chunk;
-       $b1 = length $chunk, last unless defined $b1;
-     }
-     if ($e - $b - $b1 > 0) {
-       my ($isvar, $isfunc) = (1, 1);
-       substr ($chunk, 0, $b1) = '';
--      if ($chunk =~ /,/) {    # Contains multiple declarations.
--      push @mdecls, $b + $b1, $e;
--      } else  {                       # Non-multiple.
--      # Since leading \s* is not optimized, this is quadratic!
--      $chunk =~ s{
--                   ( ( const | __const
--                       | __attribute__ \s* \( \s* \)
--                     ) \s* )* ( ; \s* )? \Z # Strip from the end
--                 }()x;
--      $chunk =~ s/\s*\Z//;
--      if ($chunk =~ /\)\Z/) { # Function declaration ends on ")"!
--        if ($chunk !~ m{ 
--                        \( .* \( # Multiple parenths
--                       }x
--            and $chunk =~ / \w \s* \( /x) { # Most probably pointer to a function?
--          $isvar = 0;
--        }
--      } elsif ($chunk =~ /
--        ^ \s* (enum|struct|union|class) \s+ \w+ \s* $
--      /x) {
--        $isvar = $isfunc = 0;
--      }
--      if ($isvar)  {  # Heuristically variable
--        push @vdecls, $b + $b1, $e;
--      } elsif ($isfunc) {
--        push @fdecls, $b + $b1, $e;
--      }
-+      if ($chunk =~ /,/) {      # Contains multiple declarations.
-+        push @mdecls, $b + $b1, $e;
-+      } else  {                 # Non-multiple.
-+        # Since leading \s* is not optimized, this is quadratic!
-+        $chunk =~ s{
-+                     ( ( const | __const
-+                         | __attribute__ \s* \( \s* \)
-+                       ) \s* )* ( ; \s* )? \Z # Strip from the end
-+                   }()x;
-+        $chunk =~ s/\s*\Z//;
-+        if ($chunk =~ /\)\Z/) { # Function declaration ends on ")"!
-+          if ($chunk !~ m{
-+                          \( .* \( # Multiple parenths
-+                         }x
-+              and $chunk =~ / \w \s* \( /x) { # Most probably pointer to a function?
-+            $isvar = 0;
-+          }
-+        } elsif ($chunk =~ /
-+          ^ \s* (enum|struct|union|class) \s+ \w+ \s* $
-+        /x) {
-+          $isvar = $isfunc = 0;
-+        }
-+        if ($isvar)  {  # Heuristically variable
-+          push @vdecls, $b + $b1, $e;
-+        } elsif ($isfunc) {
-+          push @fdecls, $b + $b1, $e;
-+        }
-       }
-       push @decls, $b + $b1, $e if $isvar || $isfunc;
-     }
-@@ -602,15 +602,15 @@
- # Remove function arguments using heuristics methods.
- # Now out of several words in a row the last one is a newly defined type.
--sub whited_decl {             # Input is sanitized.
-+sub whited_decl {               # Input is sanitized.
-   my $keywords_rex = shift;
--  my $in = shift;             # Text of a declaration
-+  my $in = shift;               # Text of a declaration
-   #typedef ret_type*(*func) -> typedef ret_type* (*func)
-   $in =~ s/\*\(\*/* \(*/;
-   my $rest  = $in;
--  my $out  = $in;             # Whited out $in
-+  my $out  = $in;               # Whited out $in
-   # Remove all the structs
-   while ($out =~ /(\b(struct|union|class|enum)(\s+\w+)?\s*\{)/g) {
-@@ -619,7 +619,7 @@
-     matchingbrace($out);
-     my $pos_end = pos $out;
-     substr($out, $pos_start, $pos_end - $pos_start) =
--      ' ' x ($pos_end - $pos_start);
-+        ' ' x ($pos_end - $pos_start);
-     pos $out = $pos_end;
-   }
-@@ -635,7 +635,7 @@
-       # Remove the __attribute__ tag.
-       substr($out, $att_pos_start, $att_pos_end - $att_pos_start) =
--      ' ' x ($att_pos_end - $att_pos_start);
-+        ' ' x ($att_pos_end - $att_pos_start);
-       pos $out = $att_pos_end;
-   }
-@@ -694,7 +694,7 @@
-     return 1 if $n < 0;
-   }
-   # pos($_[0]) is after the closing brace now
--  return;                             # false
-+  return;                               # false
- }
- sub remove_Comments_no_Strings { # We expect that no strings are around
-@@ -704,30 +704,30 @@
-     $in;
- }
--sub sanitize {                # We expect that no strings are around
-+sub sanitize {          # We expect that no strings are around
-     my $in = shift;
-     # C and C++, strings and characters
-     $in =~ s{ / (
--               / .*                   # C++ style
--               |
--               \* [\s\S]*? \*/        # C style
--              )                       # (1)
--           | '((?:[^\\\']|\\.)+)'     # (2) Character constants
--           | "((?:[^\\\"]|\\.)*)"     # (3) Strings
--           | ( ^ \s* \# .*            # (4) Preprocessor
--               ( \\ $ \n .* )* )      # and continuation lines
--          } {
--            # We want to preserve the length, so that one may go back
--            defined $1 ? ' ' x (1 + length $1) :
--              defined $4 ? ' ' x length $4 :
--                defined $2 ? "'" . ' ' x length($2) . "'" :
--                  defined $3 ? '"' . ' ' x length($3) . '"' : '???'
--          }xgem ;
-+                 / .*                   # C++ style
-+                 |
-+                 \* [\s\S]*? \*/        # C style
-+                )                       # (1)
-+             | '((?:[^\\\']|\\.)+)'     # (2) Character constants
-+             | "((?:[^\\\"]|\\.)*)"     # (3) Strings
-+             | ( ^ \s* \# .*            # (4) Preprocessor
-+                 ( \\ $ \n .* )* )      # and continuation lines
-+            } {
-+              # We want to preserve the length, so that one may go back
-+              defined $1 ? ' ' x (1 + length $1) :
-+                defined $4 ? ' ' x length $4 :
-+                  defined $2 ? "'" . ' ' x length($2) . "'" :
-+                    defined $3 ? '"' . ' ' x length($3) . '"' : '???'
-+            }xgem ;
-     die "Unfinished comment" if $in =~ m{ /\* }x;
-     $in;
- }
--sub top_level {                       # We expect argument is sanitized
-+sub top_level {                 # We expect argument is sanitized
-   # Note that this may remove the variable in declaration: int (*func)();
-   my $in = shift;
-   my $start;
-@@ -735,18 +735,18 @@
-   while ($in =~ /[\[\{\(]/g ) {
-     $start = pos $in;
-     matchingbrace($in);
--    substr($out, $start, pos($in) - 1 - $start) 
-+    substr($out, $start, pos($in) - 1 - $start)
-       = ' ' x (pos($in) - 1 - $start);
-   }
-   $out;
- }
--sub remove_type_decl {                # We suppose that the arg is top-level only.
-+sub remove_type_decl {          # We suppose that the arg is top-level only.
-   my $in = shift;
-   $in =~ s/(\b__extension__)(\s+typedef\b)/(' ' x length $1) . $2/gse;
-   $in =~ s/(\btypedef\b.*?;)/' ' x length $1/gse;
-   # The following form may appear only in the declaration of the type itself:
--  $in =~ 
-+  $in =~
-     s/(\b(enum|struct|union|class)\b[\s\w]*\{\s*\}\s*;)/' ' x length $1/gse;
-   $in;
- }
-@@ -830,10 +830,10 @@
-       my $p = 0;
-       my $arg;
-       while ($top =~ /,/g) {
--      $arg = substr($argstring, $p, pos($top) - 1 - $p);
--      $arg =~ s/^\s+|\s+$//gs;
--      push @args, $arg;
--      $p = pos $top;
-+        $arg = substr($argstring, $p, pos($top) - 1 - $p);
-+        $arg =~ s/^\s+|\s+$//gs;
-+        push @args, $arg;
-+        $p = pos $top;
-       }
-       $arg = substr $argstring, $p;
-       $arg =~ s/^\s+|\s+$//gs;
-@@ -877,7 +877,7 @@
-       $ident = "arg$argnum";
-     }
-   } else {
--    die "Cannot process declaration `$decl' without an identifier" 
-+    die "Cannot process declaration `$decl' without an identifier"
-       unless $decl =~ /\G(\w+)/g;
-     $ident = $1;
-     $pos = pos $decl;
-@@ -904,10 +904,10 @@
-       my $p = 0;
-       my $arg;
-       while ($top =~ /,/g) {
--      $arg = substr($argstring, $p, pos($top) - 1 - $p);
--      $arg =~ s/^\s+|\s+$//gs;
--      push @args, $arg;
--      $p = pos $top;
-+        $arg = substr($argstring, $p, pos($top) - 1 - $p);
-+        $arg =~ s/^\s+|\s+$//gs;
-+        push @args, $arg;
-+        $p = pos $top;
-       }
-       $arg = substr $argstring, $p;
-       $arg =~ s/^\s+|\s+$//gs;
-@@ -930,9 +930,9 @@
- use constant WIN32 => $^O eq 'MSWin32';
- sub new {
--    die "usage: C::Preprocessed->new(filename[, defines[, includes[, cpp]]])" 
-+    die "usage: C::Preprocessed->new(filename[, defines[, includes[, cpp]]])"
-       if @_ < 2 or @_ > 5;
--    my ($class, $filename, $Defines, $Includes, $Cpp) 
-+    my ($class, $filename, $Defines, $Includes, $Cpp)
-       = (shift, shift, shift, shift, shift);
-     $Cpp ||= \%Config::Config;
-     my $filedir = dirname $filename || '.';
-@@ -980,7 +980,7 @@
- }
- sub DESTROY {
--  close($_[0]) 
-+  close($_[0])
-     or die "Cannot close pipe from `$Config::Config{cppstdin}': err $?, $!\n";
- }
-Index: lib/ModPerl/BuildMM.pm
-===================================================================
---- lib/ModPerl/BuildMM.pm     (.../tags/2_0_3)        (revision 630610)
-+++ lib/ModPerl/BuildMM.pm     (.../trunk)     (revision 630610)
-@@ -267,7 +267,7 @@
-                 my $podpath = catfile $doc_root, $pod;
-                 next unless -r $podpath;
--                push @target, 
-+                push @target,
-                     '$(FULLPERL) -I$(INST_LIB) ' .
-                     "-I$apache_test_dir -MModPerl::BuildMM " .
-                     "-e ModPerl::BuildMM::glue_pod $pm $podpath $blib";
-Index: lib/ModPerl/Code.pm
-===================================================================
---- lib/ModPerl/Code.pm        (.../tags/2_0_3)        (revision 630610)
-+++ lib/ModPerl/Code.pm        (.../trunk)     (revision 630610)
-@@ -68,7 +68,7 @@
-     },
-     PerSrv     => {
-         ret  => 'int',
--        args => [{type => 'request_rec', name => 'r'}, 
-+        args => [{type => 'request_rec', name => 'r'},
-                  {type => 'dummy', name => 'MP_HOOK_RUN_ALL'}],
-     },
-     Connection => {
-@@ -140,7 +140,7 @@
-     Srv => ['NONE', @ithread_opts, qw(ENABLE AUTOLOAD MERGE_HANDLERS),
-             @hook_flags, 'UNSET','INHERIT_SWITCHES'],
-     Dir => [qw(NONE PARSE_HEADERS SETUP_ENV MERGE_HANDLERS GLOBAL_REQUEST UNSET)],
--    Req => [qw(NONE SET_GLOBAL_REQUEST PARSE_HEADERS SETUP_ENV 
-+    Req => [qw(NONE SET_GLOBAL_REQUEST PARSE_HEADERS SETUP_ENV
-                CLEANUP_REGISTERED PERL_SET_ENV_DIR PERL_SET_ENV_SRV)],
-     Interp => [qw(NONE IN_USE PUTBACK CLONED BASE)],
-     Handler => [qw(NONE PARSED METHOD OBJECT ANON AUTOLOAD DYNAMIC FAKE)],
-@@ -379,7 +379,7 @@
-                            "$h_name is disabled for server ",
-                            parms->server->server_hostname, NULL);
-     }
--    MP_TRACE_d(MP_FUNC, "push \@%s, %s\\n", parms->cmd->name, arg);
-+    MP_TRACE_d(MP_FUNC, "push \@%s, %s", parms->cmd->name, arg);
-     return $cmd_push(&($av), arg, parms->pool);
- }
- EOF
-@@ -451,7 +451,7 @@
-             for (keys %lookup) {
-                 if (/^(\w)/) {
-                     my $gap = " " x ($max_len - length $_);
--                    push @{ $switch{$1} }, 
-+                    push @{ $switch{$1} },
-                         qq{if (strEQ(str, "$_"))$gap return $lookup{$_};};
-                 }
-             }
-@@ -468,7 +468,7 @@
-         }
-         delete $dumper{None}; #NONE
--        print $h_fh join ' \\'."\n", 
-+        print $h_fh join ' \\'."\n",
-           "#define ${class}_dump_flags(p, str)",
-                      qq{modperl_trace(NULL, "$class flags dump (%s):", str);},
-                      map $dumper{$_}, sort keys %dumper;
-@@ -552,7 +552,7 @@
-         $i += $i;
-     }
--    print $h_fh join ' \\'."\n", 
-+    print $h_fh join ' \\'."\n",
-                      '#define MP_TRACE_dump_flags()',
-                      qq{modperl_trace(NULL, "mod_perl trace flags dump:");},
-                      @dumper;
-@@ -785,7 +785,7 @@
-     # Fix this by cleaning the @Extensions array.
-     # Loads @Extensions if not loaded
--    ExtUtils::Embed::static_ext(); 
-+    ExtUtils::Embed::static_ext();
-     @ExtUtils::Embed::Extensions = grep{$_} @ExtUtils::Embed::Extensions;
-@@ -820,9 +820,9 @@
- #backwards compat with older httpd/apr
- #XXX: remove once we require newer httpd/apr
--my %ifdef = map { $_, 1 } 
-+my %ifdef = map { $_, 1 }
-     qw(APLOG_TOCLIENT APR_LIMIT_NOFILE), # added in ???
--    qw(AP_MPMQ_STARTING AP_MPMQ_RUNNING AP_MPMQ_STOPPING 
-+    qw(AP_MPMQ_STARTING AP_MPMQ_RUNNING AP_MPMQ_STOPPING
-        AP_MPMQ_MPM_STATE), # added in 2.0.49
-     qw(APR_FPROT_USETID APR_FPROT_GSETID
-        APR_FPROT_WSTICKY APR_FOPEN_LARGEFILE); # added in 2.0.50?
-@@ -887,7 +887,7 @@
-           if (strEQ(name, "$name")) {
- EOF
--            if ($name eq 'DECLINE_CMD' || 
-+            if ($name eq 'DECLINE_CMD' ||
-                 $name eq 'DIR_MAGIC_TYPE' ||
-                 $name eq 'CRLF') {
-                 print $c_fh <<EOF;
-@@ -941,9 +941,9 @@
-     $class = canon_lc(lc $class);
-     while (my ($group, $constants) = each %$groups) {
--      push @tags, $group;
-+        push @tags, $group;
-         my $name = join '_', 'MP_constants', $class, $group;
--      print $c_fh "\nstatic const char *$name [] = { \n",
-+        print $c_fh "\nstatic const char *$name [] = { \n",
-           (map {
-               my @ifdef = constants_ifdef($_);
-               s/^($constant_prefixes)_?//o;
-@@ -965,12 +965,12 @@
-     print $c_fh "\n$proto\n{\n", "   switch (*name) {\n";
-     for my $key (sort keys %switch) {
--      my $val = $switch{$key};
--      print $c_fh "\tcase '$key':\n";
--      for my $group (@$val) {
-+        my $val = $switch{$key};
-+        print $c_fh "\tcase '$key':\n";
-+        for my $group (@$val) {
-             my $name = join '_', 'MP_constants', $class, $group;
--          print $c_fh qq|\tif(strEQ("$group", name))\n\t   return $name;\n|;
--      }
-+            print $c_fh qq|\tif(strEQ("$group", name))\n\t   return $name;\n|;
-+        }
-         print $c_fh "      break;\n";
-     }
-Index: lib/ModPerl/TestReport.pm
-===================================================================
---- lib/ModPerl/TestReport.pm  (.../tags/2_0_3)        (revision 630610)
-+++ lib/ModPerl/TestReport.pm  (.../trunk)     (revision 630610)
-@@ -65,7 +65,7 @@
-     my @lines = "*** Packages of interest status:\n";
-     for my $package (sort @interesting_packages) {
--        my $vers = exists $packages{$package} 
-+        my $vers = exists $packages{$package}
-             ? join ", ", sort @{ $packages{$package} }
-             : "-";
-         push @lines, sprintf "%-${max_len}s: %s", $package, $vers;
-Index: lib/ModPerl/TypeMap.pm
-===================================================================
---- lib/ModPerl/TypeMap.pm     (.../tags/2_0_3)        (revision 630610)
-+++ lib/ModPerl/TypeMap.pm     (.../trunk)     (revision 630610)
-@@ -245,7 +245,7 @@
-     $self->thx_fixup($func);
--    my ($status, $failed_type) = 
-+    my ($status, $failed_type) =
-         $self->can_map($map, $func->{return_type},
-             map $_->{type}, @{ $func->{args} });
-@@ -413,6 +413,7 @@
- apr_lib.h
- apr_general.h
- apr_signal.h
-+apr_thread_rwlock.h
- util_script.h
- };
-Index: lib/Apache2/Reload.pm
-===================================================================
---- lib/Apache2/Reload.pm      (.../tags/2_0_3)        (revision 630610)
-+++ lib/Apache2/Reload.pm      (.../trunk)     (revision 630610)
-@@ -1,185 +0,0 @@
--# Licensed to the Apache Software Foundation (ASF) under one or more
--# contributor license agreements.  See the NOTICE file distributed with
--# this work for additional information regarding copyright ownership.
--# The ASF licenses this file to You under the Apache License, Version 2.0
--# (the "License"); you may not use this file except in compliance with
--# the License.  You may obtain a copy of the License at
--#
--#     http://www.apache.org/licenses/LICENSE-2.0
--#
--# Unless required by applicable law or agreed to in writing, software
--# distributed under the License is distributed on an "AS IS" BASIS,
--# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
--# See the License for the specific language governing permissions and
--# limitations under the License.
--#
--package Apache2::Reload;
--
--use strict;
--use warnings FATAL => 'all';
--
--use mod_perl2;
--
--our $VERSION = '0.09';
--
--use Apache2::Const -compile => qw(OK);
--
--use Apache2::Connection;
--use Apache2::ServerUtil;
--use Apache2::RequestUtil;
--
--use ModPerl::Util ();
--
--use vars qw(%INCS %Stat $TouchTime);
--
--%Stat = ($INC{"Apache2/Reload.pm"} => time);
--
--$TouchTime = time;
--
--sub import {
--    my $class = shift;
--    my ($package, $file) = (caller)[0,1];
--
--    $class->register_module($package, $file);
--}
--
--sub package_to_module {
--    my $package = shift;
--    $package =~ s/::/\//g;
--    $package .= ".pm";
--    return $package;
--}
--
--sub module_to_package {
--    my $module = shift;
--    $module =~ s/\//::/g;
--    $module =~ s/\.pm$//g;
--    return $module;
--}
--
--sub register_module {
--    my ($class, $package, $file) = @_;
--    my $module = package_to_module($package);
--
--    if ($file) {
--        $INCS{$module} = $file;
--    }
--    else {
--        $file = $INC{$module};
--        return unless $file;
--        $INCS{$module} = $file;
--    }
--}
--
--sub unregister_module {
--    my ($class, $package) = @_;
--    my $module = package_to_module($package);
--    delete $INCS{$module};
--}
--
--# the first argument is:
--# $c if invoked as 'PerlPreConnectionHandler'
--# $r if invoked as 'PerlInitHandler'
--sub handler {
--    my $o = shift;
--    $o = $o->base_server if ref($o) eq 'Apache2::Connection';
--
--    my $DEBUG = ref($o) && (lc($o->dir_config("ReloadDebug") || '') eq 'on');
--
--    my $TouchFile = ref($o) && $o->dir_config("ReloadTouchFile");
--
--    my $ConstantRedefineWarnings = ref($o) && 
--        (lc($o->dir_config("ReloadConstantRedefineWarnings") || '') eq 'off') 
--            ? 0 : 1;
--
--    my $TouchModules;
--
--    if ($TouchFile) {
--        warn "Checking mtime of $TouchFile\n" if $DEBUG;
--        my $touch_mtime = (stat $TouchFile)[9] || return Apache2::Const::OK;
--        return Apache2::Const::OK unless $touch_mtime > $TouchTime;
--        $TouchTime = $touch_mtime;
--        open my $fh, $TouchFile or die "Can't open '$TouchFile': $!";
--        $TouchModules = <$fh>;
--        chomp $TouchModules if $TouchModules;
--    }
--
--    if (ref($o) && (lc($o->dir_config("ReloadAll") || 'on') eq 'on')) {
--        *Apache2::Reload::INCS = \%INC;
--    }
--    else {
--        *Apache2::Reload::INCS = \%INCS;
--        my $ExtraList = 
--                $TouchModules || 
--                (ref($o) && $o->dir_config("ReloadModules")) || 
--                '';
--        my @extra = split /\s+/, $ExtraList;
--        foreach (@extra) {
--            if (/(.*)::\*$/) {
--                my $prefix = $1;
--                $prefix =~ s/::/\//g;
--                foreach my $match (keys %INC) {
--                    if ($match =~ /^\Q$prefix\E/) {
--                        $Apache2::Reload::INCS{$match} = $INC{$match};
--                    }
--                }
--            }
--            else {
--                Apache2::Reload->register_module($_);
--            }
--        }
--    }
--
--    my $ReloadDirs = ref($o) && $o->dir_config("ReloadDirectories");
--    my @watch_dirs = split(/\s+/, $ReloadDirs||'');
--    
--    my @changed;
--    foreach my $key (sort { $a cmp $b } keys %Apache2::Reload::INCS) {
--        my $file = $Apache2::Reload::INCS{$key};
--
--        next unless defined $file;
--        next if @watch_dirs && !grep { $file =~ /^$_/ } @watch_dirs;
--        warn "Apache2::Reload: Checking mtime of $key\n" if $DEBUG;
--
--        my $mtime = (stat $file)[9];
--
--        unless (defined($mtime) && $mtime) {
--            for (@INC) {
--                $mtime = (stat "$_/$file")[9];
--                last if defined($mtime) && $mtime;
--            }
--        }
--
--        warn("Apache2::Reload: Can't locate $file\n"), next
--            unless defined $mtime and $mtime;
--
--        unless (defined $Stat{$file}) {
--            $Stat{$file} = $^T;
--        }
--
--        if ($mtime > $Stat{$file}) {
--            push @changed, $key;
--        }
--        $Stat{$file} = $mtime;
--    }
--    
--    #First, let's unload all changed modules
--    foreach my $module (@changed) {
--        my $package = module_to_package($module);
--        ModPerl::Util::unload_package($package);
--    }
--    
--    #Then, let's reload them all, so that module dependencies can satisfy
--    #themselves in the correct order.
--    foreach my $module (@changed) {
--        my $package = module_to_package($module);
--        require $module;
--        warn("Apache2::Reload: process $$ reloading $package from $module\n")
--            if $DEBUG;
--    }
--
--    return Apache2::Const::OK;
--}
--
--1;
--__END__
-Index: lib/Apache2/SizeLimit.pm
-===================================================================
---- lib/Apache2/SizeLimit.pm   (.../tags/2_0_3)        (revision 630610)
-+++ lib/Apache2/SizeLimit.pm   (.../trunk)     (revision 630610)
-@@ -80,7 +80,7 @@
- #  Currently unsupported for mp2 because of threads...
- #     }
- #      elsif (WIN32) {
--# 
-+#
- #         if ( eval { require Win32::API } ) {
- #             $HOW_BIG_IS_IT = \&win32_size_check;
- #         }
-@@ -142,7 +142,7 @@
- # rss is in KB but ixrss is in BYTES.
- # This is true on at least FreeBSD, OpenBSD, NetBSD
- # Philip M. Gollucci
--sub _bsd_size_check {
-+sub bsd_size_check {
-     my @results = BSD::Resource::getrusage();
-     my $max_rss   = $results[2];
-Index: lib/Apache2/PerlSections.pm
-===================================================================
---- lib/Apache2/PerlSections.pm        (.../tags/2_0_3)        (revision 630610)
-+++ lib/Apache2/PerlSections.pm        (.../trunk)     (revision 630610)
-@@ -66,9 +66,9 @@
-     {
-         no strict 'refs';
-         foreach my $package ($self->package) {
--            my @config = map { split /\n/ } 
--                            grep { defined } 
--                                (@{"${package}::$special"}, 
-+            my @config = map { split /\n/ }
-+                            grep { defined }
-+                                (@{"${package}::$special"},
-                                  ${"${package}::$special"});
-             $self->dump_special(@config);
-         }
-@@ -79,6 +79,8 @@
-     Apache2::Const::OK;
- }
-+my %directives_seen_hack;
-+
- sub symdump {
-     my ($self) = @_;
-@@ -87,7 +89,7 @@
-         $self->{symbols} = [];
--        #XXX: Here would be a good place to warn about NOT using 
-+        #XXX: Here would be a good place to warn about NOT using
-         #     Apache2::ReadConfig:: directly in <Perl> sections
-         foreach my $pack ($self->package, $self->SPECIAL_PACKAGE) {
-             #XXX: Shamelessly borrowed from Devel::Symdump;
-@@ -95,11 +97,14 @@
-                 #We don't want to pick up stashes...
-                 next if ($key =~ /::$/);
-                 local (*ENTRY) = $val;
--                if (defined $val && defined *ENTRY{SCALAR}) {
-+                if (defined $val && defined *ENTRY{SCALAR} && defined $ENTRY) {
-                     push @{$self->{symbols}}, [$key, $ENTRY];
-                 }
-                 if (defined $val && defined *ENTRY{ARRAY}) {
--                    push @{$self->{symbols}}, [$key, \@ENTRY];
-+                    unless (exists $directives_seen_hack{"$key$val"}) {
-+                        $directives_seen_hack{"$key$val"} = 1;
-+                        push @{$self->{symbols}}, [$key, \@ENTRY];
-+                    }
-                 }
-                 if (defined $val && defined *ENTRY{HASH} && $key !~ /::/) {
-                     push @{$self->{symbols}}, [$key, \%ENTRY];
-Index: lib/Apache2/ParseSource.pm
-===================================================================
---- lib/Apache2/ParseSource.pm (.../tags/2_0_3)        (revision 630610)
-+++ lib/Apache2/ParseSource.pm (.../trunk)     (revision 630610)
-@@ -79,7 +79,7 @@
- # some types c-scan failing to resolve
--push @c_scan_defines, map { "$_=void" } 
-+push @c_scan_defines, map { "$_=void" }
-     qw(PPADDR_t PerlExitListEntry modperl_tipool_vtbl_t);
- sub scan {
-Index: lib/Apache2/Build.pm
-===================================================================
---- lib/Apache2/Build.pm       (.../tags/2_0_3)        (revision 630610)
-+++ lib/Apache2/Build.pm       (.../trunk)     (revision 630610)
-@@ -1592,7 +1592,10 @@
-     return $self->dynamic_link_header_default .
-         "\t$defs" .
-         ($symbols ? ' \\' . "\n\t-pdb:$symbols" : '') .
--        ' -out:$@' . "\n\n";
-+        ' -out:$@' . "\n\t" .
-+        'if exist $(MODPERL_MANIFEST_LOCATION)' . " \\\n\t" .
-+        'mt /nologo /manifest $(MODPERL_MANIFEST_LOCATION)' . " \\\n\t" .
-+        '/outputresource:$@;2' . "\n\n";
- }
- sub dynamic_link_aix {
-@@ -1838,6 +1841,12 @@
-     if ($self->is_dynamic && (my $libs = $self->modperl_libpath)) {
-         print $fh $self->canon_make_attr('lib_location', $libs);
-+        # Visual Studio 8 on Win32 uses manifest files
-+        if (WIN32) {
-+            (my $manifest = $libs) =~ s/\.lib$/.so.manifest/;
-+            print $fh $self->canon_make_attr('manifest_location', $manifest);
-+        }
-+
-         print $fh $self->canon_make_attr('ap_libdir',
-             $self->ap_destdir(catdir $self->{MP_AP_PREFIX}, 'lib')
-         );
-@@ -1938,7 +1947,7 @@
- clean:
-       $(MODPERL_RM_F) *.a *.so *.xsc \
-       $(MODPERL_LIBNAME).exp $(MODPERL_LIBNAME).lib \
--      *$(MODPERL_OBJ_EXT) *.lo *.i *.s *.pdb \
-+      *$(MODPERL_OBJ_EXT) *.lo *.i *.s *.pdb *.manifest \
-       $(MODPERL_CLEAN_FILES) \
-       $(MODPERL_XS_CLEAN_FILES)
-Index: lib/Apache2/porting.pm
-===================================================================
---- lib/Apache2/porting.pm     (.../tags/2_0_3)        (revision 630610)
-+++ lib/Apache2/porting.pm     (.../trunk)     (revision 630610)
-@@ -32,7 +32,7 @@
- # - removed and replaced methods
- # - hinting the package names in which methods reside
--my %avail_methods = map { $_ => 1 } 
-+my %avail_methods = map { $_ => 1 }
-     (ModPerl::MethodLookup::avail_methods(),
-      ModPerl::MethodLookup::avail_methods_compat());
-Index: lib/Apache2/Status.pm
-===================================================================
---- lib/Apache2/Status.pm      (.../tags/2_0_3)        (revision 630610)
-+++ lib/Apache2/Status.pm      (.../trunk)     (revision 630610)
-@@ -60,8 +60,8 @@
-     lexinfo     => ["StatusLexInfo",     "B::LexInfo",     0,    ],
-     xref        => ["StatusXref",        "B::Xref",        1.01, ],
-     terse       => ["StatusTerse",       "B::Terse",       0,    ],
--    tersesize   => ["StatusTerseSize",   "B::TerseSize",   0.07, ],
--    packagesize => ["StatusPackageSize", "B::TerseSize",   0.07, ],
-+    tersesize   => ["StatusTerseSize",   "B::TerseSize",   0.09, ],
-+    packagesize => ["StatusPackageSize", "B::TerseSize",   0.09, ],
-     peek        => ["StatusPeek",        "Apache::Peek",   1.03, ],
- );
-@@ -201,7 +201,7 @@
-     my $uri = $r->uri;
-     my @retval = (
-         '<table border="1">',
--        "<tr>", 
-+        "<tr>",
-         (map "<td><b>$_</b></td>", qw(Package Version Modified File)),
-         "</tr>\n"
-     );
-@@ -221,8 +221,8 @@
-             'N/A';
-         push @retval, (
--            "<tr>", 
--            (map "<td>$_</td>", 
-+            "<tr>",
-+            (map "<td>$_</td>",
-                 qq(<a href="$uri?$module">$module</a>),
-                 $v, $mtime, $INC{$file}),
-             "</tr>\n"
-@@ -243,7 +243,7 @@
-     foreach my $file (sort keys %INC) {
-         next if $file =~ m:\.(pm|al|ix)$:;
--        push @retval, 
-+        push @retval,
-             qq(<tr><td>$file</td><td>$INC{$file}</td></tr>\n);
-     }
-     push @retval, "</table>";
-@@ -394,14 +394,14 @@
-     $obj->can('FILEGV') ? $obj->FILEGV->SV->PV : $obj->FILE;
- }
--sub status_cv_dump { 
-+sub status_cv_dump {
-     my ($r) = @_;
-     return [] unless has($r, "b");
-     no strict 'refs';
-     my ($name, $type) = (split "/", $r->uri)[-2,-1];
-     # could be another child, which doesn't have this symbol table?
--    return unless *$name{CODE}; 
-+    return unless *$name{CODE};
-     my @retval = "<p>Subroutine info for <b>$name</b></p>\n<pre>\n";
-     my $obj    = B::svref_2object(*$name{CODE});
-@@ -409,7 +409,7 @@
-     my $stash  = $obj->GV->STASH->NAME;
-     my $script = $r->location;
--    push @retval, "File: ", 
-+    push @retval, "File: ",
-         (-e $file ? qq(<a href="file:$file">$file</a>) : $file), "\n";
-     my $cv    = $obj->GV->CV;
-@@ -563,11 +563,11 @@
-         }
-         elsif ($name =~ /^\*(\w+)\{(\w+)\}/) {
-             my $link = qq(<a href="$script/$package\::$1/$2?data_dump">);
--            $r->printf("$link%-${nlen}s</a> %${slen}d bytes\n", 
-+            $r->printf("$link%-${nlen}s</a> %${slen}d bytes\n",
-                        $name, $stats->{size});
-         }
-         else {
--            my $link = 
-+            my $link =
-                 qq(<a href="$script/slow/$package\::$name?noh_b_terse_size">);
-             $r->printf("$link%-${nlen}s</a> %${slen}d bytes | %${clen}d OPs\n",
-                        $name, $stats->{size}, $stats->{count});
-@@ -592,7 +592,7 @@
-     my $name = (split "/", $r->uri)[-1];
-     $r->print("Deparse of $name\n\n");
--    my $deparse = B::Deparse->new(split /\s+/, 
-+    my $deparse = B::Deparse->new(split /\s+/,
-                                   $r->dir_config('StatusDeparseOptions')||"");
-     my $body = $deparse->coderef2text(\&{$name});
-     $r->print("sub $name $body");
-@@ -615,7 +615,7 @@
-     my $name = (split "/", $r->uri)[-1];
-     $r->print("Fathom Score of $name\n\n");
--    my $fathom = B::Fathom->new(split /\s+/, 
-+    my $fathom = B::Fathom->new(split /\s+/,
-                                 $r->dir_config('StatusFathomOptions')||"");
-     $r->print($fathom->fathom(\&{$name}));
- }
-@@ -772,7 +772,7 @@
-     my @methods = sort keys %{$self->{'AUTOLOAD'}};
--    if ($is_main) { 
-+    if ($is_main) {
-         @methods = grep { $_ ne "packages" } @methods;
-         unshift @methods, "packages";
-     }
-@@ -783,7 +783,7 @@
-         my @line = ();
-         for (sort $self->_partdump(uc $type)) {
--            s/([\000-\037\177])/ '^' . pack('c', ord($1) ^ 64)/eg; 
-+            s/([\000-\037\177])/ '^' . pack('c', ord($1) ^ 64)/eg;
-             if ($type eq "scalars") {
-                 no strict 'refs';
-Index: lib/Apache2/compat.pm
-===================================================================
---- lib/Apache2/compat.pm      (.../tags/2_0_3)        (revision 630610)
-+++ lib/Apache2/compat.pm      (.../trunk)     (revision 630610)
-@@ -310,7 +310,7 @@
- package Apache::Server;
- # XXX: is that good enough? see modperl/src/modules/perl/mod_perl.c:367
--our $CWD = Apache2::ServerUtil::server_root;
-+our $CWD = Apache2::ServerUtil::server_root();
- our $AddPerlVersion = 1;
-@@ -321,6 +321,10 @@
- package Apache;
-+sub request {
-+    return Apache2::compat::request(@_);
-+}
-+
- sub unescape_url_info {
-     my ($class, $string) = @_;
-     Apache2::URI::unescape_url($string);
-@@ -344,7 +348,7 @@
-          return File::Spec->catfile(@_);
-     }
-     else {
--        File::Spec->catfile(Apache2::ServerUtil::server_root, @_);
-+        File::Spec->catfile(Apache2::ServerUtil::server_root(), @_);
-     }
- }
-@@ -486,18 +490,18 @@
-     my ($key, $value) = @_;
-     if (1 == @_) {
--        return wantarray() 
-+        return wantarray()
-             ?       ($table->get($key))
-             : scalar($table->get($key));
-     }
-     elsif (2 == @_) {
-         if (defined $value) {
--            return wantarray() 
-+            return wantarray()
-                 ?        ($table->set($key, $value))
-                 :  scalar($table->set($key, $value));
-         }
-         else {
--            return wantarray() 
-+            return wantarray()
-                 ?       ($table->unset($key))
-                 : scalar($table->unset($key));
-         }
-@@ -513,21 +517,21 @@
- sub header_out {
-     my $r = shift;
--    return wantarray() 
-+    return wantarray()
-         ?       ($r->table_get_set(scalar($r->headers_out), @_))
-         : scalar($r->table_get_set(scalar($r->headers_out), @_));
- }
- sub header_in {
-     my $r = shift;
--    return wantarray() 
-+    return wantarray()
-         ?       ($r->table_get_set(scalar($r->headers_in), @_))
-         : scalar($r->table_get_set(scalar($r->headers_in), @_));
- }
- sub err_header_out {
-     my $r = shift;
--    return wantarray() 
-+    return wantarray()
-         ?       ($r->table_get_set(scalar($r->err_headers_out), @_))
-         : scalar($r->table_get_set(scalar($r->err_headers_out), @_));
- }
-@@ -596,7 +600,7 @@
- sub server_root_relative {
-     my $r = shift;
--    File::Spec->catfile(Apache2::ServerUtil::server_root, @_);
-+    File::Spec->catfile(Apache2::ServerUtil::server_root(), @_);
- }
- sub clear_rgy_endav {
-Index: lib/mod_perl2.pm
-===================================================================
---- lib/mod_perl2.pm   (.../tags/2_0_3)        (revision 630610)
-+++ lib/mod_perl2.pm   (.../trunk)     (revision 630610)
-@@ -19,7 +19,7 @@
- use strict;
- BEGIN {
--    our $VERSION = "2.000003";
-+    our $VERSION = "2.000004";
-     our $VERSION_TRIPLET;
-     if ($VERSION =~ /(\d+)\.(\d\d\d)(\d+)/) {
-Index: ModPerl-Registry/t/conf/modperl_extra_startup.pl
-===================================================================
---- ModPerl-Registry/t/conf/modperl_extra_startup.pl   (.../tags/2_0_3)        (revision 630610)
-+++ ModPerl-Registry/t/conf/modperl_extra_startup.pl   (.../trunk)     (revision 630610)
-@@ -31,7 +31,7 @@
- # test the scripts pre-loading by using trans sub
- {
-     sub trans {
--        my $uri = shift; 
-+        my $uri = shift;
-         $uri =~ s|^/registry_bb/|cgi-bin/|;
-         return Apache2::ServerUtil::server_root_relative($pool, $uri);
-     }
-Index: ModPerl-Registry/t/conf/extra.conf.in
-===================================================================
---- ModPerl-Registry/t/conf/extra.conf.in      (.../tags/2_0_3)        (revision 630610)
-+++ ModPerl-Registry/t/conf/extra.conf.in      (.../trunk)     (revision 630610)
-@@ -21,12 +21,6 @@
- # run on startup
- PerlRequire @ServerRoot@/conf/modperl_extra_startup.pl
--#### DEVMODE: Remove in production ###
--PerlModule Apache2::Reload
--PerlInitHandler Apache2::Reload
--PerlSetVar ReloadAll Off
--PerlSetVar ReloadModules "ModPerl::*"
--
- PerlSetVar ModPerl::RegistryCooker::DEBUG 2
- PerlModule ModPerl::RegistryCooker
-@@ -45,6 +39,7 @@
-     Alias /perlrun_prefork/  @ServerRoot@/cgi-bin/
-     Alias /nph/              @ServerRoot@/cgi-bin/
-     Alias /registry_modperl_handler/  @ServerRoot@/cgi-bin/
-+    Alias /rewrite_env/      @ServerRoot@/cgi-bin/
-     ScriptAlias /cgi-bin/ @ServerRoot@/cgi-bin/
- </IfModule>
-@@ -220,3 +215,19 @@
- # </sandbox-friendly>
-+<IfModule mod_rewrite.c>
-+
-+    RewriteEngine On
-+    RewriteLogLevel 9
-+    RewriteLog @ServerRoot@/logs/rewrite_log
-+    RewriteRule /rewritetest /rewrite_env/env_val.pl?REWRITE_TEST [E=REWRITE_TEST:GOTCHA,PT,NS,L]
-+
-+    <Location /rewrite_env>
-+        SetHandler perl-script
-+        PerlResponseHandler ModPerl::Registry
-+        Options +ExecCGI
-+        PerlOptions +ParseHeaders
-+    </Location>
-+</IfModule>
-+
-+
-Index: ModPerl-Registry/t/rewrite_env.t
-===================================================================
---- ModPerl-Registry/t/rewrite_env.t   (.../tags/2_0_3)        (revision 0)
-+++ ModPerl-Registry/t/rewrite_env.t   (.../trunk)     (revision 630610)
-@@ -0,0 +1,17 @@
-+use strict;
-+use warnings FATAL => 'all';
-+
-+use Apache::Test;
-+use Apache::TestUtil;
-+use Apache::TestRequest qw(GET);
-+
-+plan tests => 1, need [qw(mod_alias.c mod_rewrite.c)];
-+
-+{
-+    my $url = "/rewritetest";
-+    my $res = GET $url;
-+
-+    ok t_cmp($res->content(),
-+             "GOTCHA",
-+             'found environment variable from mod_rewrite');
-+}
-Index: ModPerl-Registry/t/cgi-bin/env_val.pl
-===================================================================
---- ModPerl-Registry/t/cgi-bin/env_val.pl      (.../tags/2_0_3)        (revision 0)
-+++ ModPerl-Registry/t/cgi-bin/env_val.pl      (.../trunk)     (revision 630610)
-@@ -0,0 +1,7 @@
-+# test env vars
-+
-+print "Content-type: text/plain\n\n";
-+my $var = $ENV{QUERY_STRING};
-+print exists $ENV{$var} && $ENV{$var};
-+
-+__END__
-
-Property changes on: ModPerl-Registry/t/cgi-bin/env_val.pl
-___________________________________________________________________
-Name: svn:executable
-   + *
-
-Index: ModPerl-Registry/t/cgi-bin/perlrun_extload.pl
-===================================================================
---- ModPerl-Registry/t/cgi-bin/perlrun_extload.pl      (.../tags/2_0_3)        (revision 630610)
-+++ ModPerl-Registry/t/cgi-bin/perlrun_extload.pl      (.../trunk)     (revision 630610)
-@@ -19,7 +19,7 @@
-     # original function's prototype doesn't match the aliases prototype.
-     # see decl_proto()
-     BEGIN { t_server_log_warn_is_expected()
--                if perlrun_decl->can("decl_proto"); 
-+                if perlrun_decl->can("decl_proto");
-     }
-     use perlrun_decl;
-Index: ModPerl-Registry/t/regex.t
-===================================================================
---- ModPerl-Registry/t/regex.t (.../tags/2_0_3)        (revision 0)
-+++ ModPerl-Registry/t/regex.t (.../trunk)     (revision 630610)
-@@ -0,0 +1,33 @@
-+use strict;
-+use warnings FATAL => 'all';
-+
-+use Apache::Test;
-+use Apache::TestUtil qw(t_cmp t_catfile_apache);
-+use Apache::TestRequest;
-+use Apache::TestConfig ();
-+
-+my %modules = (
-+    registry    => 'ModPerl::Registry',
-+    registry_bb => 'ModPerl::RegistryBB',
-+    perlrun     => 'ModPerl::PerlRun',
-+);
-+
-+my @aliases = sort keys %modules;
-+
-+plan tests => @aliases * 1, need 'mod_alias.c';
-+
-+my $vars = Apache::Test::config()->{vars};
-+my $script_file = t_catfile_apache $vars->{serverroot}, 'cgi-bin', 'basic.pl';
-+
-+# extended regex quoting
-+# CVE-2007-1349 (which doesn't affect any of our shipped handlers)
-+
-+for my $alias (@aliases) {
-+    my $url = "/$alias/basic.pl/(";
-+
-+    ok t_cmp(
-+        GET_BODY($url),
-+        "ok $script_file",
-+        "$modules{$alias} regex in path_info",
-+    );
-+}
-Index: ModPerl-Registry/lib/ModPerl/RegistryCooker.pm
-===================================================================
---- ModPerl-Registry/lib/ModPerl/RegistryCooker.pm     (.../tags/2_0_3)        (revision 630610)
-+++ ModPerl-Registry/lib/ModPerl/RegistryCooker.pm     (.../trunk)     (revision 630610)
-@@ -326,7 +326,7 @@
- sub namespace_from_filename {
-     my $self = shift;
--    my ($volume, $dirs, $file) = 
-+    my ($volume, $dirs, $file) =
-         File::Spec::Functions::splitpath($self->{FILENAME});
-     my @dirs = File::Spec::Functions::splitdir($dirs);
-     return join '_', grep { defined && length } $volume, @dirs, $file;
-@@ -337,11 +337,11 @@
-     my $self = shift;
-     my $path_info = $self->{REQ}->path_info;
--    my $script_name = $path_info && $self->{URI} =~ /$path_info$/
-+    my $script_name = $path_info && $self->{URI} =~ /\Q$path_info\E$/
-         ? substr($self->{URI}, 0, length($self->{URI}) - length($path_info))
-         : $self->{URI};
--    if ($ModPerl::RegistryCooker::NameWithVirtualHost && 
-+    if ($ModPerl::RegistryCooker::NameWithVirtualHost &&
-         $self->{REQ}->server->is_virtual) {
-         my $name = $self->{REQ}->get_server_name;
-         $script_name = join "", $name, $script_name if $name;
-@@ -486,7 +486,7 @@
- sub should_compile_if_modified {
-     my $self = shift;
-     $self->{MTIME} ||= -M $self->{REQ}->my_finfo;
--    !($self->is_cached && 
-+    !($self->is_cached &&
-       $self->cache_table->{ $self->{PACKAGE} }{mtime} <= $self->{MTIME});
- }
-@@ -546,9 +546,8 @@
-             return Apache2::Const::FORBIDDEN if APR::Status::is_EACCES($@);
-             return Apache2::Const::NOT_FOUND if APR::Status::is_ENOENT($@);
-         }
--        else {
--            return Apache2::Const::SERVER_ERROR;
--        }
-+
-+        return Apache2::Const::SERVER_ERROR;
-     }
-     return Apache2::Const::OK;
-@@ -611,7 +610,7 @@
- # dflt: NOP
- # desc: chdirs into $dir
- # args: $self - registry blessed object
--#       $dir - a dir 
-+#       $dir - a dir
- # rtrn: nothing (?or success/failure?)
- #########################################################################
-@@ -671,9 +670,9 @@
-     ModPerl::Global::special_list_clear(   END => $self->{PACKAGE});
-     {
--        # let the code define its own warn and strict level 
-+        # let the code define its own warn and strict level
-         no strict;
--        no warnings FATAL => 'all'; # because we use FATAL 
-+        no warnings FATAL => 'all'; # because we use FATAL
-         eval $$eval;
-     }
-Index: Changes
-===================================================================
---- Changes    (.../tags/2_0_3)        (revision 630610)
-+++ Changes    (.../trunk)     (revision 630610)
-@@ -10,6 +10,106 @@
- =over 3
-+=item 2.0.4-dev
-+
-+Fix $r->location corruption under certain conditions
-+[Gozer]
-+
-+Fix a crash when spawning Perl threads under Perl 5.10
-+[Gozer]
-+
-+Fix erratic behaviour when filters were used with Perl 5.10
-+[Gozer]
-+
-+Fix problems with redefinitions of perl_free as free and perl_malloc
-+as malloc on Win32, as described at
-+ http://marc.info/?l=apache-modperl&m=119896407510526&w=2
-+[Tom Donovan]
-+
-+Fix a crash when running a sub-request from within a filter where
-+mod_perl was not the content handler. [Gozer]
-+
-+Refactor tests to use keepalives instead of same_interp [Gozer, Phred]
-+
-+Apache2::Reload has been moved to an externally maintained
-+CPAN distribution [Fred Moyer <fred@redhotpenguin.com>]
-+
-+PerlCleanupHandler are now registered with a subpool of $r->pool,
-+instead of $r->pool itself, ensuring they run _before_ any other
-+$r->pool cleanups [Torsten Foertsch]
-+
-+Fix a bug that would prevent pnotes from being cleaned up proprely
-+at the end of the request [Torsten Foertsch]
-+
-+On Win32, embed the manifest file, if present, in mod_perl.so,
-+so as to work with VC 8 [Steve Hay, Randy Kobes]
-+
-+Expose apr_thread_rwlock_t with the APR::ThreadRWLock module
-+[Torsten Foertsch]
-+
-+Don't waste an extra interpreter anymore under threaded MPMs when using a 
-+modperl handler [Torsten Foertsch] 
-+
-+Fix a bug that could cause a crash when using $r->push_handlers() multiple
-+times for a phase that has no configured handlers [Torsten Foertsch]
-+
-+Catch up with some httpd API changes
-+  2.2.4: 
-+   The full server version information is now included in the error log at
-+startup as well as server status reports, irrespective of the setting
-+of the ServerTokens directive. ap_get_server_version() is now
-+deprecated, and is replaced by ap_get_server_banner() and
-+ap_get_server_description(). [Jeff Trawick]
-+
-+  2.3.0:
-+ap_get_server_version() has been removed. Third-party modules must
-+now use ap_get_server_banner() or ap_get_server_description().
-+[Gozer]
-+
-+fixed Apache2::compat Apache2::ServerUtil::server_root() resolution
-+issues [Joshua Hoblitt]
-+
-+*) SECURITY: CVE-2007-1349 (cve.mitre.org)
-+fix unescaped variable interprolation in regular expression
-+[Randal L. Schwartz <merlyn@stonehenge.com>, Fred Moyer <fred@redhotpenguin.com>]
-+
-+Make $r->the_request() writeable
-+[Fred Moyer <fred@redhotpenguin.com>]
-+
-+fix ModPerl::RegistryCooker::read_script to handle all possible
-+errors, previously there was a case where Apache2::Const::OK was
-+returned on an error.  [Eivind Eklund <eeklund@gmail.com>]
-+
-+a minor compilation warning resolved in modperl_handler_new_from_sv
-+[Stas]
-+
-+a minor compilation warning resolved in modperl_gtop_size_string
-+[Stas]
-+
-+Prevent direct use of _deprecated_ Apache2::ReadConfig in
-+<Perl> sections with httpd Alias directives from 
-+incorrectly generating
-+'The Alias directive in xxxxx at line y will probably never match'
-+messages.
-+[Philip M. Gollucci <pgollucci@p6m78g.com>]
-+
-+Prevent Apache2::PerSections::symdump() from returning invalid
-+httpd.conf snippets like 'Alias undef'
-+[Philip M. Gollucci <pgollucci@p6m78g.com>]
-+
-+Require B-Size 0.9 for Apache2::Status which fixes
-+Can't call method "script_name" on an undefined value
-+[Philip M. Gollucci <pgollucci@p6m78g.com>]
-+
-+-march=pentium4 or anything with an = in it in CCFLAGS or @ARGV
-+that gets passed to xs/APR/APR/Makefile.PL broke the @ARGV
-+parsing.  I.E. FreeBSD port builds when users had CPUTYPE
-+set in /etc/make.conf.
-+[Philip M. Gollucci <pgollucci@p6m7g8.com>]
-+
-+Fixes to get bleed-ithread (5.9.5+) to comile again. 
-+[Philip M. Gollucci <pgollucci@p6m7g8.com>]
-+
- =item 2.0.3 November 28, 2006
- Prevent things in %INC that are not stat() able
-
-Property changes on: .
-___________________________________________________________________
-Name: svnmerge-integrated
-   + /perl/modperl/branches/threading:1-584361
-Name: svn:externals
-   - Apache-Test https://svn.apache.org/repos/asf/perl/Apache-Test/tags/1_29
-docs        https://svn.apache.org/repos/asf/perl/modperl/docs/tags/2_0_3/src/docs/2.0
-
-   + Apache-Test https://svn.apache.org/repos/asf/perl/Apache-Test/trunk
-docs        https://svn.apache.org/repos/asf/perl/modperl/docs/trunk/src/docs/2.0
-
-
This page took 0.702295 seconds and 4 git commands to generate.