fix catchup and uncatchup commands so that they accept ranges
[spider.git] / cmd / catchup.pl
index 53e4b18079a656709e3698923a72a39cdf3bf96d..e2f439040921652d9198cf7f719a93e51c55a7cf 100644 (file)
@@ -25,16 +25,22 @@ my @ref;
 
 # get a more or less valid set of messages
 foreach my $msgno (@f) {
-       if ($msgno =~ /^al/oi) {
+       if ($msgno =~ /^al/i) {
                @ref = DXMsg::get_all();
                last;
+       } elsif (my ($f, $t) = $msgno =~ /(\d+)-(\d+)/) {
+               while ($f < $t) {
+                       $ref = DXMsg::get($f++);
+                       push @ref, $ref if $ref;
+               }
+       } else {
+               $ref = DXMsg::get($msgno);
+               unless ($ref) {
+                       push @out, $self->msg('m13', $msgno);
+                       next;
+               }
+               push @ref, $ref;
        }
-       $ref = DXMsg::get($msgno);
-       unless ($ref) {
-               push @out, $self->msg('m13', $msgno);
-               next;
-       }
-       push @ref, $ref;
 }
 
 foreach $ref (@ref) {