]> git.ipfire.org Git - thirdparty/git.git/blobdiff - git-send-email.perl
documentation: add missing article
[thirdparty/git.git] / git-send-email.perl
index affbb88509b83945df90d774401812f3a8b28658..288ea1ae802dcb88c582085de5a046178b6fbf5e 100755 (executable)
@@ -26,18 +26,6 @@ use Git::I18N;
 
 Getopt::Long::Configure qw/ pass_through /;
 
-package FakeTerm;
-sub new {
-       my ($class, $reason) = @_;
-       return bless \$reason, shift;
-}
-sub readline {
-       my $self = shift;
-       die "Cannot use readline on FakeTerm: $$self";
-}
-package main;
-
-
 sub usage {
        print <<EOT;
 git send-email' [<options>] <file|directory>
@@ -971,17 +959,19 @@ EOT3
        do_edit(@files);
 }
 
-sub term {
-       my $term = eval {
+{
+       # Only instantiate one $term per program run, since some
+       # Term::ReadLine providers refuse to create a second instance.
+       my $term;
+       sub term {
                require Term::ReadLine;
-               $ENV{"GIT_SEND_EMAIL_NOTTY"}
-                       ? Term::ReadLine->new('git-send-email', \*STDIN, \*STDOUT)
-                       : Term::ReadLine->new('git-send-email');
-       };
-       if ($@) {
-               $term = FakeTerm->new("$@: going non-interactive");
+               if (!defined $term) {
+                       $term = $ENV{"GIT_SEND_EMAIL_NOTTY"}
+                               ? Term::ReadLine->new('git-send-email', \*STDIN, \*STDOUT)
+                               : Term::ReadLine->new('git-send-email');
+               }
+               return $term;
        }
-       return $term;
 }
 
 sub ask {
@@ -1176,10 +1166,10 @@ sub extract_valid_address {
 
 sub extract_valid_address_or_die {
        my $address = shift;
-       $address = extract_valid_address($address);
+       my $valid_address = extract_valid_address($address);
        die sprintf(__("error: unable to extract a valid address from: %s\n"), $address)
-               if !$address;
-       return $address;
+               if !$valid_address;
+       return $valid_address;
 }
 
 sub validate_address {