chiark / gitweb /
pregen: wip
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 27 Oct 2013 20:22:27 +0000 (20:22 +0000)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 3 Nov 2013 15:26:27 +0000 (15:26 +0000)
evade-mail-pregen

index 9fcafc66fbbc2e93ac8857192cea01cde14782a7..e15ae83d8edcf7b3e777d8ac9776f7b245c79b84 100755 (executable)
@@ -81,9 +81,9 @@ sub fetch_list () {
 
 sub perhaps_generate ($) {
     my ($num) = @_;
-    return undef if $no_generate;
     my $alias = $by_number[$num];
     return $alias if $alias;
+    return undef if $no_generate;
     return undef unless $num > $#by_number;
     run_generator qw(create), (comment_make $num);
     $alias = $by_number[$num];
@@ -142,6 +142,7 @@ sub action_list {
     @ARGV==0 or
        badusage "invalid arguments to list";
     my $num = $min_number;
+    $num ||= 0;
     while ($num <= $#by_number) {
        my $alias = $by_number[$num];
        report $alias if $alias;
@@ -154,13 +155,19 @@ sub action_some {
      badusage "invalid arguments to some";
     my ($count) = $1;
     my $num = $min_number;
+    $num ||= 0;
     while ($count > 0) {
-       my $alias = generate $num;
+       my $alias = perhaps_generate $num;
        if ($alias) {
            report $alias;
            $count--;
        } else {
-           last if $num > $#by_number; # -N
+           if ($num > $#by_number) {
+               print STDERR <<END or fail "stderr: $!";
+$us: fewer than requested aliases printed, due to -N
+END
+               last;
+           }
            $num++;
        }
     }
@@ -176,7 +183,7 @@ sub action_range {
        $op eq '-' ? $rarg :
        confess "$op ??";
     for (; $num<=$limit; $num++) {
-       my $alias = generate $num;
+       my $alias = perhaps_generate $num;
        report $alias if $alias;
     }
 }