X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=lib%2Fperl%2FCGI.pm;h=aeb6c50504a52a4c8bdda50fa4e11cd1d087ebd5;hb=e828732528e0ed88973dd18f2dee97a42c0b4e59;hp=a6b5302effe290ae3c88374e20f74a73fcb5f96f;hpb=613f15de70e1a8c0cb9b039d6a86eec75725a39f;p=libucw.git diff --git a/lib/perl/CGI.pm b/lib/perl/CGI.pm index a6b5302e..aeb6c505 100644 --- a/lib/perl/CGI.pm +++ b/lib/perl/CGI.pm @@ -1,6 +1,7 @@ # Poor Man's CGI Module for Perl # # (c) 2002 Martin Mares +# Slightly modified by Tomas Valla # # This software may be freely distributed and used according to the terms # of the GNU Lesser General Public License. @@ -38,8 +39,6 @@ sub html_escape($) { our $arg_table; -our $value_separator = "&"; - sub parse_arg_string($) { my ($s) = @_; $s =~ s/\s+//; @@ -55,10 +54,12 @@ sub parse_arg_string($) { if (my $rx = $arg->{'check'}) { if (!/^$rx$/) { $_ = $arg->{'default'}; } } - if (${$arg->{'var'}} eq $arg->{'default'}) { + + my $r = ref($arg->{'var'}); + if ($r eq 'SCALAR') { ${$arg->{'var'}} = $_; - } else { - ${$arg->{'var'}} .= $value_separator.$_; + } elsif ($r eq 'ARRAY') { + push @{$arg->{'var'}}, $_; } } } @@ -66,8 +67,13 @@ sub parse_arg_string($) { sub parse_args($) { $arg_table = shift @_; foreach my $a (values %$arg_table) { + my $r = ref($a->{'var'}); defined($a->{'default'}) or $a->{'default'}=""; - ${$a->{'var'}} = $a->{'default'}; + if ($r eq 'SCALAR') { + ${$a->{'var'}} = $a->{'default'}; + } elsif ($r eq 'ARRAY') { + @{$a->{'var'}} = (); + } } defined $ENV{"GATEWAY_INTERFACE"} or die "Not called as a CGI script"; my $method = $ENV{"REQUEST_METHOD"};