dougm 02/05/18 19:26:11 Modified: src/modules/perl mod_perl.h modperl_cmd.c Log: fold some duplication in modperl_cmd_{set,add}_var Revision Changes Path 1.42 +4 -0 modperl-2.0/src/modules/perl/mod_perl.h Index: mod_perl.h =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.h,v retrieving revision 1.41 retrieving revision 1.42 diff -u -r1.41 -r1.42 --- mod_perl.h 6 Apr 2002 17:42:10 -0000 1.41 +++ mod_perl.h 19 May 2002 02:26:11 -0000 1.42 @@ -62,4 +62,8 @@ #define MgTypeExt(mg) (mg->mg_type == '~') +typedef void MP_FUNC_T(modperl_table_modify_t) (apr_table_t *, + const char *, + const char *); + #endif /* MOD_PERL_H */ 1.20 +19 -19 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.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- modperl_cmd.c 19 May 2002 02:10:13 -0000 1.19 +++ modperl_cmd.c 19 May 2002 02:26:11 -0000 1.20 @@ -60,38 +60,38 @@ return NULL; } -MP_CMD_SRV_DECLARE2(set_var) +static MP_CMD_SRV_DECLARE2(handle_vars) { MP_dSCFG(parms->server); modperl_config_dir_t *dcfg = (modperl_config_dir_t *)mconfig; - - apr_table_set(dcfg->vars, arg1, arg2); - MP_TRACE_d(MP_FUNC, "DIR: arg1 = %s, arg2 = %s\n", arg1, arg2); + const char *name = parms->cmd->name; + + modperl_table_modify_t func = + strEQ(name, "PerlSetVar") ? apr_table_set : apr_table_add; + + func(dcfg->vars, arg1, arg2); + + MP_TRACE_d(MP_FUNC, "%s DIR: arg1 = %s, arg2 = %s\n", + name, arg1, arg2); /* make available via Apache->server->dir_config */ if (!parms->path) { - apr_table_set(scfg->vars, arg1, arg2); - MP_TRACE_d(MP_FUNC, "SRV: arg1 = %s, arg2 = %s\n", arg1, arg2); + func(scfg->vars, arg1, arg2); + MP_TRACE_d(MP_FUNC, "%s SRV: arg1 = %s, arg2 = %s\n", + name, arg1, arg2); } return NULL; } -MP_CMD_SRV_DECLARE2(add_var) +MP_CMD_SRV_DECLARE2(set_var) { - MP_dSCFG(parms->server); - modperl_config_dir_t *dcfg = (modperl_config_dir_t *)mconfig; - - 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->vars, arg1, arg2); - MP_TRACE_d(MP_FUNC, "SRV: arg1 = %s, arg2 = %s\n", arg1, arg2); - } + return modperl_cmd_handle_vars(parms, mconfig, arg1, arg2); +} - return NULL; +MP_CMD_SRV_DECLARE2(add_var) +{ + return modperl_cmd_handle_vars(parms, mconfig, arg1, arg2); } MP_CMD_SRV_DECLARE2(set_env)