[Maypole] Maypole::CGI broken for empty params

Dave Slack Dave Slack <dbavirt@gmail.com>
Fri, 8 Oct 2004 12:30:57 -0600


In the attempt to decouple parse_location and parse_args in
Maypole::CGI, it looks like a bug was introduced that sets empty
parameters to an empty list reference.  This breaks search
functionality and paging during searches.

Here's a patch that seems to do the right thing.

*** /home/dslack/Apache-MVC-20041007/lib/CGI/Maypole.pm	Wed Oct  6
19:00:09 2004--- Maypole.pm	Fri Oct  8 12:21:08 2004
***************
*** 30,36 ****
      my (%vars) = $self->{cgi}->Vars;
      while ( my ( $key, $value ) = each %vars ) {
          my @values = split "\0", $value;
!         $vars{$key} = @values == 1 ? $values[0] : \@values;
      }
      $self->{params} = {%vars};
      $self->{query}  = {%vars};
--- 30,36 ----
      my (%vars) = $self->{cgi}->Vars;
      while ( my ( $key, $value ) = each %vars ) {
          my @values = split "\0", $value;
!         $vars{$key} = @values <= 1 ? $values[0] : \@values;
      }
      $self->{params} = {%vars};
      $self->{query}  = {%vars};