]> git.donarmstrong.com Git - debbugs.git/commitdiff
handle multiple packages and tags in limit
authorDon Armstrong <don@donarmstrong.com>
Wed, 25 Nov 2009 20:30:31 +0000 (12:30 -0800)
committerDon Armstrong <don@donarmstrong.com>
Wed, 25 Nov 2009 20:30:31 +0000 (12:30 -0800)
Debbugs/Control.pm

index 6d0fafba445333f7a2d101f6b554968263bd78b2..f79c58372efc10cbd62dd6d592b37dddfee67de1 100644 (file)
@@ -2799,23 +2799,28 @@ sub __check_limit{
     my $transcript = globify_scalar(exists $param{transcript}?$param{transcript}:undef);
     my $going_to_fail = 0;
     for my $data (@data) {
-       $data = get_bug_status(bug => $data->{bug_num},
-                              status => dclone($data),
-                             );
+       $data = split_status_fields(get_bug_status(bug => $data->{bug_num},
+                                                  status => dclone($data),
+                                                 ));
        for my $field (keys %{$param{limit}}) {
            next unless exists $param{limit}{$field};
            my $match = 0;
-           for my $limit (make_list($param{limit}{$field})) {
+           my @data_fields = make_list($data->{$field});
+LIMIT:     for my $limit (make_list($param{limit}{$field})) {
                if (not ref $limit) {
-                   if ($data->{$field} eq $limit) {
-                       $match = 1;
-                       last;
+                   for my $data_field (@data_fields) {
+                       if ($data_field eq $limit) {
+                           $match = 1;
+                           last LIMIT;
+                       }
                    }
                }
                elsif (ref($limit) eq 'Regexp') {
-                   if ($data->{$field} =~ $limit) {
-                       $match = 1;
-                       last;
+                   for my $data_field (@data_fields) {
+                       if ($data_field =~ $limit) {
+                           $match = 1;
+                           last LIMIT;
+                       }
                    }
                }
                else {