Code

pre-commit.sample: don't print incidental SHA1
[git.git] / git-send-email.perl
index 5916c86b6874c5d39952fc9565ad0e24e301bbb9..cccbf4517aa46d4d217a1ce25105f7c413301d2d 100755 (executable)
@@ -418,6 +418,14 @@ my %parse_alias = (
                        $x =~ /^(\S+)$f\t\(?([^\t]+?)\)?(:?$f){0,2}$/ or next;
                        $aliases{$1} = [ split_addrs($2) ];
                }},
+       elm => sub  { my $fh = shift;
+                     while (<$fh>) {
+                         if (/^(\S+)\s+=\s+[^=]+=\s(\S+)/) {
+                             my ($alias, $addr) = ($1, $2);
+                              $aliases{$alias} = [ split_addrs($addr) ];
+                         }
+                     } },
+
        gnus => sub { my $fh = shift; while (<$fh>) {
                if (/\(define-mail-alias\s+"(\S+?)"\s+"(\S+?)"\)/) {
                        $aliases{$1} = [ $2 ];
@@ -608,10 +616,13 @@ EOT
 
 sub ask {
        my ($prompt, %arg) = @_;
-       my $valid_re = $arg{valid_re} || ""; # "" matches anything
+       my $valid_re = $arg{valid_re};
        my $default = $arg{default};
        my $resp;
        my $i = 0;
+       return defined $default ? $default : undef
+               unless defined $term->IN and defined fileno($term->IN) and
+                      defined $term->OUT and defined fileno($term->OUT);
        while ($i++ < 10) {
                $resp = $term->readline($prompt);
                if (!defined $resp) { # EOF
@@ -621,7 +632,7 @@ sub ask {
                if ($resp eq '' and defined $default) {
                        return $default;
                }
-               if ($resp =~ /$valid_re/) {
+               if (!defined $valid_re or $resp =~ /$valid_re/) {
                        return $resp;
                }
        }
@@ -684,7 +695,7 @@ if ($compose && $compose > 0) {
 
 # Variables we set as part of the loop over files
 our ($message_id, %mail, $subject, $reply_to, $references, $message,
-       $needs_confirm, $message_num);
+       $needs_confirm, $message_num, $ask_default);
 
 sub extract_valid_address {
        my $address = shift;
@@ -773,12 +784,13 @@ sub sanitize_address
        }
 
        # if recipient_name is already quoted, do nothing
-       if ($recipient_name =~ /^(".*"|=\?utf-8\?q\?.*\?=)$/) {
+       if ($recipient_name =~ /^("[[:ascii:]]*"|=\?utf-8\?q\?.*\?=)$/) {
                return $recipient;
        }
 
        # rfc2047 is needed if a non-ascii char is included
        if ($recipient_name =~ /[^[:ascii:]]/) {
+               $recipient_name =~ s/^"(.*)"$/$1/;
                $recipient_name = quote_rfc2047($recipient_name);
        }
 
@@ -842,7 +854,6 @@ X-Mailer: git-send-email $gitversion
 
        if ($needs_confirm && !$dry_run) {
                print "\n$header\n";
-               my $ask_default;
                if ($needs_confirm eq "inform") {
                        $confirm_unconfigured = 0; # squelch this message for the rest of this run
                        $ask_default = "y"; # assume yes on EOF since user hasn't explicitly asked for confirmation