my @applyno=sort { $a<=>$b; } ($file=~/^#+\s*%patch(\d+)\b/mig);
my %applyno=map(($_=>1),@applyno);
while (@source || @apply) {
- my $source=(shift @source)||"";
- my $apply =(shift @apply)||"";
- next if $source eq $apply;
- if ($source ne "" && $apply < $source) {
- unshift @source,$source;
+ my $source=$source[0];
+ $source=999999 if !defined $source;
+ my $apply =$apply[0];
+ $apply=999999 if !defined $apply;
+ if ($source eq $apply) {
+ shift @apply;
+ shift @source;
+ } elsif ($apply < $source) {
+ shift @apply;
warn "$ARGV: excessive: ".'%'."patch$apply\n";
$rc=1;
- }
- if ($apply ne "" && $source < $apply) {
- unshift @apply,$apply;
+ } elsif ($source < $apply) {
+ shift @source;
if (!$applyno{$source}) {
warn "$ARGV: excessive: Patch$source\n";
$rc=1;
} else {
warn "$ARGV: (commented ".'%'."patch$source: Patch$source)\n";
}
+ } else {
+ die if $apply ne $source;
+ shift @apply;
+ shift @source;
}
}
}