cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c

2002-12-12 Thread stas
stas2002/12/12 03:45:26

  Modified:src/modules/perl modperl_cmd.c
  Log:
  handle correctly the switches, when the server starts early. e.g., a
  sample config at the base server's level:
  
  PerlLoadModule Foo
  PerlSwitches -Iwhatever
  
  When PerlLoadModule returns, mod_perl is started already, so the next
  command's switches are lost. This has nothing to do with checking whether
  vhost is running, since in this case PerlSwitches apply to the top level.
  PR: Obtained from: Submitted by:
  
  Revision  ChangesPath
  1.34  +4 -2  modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.33
  retrieving revision 1.34
  diff -u -r1.33 -r1.34
  --- modperl_cmd.c 7 Oct 2002 15:45:52 -   1.33
  +++ modperl_cmd.c 12 Dec 2002 11:45:26 -  1.34
  @@ -8,7 +8,7 @@
   
   static char *modperl_cmd_too_late(cmd_parms *parms)
   {
  -return apr_pstrcat(parms->pool, "mod_perl already running, "
  +return apr_pstrcat(parms->pool, "mod_perl is already running, "
  "too late for ", parms->cmd->name, NULL);
   }
   
  @@ -69,7 +69,9 @@
   {
   server_rec *s = parms->server;
   MP_dSCFG(s);
  -if (modperl_is_running() && modperl_vhost_is_running(s)) {
  +if (s->is_virtual
  +? modperl_vhost_is_running(s)
  +: modperl_is_running() ) {
   return modperl_cmd_too_late(parms);
   }
   MP_TRACE_d(MP_FUNC, "arg = %s\n", arg);
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c modperl_handler.c

2002-10-07 Thread dougm

dougm   2002/10/07 08:45:52

  Modified:lib/Apache PerlSection.pm
   src/modules/perl modperl_cmd.c modperl_handler.c
  Log:
  Submitted by: gozer
  Reviewed by:  dougm
  support APR::Table tie in modperl_handler_make_args
  
  Revision  ChangesPath
  1.3   +1 -2  modperl-2.0/lib/Apache/PerlSection.pm
  
  Index: PerlSection.pm
  ===
  RCS file: /home/cvs/modperl-2.0/lib/Apache/PerlSection.pm,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PerlSection.pm7 Oct 2002 05:01:44 -   1.2
  +++ PerlSection.pm7 Oct 2002 15:45:52 -   1.3
  @@ -5,7 +5,6 @@
   
   our $VERSION = '0.01';
   
  -
   use Apache::CmdParms ();
   use Apache::Directive ();
   
  @@ -18,7 +17,7 @@
   
   sub server { return shift->{'parms'}->server() }
   sub directives { return shift->{'directives'} ||= [] }
  -sub package{ return shift->{'args'}->get('package') }
  +sub package{ return shift->{'args'}->{'package'} }
   
   sub handler : method {
   my($self, $parms, $args) = @_;
  
  
  
  1.33  +0 -1  modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- modperl_cmd.c 7 Oct 2002 02:35:18 -   1.32
  +++ modperl_cmd.c 7 Oct 2002 15:45:52 -   1.33
  @@ -371,7 +371,6 @@
   }
   
   if (handler) {
  -/*XXX: This will return a blessed APR::Table, but not a tied one ;-( */ 
   modperl_handler_make_args(aTHX_ &args,
 "Apache::CmdParms", parms,
 "APR::Table", options,
  
  
  
  1.13  +5 -0  modperl-2.0/src/modules/perl/modperl_handler.c
  
  Index: modperl_handler.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_handler.c,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- modperl_handler.c 24 Aug 2002 16:03:27 -  1.12
  +++ modperl_handler.c 7 Oct 2002 15:45:52 -   1.13
  @@ -143,6 +143,11 @@
   ptr = va_arg(args, void *);
   
   switch (*classname) {
  +  case 'A':
  +if (strEQ(classname, "APR::Table")) {
  +sv = modperl_hash_tie(aTHX_ classname, Nullsv, ptr);
  +break;
  +}  
 case 'I':
   if (strEQ(classname, "IV")) {
   sv = ptr ? newSViv((IV)ptr) : &PL_sv_undef;
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c

2002-09-04 Thread dougm

dougm   2002/09/04 20:31:45

  Modified:src/modules/perl modperl_cmd.c
  Log:
  need to free args in modperl_cmd_perl
  
  Revision  ChangesPath
  1.28  +2 -0  modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- modperl_cmd.c 28 Aug 2002 03:12:46 -  1.27
  +++ modperl_cmd.c 5 Sep 2002 03:31:45 -   1.28
  @@ -288,6 +288,8 @@
   
   status = modperl_callback(aTHX_ handler, p, NULL, s, args);
   
  +SvREFCNT_dec((SV*)args);
  +
   if (status != OK) {
   return SvTRUE(ERRSV) ? SvPVX(ERRSV) :
   apr_psprintf(p, " handler %s failed with status=%d",
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c

2002-08-27 Thread dougm

dougm   2002/08/27 20:12:46

  Modified:src/modules/perl modperl_cmd.c
  Log:
  use ap_strstr_c instead of strstr to avoid a warning
  
  Revision  ChangesPath
  1.27  +1 -1  modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- modperl_cmd.c 27 Aug 2002 04:26:54 -  1.26
  +++ modperl_cmd.c 28 Aug 2002 03:12:46 -  1.27
  @@ -308,7 +308,7 @@
   server_rec *s = parms->server;
   const char *errmsg;
   
  -if (!strstr(arg, "::")) {
  +if (!ap_strstr_c(arg, "::")) {
   return DECLINE_CMD; /* let mod_so handle it */
   }
   
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c modperl_cmd.h mod_perl.c mod_perl.h

2002-08-26 Thread dougm

dougm   2002/08/26 21:26:54

  Modified:src/modules/perl modperl_cmd.c modperl_cmd.h mod_perl.c
mod_perl.h
  Log:
  add LoadModule directive to support directive handlers
  
  Revision  ChangesPath
  1.26  +27 -0 modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- modperl_cmd.c 25 Aug 2002 23:04:55 -  1.25
  +++ modperl_cmd.c 27 Aug 2002 04:26:54 -  1.26
  @@ -297,6 +297,33 @@
   return NULL;
   }
   
  +/*
  + * XXX: the name of this directive may or may not stay.
  + * need a way to note that a module has config directives.
  + * don't want to start mod_perl when we see a non-special PerlModule.
  + */
  +MP_CMD_SRV_DECLARE(load_module)
  +{
  +apr_pool_t *p = parms->pool;
  +server_rec *s = parms->server;
  +const char *errmsg;
  +
  +if (!strstr(arg, "::")) {
  +return DECLINE_CMD; /* let mod_so handle it */
  +}
  +
  +MP_TRACE_d(MP_FUNC, "LoadModule %s\n", arg);
  +
  +/* we must init earlier than normal */
  +modperl_run(p, s);
  +
  +if ((errmsg = modperl_cmd_modules(parms, mconfig, arg))) {
  +return errmsg;
  +}
  +
  +return modperl_module_add(p, s, arg);
  +}
  +
   #ifdef MP_COMPAT_1X
   
   MP_CMD_SRV_DECLARE_FLAG(taint_check)
  
  
  
  1.18  +1 -0  modperl-2.0/src/modules/perl/modperl_cmd.h
  
  Index: modperl_cmd.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.h,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- modperl_cmd.h 19 Nov 2001 00:07:28 -  1.17
  +++ modperl_cmd.h 27 Aug 2002 04:26:54 -  1.18
  @@ -27,6 +27,7 @@
   MP_CMD_SRV_DECLARE(options);
   MP_CMD_SRV_DECLARE(init_handlers);
   MP_CMD_SRV_DECLARE(perl);
  +MP_CMD_SRV_DECLARE(load_module);
   
   #ifdef MP_COMPAT_1X
   
  
  
  
  1.134 +1 -0  modperl-2.0/src/modules/perl/mod_perl.c
  
  Index: mod_perl.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v
  retrieving revision 1.133
  retrieving revision 1.134
  diff -u -r1.133 -r1.134
  --- mod_perl.c24 Aug 2002 18:03:03 -  1.133
  +++ mod_perl.c27 Aug 2002 04:26:54 -  1.134
  @@ -583,6 +583,7 @@
   MP_CMD_DIR_TAKE2("PerlSetEnv", set_env, "PerlSetEnv"),
   MP_CMD_SRV_TAKE1("PerlPassEnv", pass_env, "PerlPassEnv"),
   MP_CMD_SRV_RAW_ARGS("


cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c

2002-08-25 Thread dougm

dougm   2002/08/25 16:04:55

  Modified:src/modules/perl modperl_cmd.c
  Log:
  need to use scfg->mip->parent->perl rather than modperl_interp_select()
  to handle Perl{Require,Module} and  when mod_perl is already running.
  
  Revision  ChangesPath
  1.25  +11 -6 modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.24
  retrieving revision 1.25
  diff -u -r1.24 -r1.25
  --- modperl_cmd.c 24 Aug 2002 18:43:47 -  1.24
  +++ modperl_cmd.c 25 Aug 2002 23:04:55 -  1.25
  @@ -64,8 +64,10 @@
   MP_dSCFG(parms->server);
   
   if (modperl_is_running()) {
  -MP_dINTERP_SELECT(NULL, NULL, parms->server);
  -
  +#ifdef USE_ITHREADS
  +/* XXX: .htaccess support cannot use this perl with threaded MPMs */
  +dTHXa(scfg->mip->parent->perl);
  +#endif
   MP_TRACE_d(MP_FUNC, "load PerlModule %s\n", arg);
   
   if (!modperl_require_module(aTHX_ arg, FALSE)) {
  @@ -85,7 +87,10 @@
   MP_dSCFG(parms->server);
   
   if (modperl_is_running()) {
  -MP_dINTERP_SELECT(NULL, NULL, parms->server);
  +#ifdef USE_ITHREADS
  +/* XXX: .htaccess support cannot use this perl with threaded MPMs */
  +dTHXa(scfg->mip->parent->perl);
  +#endif
   
   MP_TRACE_d(MP_FUNC, "load PerlRequire %s\n", arg);
   
  @@ -247,8 +252,8 @@
   SV **handler_name;
   int status = OK;
   #ifdef USE_ITHREADS
  +MP_dSCFG(s);
   pTHX;
  -modperl_interp_t *interp;
   #endif
   
   if (endp == NULL) {
  @@ -259,8 +264,8 @@
   modperl_run(p, s);
   
   #ifdef USE_ITHREADS
  -interp = modperl_interp_select(NULL, NULL, s);
  -aTHX = interp->perl;
  +/* XXX: .htaccess support cannot use this perl with threaded MPMs */
  +aTHX = scfg->mip->parent->perl;
   #endif
   
   arg = apr_pstrndup(p, arg, endp - arg);
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c

2002-05-18 Thread dougm

dougm   02/05/18 19:31:16

  Modified:src/modules/perl modperl_cmd.c
  Log:
  use apr_table_{set,add}n to avoid extra copy in modperl_cmd_{set,add}_var
  
  Revision  ChangesPath
  1.21  +2 -1  modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- modperl_cmd.c 19 May 2002 02:26:11 -  1.20
  +++ modperl_cmd.c 19 May 2002 02:31:16 -  1.21
  @@ -67,7 +67,7 @@
   const char *name = parms->cmd->name;
   
   modperl_table_modify_t func =
  -strEQ(name, "PerlSetVar") ? apr_table_set : apr_table_add;
  +strEQ(name, "PerlSetVar") ? apr_table_setn : apr_table_addn;
   
   func(dcfg->vars, arg1, arg2);
   
  @@ -77,6 +77,7 @@
   /* make available via Apache->server->dir_config */
   if (!parms->path) {
   func(scfg->vars, arg1, arg2);
  +
   MP_TRACE_d(MP_FUNC, "%s SRV: arg1 = %s, arg2 = %s\n",
  name, arg1, arg2);
   }
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c modperl_config.c modperl_types.h modperl_util.c

2002-05-18 Thread dougm

dougm   02/05/18 19:10:13

  Modified:src/modules/perl modperl_cmd.c modperl_config.c
modperl_types.h modperl_util.c
  Log:
  not sure why the 1.x [sd]cfg->vars name was renamed to SetVar, but it
  shouldn't have been.
  
  Revision  ChangesPath
  1.19  +4 -4  modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- modperl_cmd.c 19 May 2002 01:57:58 -  1.18
  +++ modperl_cmd.c 19 May 2002 02:10:13 -  1.19
  @@ -65,12 +65,12 @@
   MP_dSCFG(parms->server);
   modperl_config_dir_t *dcfg = (modperl_config_dir_t *)mconfig;

  -apr_table_set(dcfg->SetVar, arg1, arg2);
  +apr_table_set(dcfg->vars, arg1, arg2);
   MP_TRACE_d(MP_FUNC, "DIR: arg1 = %s, arg2 = %s\n", arg1, arg2);
   
   /* make available via Apache->server->dir_config */
   if (!parms->path) {
  -apr_table_set(scfg->SetVar, arg1, arg2);
  +apr_table_set(scfg->vars, arg1, arg2);
   MP_TRACE_d(MP_FUNC, "SRV: arg1 = %s, arg2 = %s\n", arg1, arg2);
   }
   
  @@ -82,12 +82,12 @@
   MP_dSCFG(parms->server);
   modperl_config_dir_t *dcfg = (modperl_config_dir_t *)mconfig;

  -apr_table_add(dcfg->SetVar, arg1, arg2);
  +apr_table_add(dcfg->vars, arg1, arg2);
   MP_TRACE_d(MP_FUNC, "DIR: arg1 = %s, arg2 = %s\n", arg1, arg2);
   
   /* make available via Apache->server->dir_config */
   if (!parms->path) {
  -apr_table_add(scfg->SetVar, arg1, arg2);
  +apr_table_add(scfg->vars, arg1, arg2);
   MP_TRACE_d(MP_FUNC, "SRV: arg1 = %s, arg2 = %s\n", arg1, arg2);
   }
   
  
  
  
  1.54  +4 -4  modperl-2.0/src/modules/perl/modperl_config.c
  
  Index: modperl_config.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_config.c,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- modperl_config.c  12 May 2002 23:01:32 -  1.53
  +++ modperl_config.c  19 May 2002 02:10:13 -  1.54
  @@ -71,7 +71,7 @@
   
   merge_item(location);
   
  -merge_table_overlap_item(SetVar);
  +merge_table_overlap_item(vars);
   
   merge_table_overlap_item(SetEnv);
   
  @@ -107,7 +107,7 @@
   
   scfg->argv = apr_array_make(p, 2, sizeof(char *));
   
  -scfg->SetVar = apr_table_make(p, 2);
  +scfg->vars = apr_table_make(p, 2);
   
   scfg->PassEnv = apr_table_make(p, 2);
   scfg->SetEnv = apr_table_make(p, 2);
  @@ -126,7 +126,7 @@
   
   dcfg->flags = modperl_options_new(p, MpDirType);
   
  -dcfg->SetVar = apr_table_make(p, 2);
  +dcfg->vars = apr_table_make(p, 2);
   
   dcfg->SetEnv = apr_table_make(p, 2);
   
  @@ -198,7 +198,7 @@
   merge_item(PerlModule);
   merge_item(PerlRequire);
   
  -merge_table_overlap_item(SetVar);
  +merge_table_overlap_item(vars);
   
   merge_table_overlap_item(SetEnv);
   merge_table_overlap_item(PassEnv);
  
  
  
  1.57  +2 -2  modperl-2.0/src/modules/perl/modperl_types.h
  
  Index: modperl_types.h
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_types.h,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- modperl_types.h   21 Feb 2002 01:45:34 -  1.56
  +++ modperl_types.h   19 May 2002 02:10:13 -  1.57
  @@ -112,7 +112,7 @@
   } modperl_interp_scope_e;
   
   typedef struct {
  -MpHV *SetVar;
  +MpHV *vars;
   MpHV *SetEnv;
   MpHV *PassEnv;
   MpAV *PerlRequire, *PerlModule;
  @@ -141,7 +141,7 @@
   char *PerlDispatchHandler;
   MpAV *handlers_per_dir[MP_HANDLER_NUM_PER_DIR];
   MpHV *SetEnv;
  -MpHV *SetVar;
  +MpHV *vars;
   modperl_options_t *flags;
   #ifdef USE_ITHREADS
   modperl_interp_scope_e interp_scope;
  
  
  
  1.41  +2 -2  modperl-2.0/src/modules/perl/modperl_util.c
  
  Index: modperl_util.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_util.c,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- modperl_util.c13 May 2002 03:17:54 -  1.40
  +++ modperl_util.c19 May 2002 02:10:13 -  1.41
  @@ -536,7 +536,7 @@
   
   if (r && r->per_dir_config) {   
   MP_dDCFG;
  -retval = modperl_table_get_set(aTHX_ dcfg->SetVar,
  +retval = modperl_table_get_set(aTHX_ dcfg->vars,
  key, sv_val, FALSE);
   }
   
  @@ -544,7 +544,7 @@
   if (s && s->module_config) {
   MP_dS

cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c

2002-05-18 Thread dougm

dougm   02/05/18 18:57:58

  Modified:src/modules/perl modperl_cmd.c
  Log:
  fix $r->dir_config; per-dir values are *always* set,
  per-server is only set if parms->path == NULL
  
  Revision  ChangesPath
  1.18  +12 -10modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- modperl_cmd.c 13 May 2002 03:20:09 -  1.17
  +++ modperl_cmd.c 19 May 2002 01:57:58 -  1.18
  @@ -65,14 +65,15 @@
   MP_dSCFG(parms->server);
   modperl_config_dir_t *dcfg = (modperl_config_dir_t *)mconfig;

  -if (parms->path) {
  -apr_table_set(dcfg->SetVar, arg1, arg2);
  -MP_TRACE_d(MP_FUNC, "DIR: arg1 = %s, arg2 = %s\n", arg1, arg2);
  -}
  -else {
  +apr_table_set(dcfg->SetVar, arg1, arg2);
  +MP_TRACE_d(MP_FUNC, "DIR: arg1 = %s, arg2 = %s\n", arg1, arg2);
  +
  +/* make available via Apache->server->dir_config */
  +if (!parms->path) {
   apr_table_set(scfg->SetVar, arg1, arg2);
   MP_TRACE_d(MP_FUNC, "SRV: arg1 = %s, arg2 = %s\n", arg1, arg2);
   }
  +
   return NULL;
   }
   
  @@ -81,14 +82,15 @@
   MP_dSCFG(parms->server);
   modperl_config_dir_t *dcfg = (modperl_config_dir_t *)mconfig;

  -if (parms->path) {
  -apr_table_add(dcfg->SetVar, arg1, arg2);
  -MP_TRACE_d(MP_FUNC, "DIR: arg1 = %s, arg2 = %s\n", arg1, arg2);
  -}
  -else {
  +apr_table_add(dcfg->SetVar, arg1, arg2);
  +MP_TRACE_d(MP_FUNC, "DIR: arg1 = %s, arg2 = %s\n", arg1, arg2);
  +
  +/* make available via Apache->server->dir_config */
  +if (!parms->path) {
   apr_table_add(scfg->SetVar, arg1, arg2);
   MP_TRACE_d(MP_FUNC, "SRV: arg1 = %s, arg2 = %s\n", arg1, arg2);
   }
  +
   return NULL;
   }
   
  
  
  



cvs commit: modperl-2.0/src/modules/perl modperl_cmd.c

2002-05-12 Thread dougm

dougm   02/05/12 20:20:09

  Modified:src/modules/perl modperl_cmd.c
  Log:
  fix PerlSetEnv on win32 when keys have lowercase characters
  
  Revision  ChangesPath
  1.17  +8 -0  modperl-2.0/src/modules/perl/modperl_cmd.c
  
  Index: modperl_cmd.c
  ===
  RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- modperl_cmd.c 12 May 2002 23:01:32 -  1.16
  +++ modperl_cmd.c 13 May 2002 03:20:09 -  1.17
  @@ -97,6 +97,14 @@
   MP_dSCFG(parms->server);
   modperl_config_dir_t *dcfg = (modperl_config_dir_t *)mconfig;

  +#ifdef ENV_IS_CASELESS /* i.e. WIN32 */
  +/* we turn off env magic during hv_store later, so do this now,
  + * else lookups on keys with lowercase characters will fails
  + * because Perl will uppercase them prior to lookup.
  + */
  +modperl_str_toupper((char *)arg1);
  +#endif
  +
   MP_TRACE_d(MP_FUNC, "arg1 = %s, arg2 = %s\n", arg1, arg2);
   
   if (!parms->path) {