]> git.donarmstrong.com Git - debbugs.git/commitdiff
[project @ 2003-04-23 15:29:13 by cjwatson]
authorcjwatson <>
Wed, 23 Apr 2003 22:29:13 +0000 (14:29 -0800)
committercjwatson <>
Wed, 23 Apr 2003 22:29:13 +0000 (14:29 -0800)
Support multiple include/exclude CGI arguments (#133127, #141968).

cgi/common.pl
cgi/pkgreport.cgi

index 303d317c303792b989220c9b49c75ef9c742c776..2a7afbdcb58c105f84f7a35c380dd21c542606fd 100644 (file)
@@ -23,8 +23,24 @@ sub set_option {
     my ($opt, $val) = @_;
     if ($opt eq "archive") { $common_archive = $val; }
     if ($opt eq "repeatmerged") { $common_repeatmerged = $val; }
-    if ($opt eq "exclude") { %common_exclude = %{$val}; }
-    if ($opt eq "include") { %common_include = %{$val}; }
+    if ($opt eq "exclude") {
+       my @vals;
+       @vals = ( $val ) if (ref($val) eq "" && $val );
+       @vals = ( $$val ) if (ref($val) eq "SCALAR" && $$val );
+       @vals = @{$val} if (ref($val) eq "ARRAY" );
+       %common_exclude = map {
+           if (/^(.*):(.*)$/) { ($1, $2) } else { ($_, 1) }
+       } split /[\s,]+/, join ',', @vals;
+    }
+    if ($opt eq "include") {
+       my @vals;
+       @vals = ( $val, ) if (ref($val) eq "" && $val );
+       @vals = ( $$val, ) if (ref($val) eq "SCALAR" && $$val );
+       @vals = @{$val} if (ref($val) eq "ARRAY" );
+       %common_include = map {
+           if (/^(.*):(.*)$/) { ($1, $2) } else { ($_, 1) }
+       } split /[\s,]+/, join ',', @vals;
+    }
     if ($opt eq "raw") { $common_raw_sort = $val; }
     if ($opt eq "bug-rev") { $common_bug_reverse = $val; }
     if ($opt eq "pend-rev") { $common_pending_reverse = $val; }
index 0031cc472456ef40015ebf8bc30b342d574ef297..699365ccaaf71a6d1e8f9f495e54c74b9eaf1ce1 100755 (executable)
@@ -24,8 +24,8 @@ my %param = readparse();
 
 my $repeatmerged = ($param{'repeatmerged'} || "yes") eq "yes";
 my $archive = ($param{'archive'} || "no") eq "yes";
-my $include = $param{'include'} || "";
-my $exclude = $param{'exclude'} || "";
+my $include = $param{'&include'} || $param{'include'} || "";
+my $exclude = $param{'&exclude'} || $param{'exclude'} || "";
 my $raw_sort = ($param{'raw'} || "no") eq "yes";
 my $bug_rev = ($param{'bug-rev'} || "no") eq "yes";
 my $pend_rev = ($param{'pend-rev'} || "no") eq "yes";
@@ -94,10 +94,8 @@ $tail_html =~ s/SUBSTITUTE_DTIME/$dtime/;
 
 set_option("repeatmerged", $repeatmerged);
 set_option("archive", $archive);
-set_option("include", { map {if (m/^(.*):(.*)$/) { ($1,$2) } else { ($_,1) }} (split /[\s,]+/, $include) })
-       if ($include);
-set_option("exclude", { map {if (m/^(.*):(.*)$/) { ($1,$2) } else { ($_,1) }} (split /[\s,]+/, $exclude) })
-       if ($exclude);
+set_option("include", $include);
+set_option("exclude", $exclude);
 set_option("raw", $raw_sort);
 set_option("bug-rev", $bug_rev);
 set_option("pend-rev", $pend_rev);