geoff 2003/11/25 12:31:29
Modified: src/modules/perl modperl_util.c
t/response/TestAPR table.pm
t/response/TestModperl dir_config.pm
Log:
fix "PerlSetVar Foo 0" so that $r->dir_config('Foo') returns 0, not undef
Revision Changes Path
1.58 +1 -1 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.57
retrieving revision 1.58
diff -u -r1.57 -r1.58
--- modperl_util.c 22 Nov 2003 08:26:00 -0000 1.57
+++ modperl_util.c 25 Nov 2003 20:31:29 -0000 1.58
@@ -572,7 +572,7 @@
key, sv_val, FALSE);
}
- if (!SvTRUE(retval)) {
+ if (!SvOK(retval)) {
if (s && s->module_config) {
MP_dSCFG(s);
SvREFCNT_dec(retval); /* in case above did newSV(0) */
1.12 +11 -1 modperl-2.0/t/response/TestAPR/table.pm
Index: table.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/t/response/TestAPR/table.pm,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- table.pm 7 Nov 2003 20:32:33 -0000 1.11
+++ table.pm 25 Nov 2003 20:31:29 -0000 1.12
@@ -19,7 +19,7 @@
sub handler {
my $r = shift;
- my $tests = 19;
+ my $tests = 21;
$tests += 2 if HAVE_APACHE_2_0_47;
plan $r, tests => $tests;
@@ -41,6 +41,16 @@
$array[0] eq 'bar' &&
$array[1] eq 'tar' &&
$array[2] eq 'kar';
+
+ # make sure 0 comes through as 0 and not undef
+ $table->set(foo => 0);
+ my $zero = $table->get('foo');
+
+ ok defined $zero;
+
+ ok t_cmp(0,
+ $zero,
+ 'table value 0 is not undef');
ok $table->unset('foo') || 1;
1.7 +12 -1 modperl-2.0/t/response/TestModperl/dir_config.pm
Index: dir_config.pm
===================================================================
RCS file: /home/cvs/modperl-2.0/t/response/TestModperl/dir_config.pm,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- dir_config.pm 19 May 2002 09:05:15 -0000 1.6
+++ dir_config.pm 25 Nov 2003 20:31:29 -0000 1.7
@@ -16,7 +16,7 @@
sub handler {
my $r = shift;
- plan $r, tests => 13;
+ plan $r, tests => 14;
#Apache::RequestRec::dir_config tests
@@ -70,6 +70,15 @@
"direct value fetch in a scalar context");
}
+ # make sure 0 comes through as 0 and not undef
+ {
+ my $key = 'TestModperl__request_rec_ZeroKey';
+
+ ok t_cmp(0,
+ $r->dir_config($key),
+ 'table value 0 is not undef');
+ }
+
# test non-existent key
{
my $key = make_key();
@@ -159,6 +168,8 @@
PerlSetVar TestModperl__server_rec_Key_set_in_Base 1_SetValue
PerlAddVar TestModperl__server_rec_Key_set_in_Base 2_AddValue 3_AddValue
</Base>
+
+PerlSetVar TestModperl__request_rec_ZeroKey 0
PerlSetVar TestModperl__request_rec_Key0 SetValue0