From: Michael Witten <mfwitten@gmail.com>
To: git@vger.kernel.org
Subject: [PATCH RFC 6/6] send-email: Remove horrible mix of tabs and spaces
Date: Tue, 7 Apr 2009 16:25:22 -0500 [thread overview]
Message-ID: <1239139522-24118-6-git-send-email-mfwitten@gmail.com> (raw)
In-Reply-To: <1239139522-24118-5-git-send-email-mfwitten@gmail.com>
For the most part, I ran a search for all the lines
that match:
^[\t]*[ ]+
and then I manually replaced the offending text with
an appropriate number of tabs.
While scanning through the file, I also tried to format
some of the code so as to obviate future mixing; I also
fixed one horrendously egregious section of code, where
someone was trying to be unnecessarily compact.
Currently, no lines match the following:
[\t]+[ ]+
[ ]+[\t]+
So, it should be reasonably clean.
The whole file is still horrendous.
Signed-off-by: Michael Witten <mfwitten@gmail.com>
---
git-send-email.perl | 282 +++++++++++++++++++++++++++++++--------------------
1 files changed, 170 insertions(+), 112 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index c3e3598..a4c24f3 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -16,6 +16,14 @@
# and second line is the subject of the message.
#
+## WARNING! ACHTUNG! ATTENTION! ADVERTENCIA!
+## Currently, this file uses tabs (like the rest of git source) to
+## delineate code structure. Do NOT under any circumstances mix tabs
+## and spaces across lines that share a relationship in terms of layout.
+## In fact, it would currently be best to use only tabs, so please set
+## your editor(s) accordingly. This code is already trashy enough. Please
+## don't make it worse.
+
use strict;
use warnings;
use Term::ReadLine;
@@ -118,19 +126,20 @@ sub format_2822_time {
die ("local time offset greater than or equal to 24 hours\n");
}
- return sprintf("%s, %2d %s %d %02d:%02d:%02d %s%02d%02d",
- qw(Sun Mon Tue Wed Thu Fri Sat)[$localtm[6]],
- $localtm[3],
- qw(Jan Feb Mar Apr May Jun
- Jul Aug Sep Oct Nov Dec)[$localtm[4]],
- $localtm[5]+1900,
- $localtm[2],
- $localtm[1],
- $localtm[0],
- ($offset >= 0) ? '+' : '-',
- abs($offhour),
- $offmin,
- );
+ return sprintf(
+ "%s, %2d %s %d %02d:%02d:%02d %s%02d%02d",
+ qw(Sun Mon Tue Wed Thu Fri Sat)[$localtm[6]],
+ $localtm[3],
+ qw(Jan Feb Mar Apr May Jun
+ Jul Aug Sep Oct Nov Dec)[$localtm[4]],
+ $localtm[5]+1900,
+ $localtm[2],
+ $localtm[1],
+ $localtm[0],
+ ($offset >= 0) ? '+' : '-',
+ abs($offhour),
+ $offmin,
+ );
}
my $have_email_valid = eval { require Email::Valid; 1 };
@@ -194,30 +203,30 @@ my ($validate, $confirm);
my (@suppress_cc);
my %config_bool_settings = (
- "thread" => [\$thread, 1],
- "chainreplyto" => [\$chain_reply_to, 1],
- "suppressfrom" => [\$suppress_from, undef],
- "signedoffbycc" => [\$signed_off_by_cc, undef],
- "signedoffcc" => [\$signed_off_by_cc, undef], # Deprecated
- "validate" => [\$validate, 1],
+ "thread" => [\$thread, 1],
+ "chainreplyto" => [\$chain_reply_to, 1],
+ "suppressfrom" => [\$suppress_from, undef],
+ "signedoffbycc" => [\$signed_off_by_cc, undef],
+ "signedoffcc" => [\$signed_off_by_cc, undef], # Deprecated
+ "validate" => [\$validate, 1],
);
my %config_settings = (
- "delay" => \$delay,
- "smtpserver" => \$smtp_server,
- "smtpserverport" => \$smtp_server_port,
- "smtpuser" => \$smtp_authuser,
- "smtppass" => \$smtp_authpass,
- "to" => \@to,
- "cc" => \@initial_cc,
- "cccmd" => \$cc_cmd,
- "aliasfiletype" => \$aliasfiletype,
- "bcc" => \@bcclist,
- "aliasesfile" => \@alias_files,
- "suppresscc" => \@suppress_cc,
- "envelopesender" => \$envelope_sender,
- "multiedit" => \$multiedit,
- "confirm" => \$confirm,
+ "delay" => \$delay,
+ "smtpserver" => \$smtp_server,
+ "smtpserverport" => \$smtp_server_port,
+ "smtpuser" => \$smtp_authuser,
+ "smtppass" => \$smtp_authpass,
+ "to" => \@to,
+ "cc" => \@initial_cc,
+ "cccmd" => \$cc_cmd,
+ "aliasfiletype" => \$aliasfiletype,
+ "bcc" => \@bcclist,
+ "aliasesfile" => \@alias_files,
+ "suppresscc" => \@suppress_cc,
+ "envelopesender" => \$envelope_sender,
+ "multiedit" => \$multiedit,
+ "confirm" => \$confirm,
);
# Handle Uncouth Termination
@@ -247,38 +256,39 @@ $SIG{INT} = \&signal_handler;
# Begin by accumulating all the variables (defined above), that we will end up
# needing, first, from the command line:
-my $rc = GetOptions("sender|from=s" => \$sender,
- "in-reply-to=s" => \$initial_reply_to,
- "subject=s" => \$initial_subject,
- "to=s" => \@to,
- "cc=s" => \@initial_cc,
- "bcc=s" => \@bcclist,
- "chain-reply-to!" => \$chain_reply_to,
- "delay=i" => \$delay,
- "smtp-server=s" => \$smtp_server,
- "smtp-server-port=i" => \$smtp_server_port,
- "smtp-user=s" => \$smtp_authuser,
- "smtp-pass:s" => \$smtp_authpass,
- "smtp-ssl" => sub { $smtp_encryption = 'ssl' },
- "smtp-encryption=s" => \$smtp_encryption,
- "identity=s" => \$identity,
- "annotate" => \$annotate,
- "compose:s" => \$compose,
- "quiet" => \$quiet,
- "cc-cmd=s" => \$cc_cmd,
- "suppress-from!" => \$suppress_from,
- "suppress-cc=s" => \@suppress_cc,
- "signed-off-cc|signed-off-by-cc!" => \$signed_off_by_cc,
- "confirm=s" => \$confirm,
- "dry-run" => \$dry_run,
- "envelope-sender=s" => \$envelope_sender,
- "thread!" => \$thread,
- "validate!" => \$validate,
- "format-patch!" => \$format_patch,
- );
+my $rc = GetOptions(
+ "sender|from=s" => \$sender,
+ "in-reply-to=s" => \$initial_reply_to,
+ "subject=s" => \$initial_subject,
+ "to=s" => \@to,
+ "cc=s" => \@initial_cc,
+ "bcc=s" => \@bcclist,
+ "chain-reply-to!" => \$chain_reply_to,
+ "delay=i" => \$delay,
+ "smtp-server=s" => \$smtp_server,
+ "smtp-server-port=i" => \$smtp_server_port,
+ "smtp-user=s" => \$smtp_authuser,
+ "smtp-pass:s" => \$smtp_authpass,
+ "smtp-ssl" => sub { $smtp_encryption = 'ssl' },
+ "smtp-encryption=s" => \$smtp_encryption,
+ "identity=s" => \$identity,
+ "annotate" => \$annotate,
+ "compose:s" => \$compose,
+ "quiet" => \$quiet,
+ "cc-cmd=s" => \$cc_cmd,
+ "suppress-from!" => \$suppress_from,
+ "suppress-cc=s" => \@suppress_cc,
+ "signed-off-cc|signed-off-by-cc!" => \$signed_off_by_cc,
+ "confirm=s" => \$confirm,
+ "dry-run" => \$dry_run,
+ "envelope-sender=s" => \$envelope_sender,
+ "thread!" => \$thread,
+ "validate!" => \$validate,
+ "format-patch!" => \$format_patch,
+);
unless ($rc) {
- usage();
+ usage();
}
die "Cannot run git format-patch from outside a repository\n"
@@ -407,29 +417,55 @@ sub split_addrs {
my %aliases;
my %parse_alias = (
# multiline formats can be supported in the future
- mutt => sub { my $fh = shift; while (<$fh>) {
- if (/^\s*alias\s+(\S+)\s+(.*)$/) {
- my ($alias, $addr) = ($1, $2);
- $addr =~ s/#.*$//; # mutt allows # comments
- # commas delimit multiple addresses
- $aliases{$alias} = [ split_addrs($addr) ];
- }}},
- mailrc => sub { my $fh = shift; while (<$fh>) {
- if (/^alias\s+(\S+)\s+(.*)$/) {
- # spaces delimit multiple addresses
- $aliases{$1} = [ split(/\s+/, $2) ];
- }}},
- pine => sub { my $fh = shift; my $f='\t[^\t]*';
- for (my $x = ''; defined($x); $x = $_) {
+ mutt => sub {
+
+ my $fh = shift;
+
+ while (<$fh>) {
+ if (/^\s*alias\s+(\S+)\s+(.*)$/) {
+ my ($alias, $addr) = ($1, $2);
+ $addr =~ s/#.*$//; # mutt allows # comments
+ # commas delimit multiple addresses
+ $aliases{$alias} = [ split_addrs($addr) ];
+ }
+ }
+ },
+
+ mailrc => sub {
+
+ my $fh = shift;
+
+ while (<$fh>) {
+ if (/^alias\s+(\S+)\s+(.*)$/) {
+ # spaces delimit multiple addresses
+ $aliases{$1} = [ split(/\s+/, $2) ];
+ }
+ }
+ },
+
+ pine => sub {
+
+ my $fh = shift;
+ my $f='\t[^\t]*';
+
+ for (my $x = ''; defined($x); $x = $_) {
chomp $x;
- $x .= $1 while(defined($_ = <$fh>) && /^ +(.*)$/);
+ $x .= $1 while(defined($_ = <$fh>) && /^ +(.*)$/);
$x =~ /^(\S+)$f\t\(?([^\t]+?)\)?(:?$f){0,2}$/ or next;
$aliases{$1} = [ split_addrs($2) ];
- }},
- gnus => sub { my $fh = shift; while (<$fh>) {
- if (/\(define-mail-alias\s+"(\S+?)"\s+"(\S+?)"\)/) {
- $aliases{$1} = [ $2 ];
- }}}
+ }
+ },
+
+ gnus => sub {
+
+ my $fh = shift;
+
+ while (<$fh>) {
+ if (/\(define-mail-alias\s+"(\S+?)"\s+"(\S+?)"\)/) {
+ $aliases{$1} = [ $2 ];
+ }
+ }
+ }
);
if (@alias_files and $aliasfiletype and defined $parse_alias{$aliasfiletype}) {
@@ -597,10 +633,11 @@ EOT
} elsif (/^\n$/) {
$in_body = 1;
if ($need_8bit_cte) {
- print $compose_final_file "MIME-Version: 1.0\n",
- "Content-Type: text/plain; ",
- "charset=utf-8\n",
- "Content-Transfer-Encoding: 8bit\n";
+ print $compose_final_file
+ "MIME-Version: 1.0\n",
+ "Content-Type: text/plain; ",
+ "charset=utf-8\n",
+ "Content-Transfer-Encoding: 8bit\n";
}
} elsif (/^MIME-Version:/i) {
$need_8bit_cte = 0;
@@ -609,8 +646,8 @@ EOT
my $subject = $initial_subject;
$_ = "Subject: " .
($subject =~ /[^[:ascii:]]/ ?
- quote_rfc2047($subject) :
- $subject) .
+ quote_rfc2047($subject) :
+ $subject) .
"\n";
} elsif (/^In-Reply-To:\s*(.+)\s*$/i) {
$initial_reply_to = $1;
@@ -639,8 +676,10 @@ sub ask {
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);
+ 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
@@ -660,8 +699,12 @@ sub ask {
my $prompting = 0;
if (!defined $sender) {
$sender = $repoauthor || $repocommitter || '';
- $sender = ask("Who should the emails appear to be from? [$sender] ",
- default => $sender);
+
+ $sender = ask(
+ "Who should the emails appear to be from? [$sender] ",
+ default => $sender
+ );
+
print "Emails will be sent from: ", $sender, "\n";
$prompting++;
}
@@ -689,7 +732,8 @@ sub expand_aliases {
if ($thread && !defined $initial_reply_to && $prompting) {
$initial_reply_to = ask(
- "Message-ID to be used as In-Reply-To for the first email? ");
+ "Message-ID to be used as In-Reply-To for the first email? "
+ );
}
if (defined $initial_reply_to) {
$initial_reply_to =~ s/^\s*<?//;
@@ -823,18 +867,22 @@ sub sanitize_address
sub send_message
{
my @recipients = unique_email_list(@to);
- @cc = (grep { my $cc = extract_valid_address($_);
- not grep { $cc eq $_ } @recipients
- }
- map { sanitize_address($_) }
- @cc);
+
+ @cc = (grep
+ {
+ my $cc = extract_valid_address($_);
+ not grep { $cc eq $_ } @recipients
+ }
+ map { sanitize_address($_) } @cc
+ );
+
my $to = join (",\n\t", @recipients);
@recipients = unique_email_list(@recipients,@cc,@bcclist);
@recipients = (map { extract_valid_address($_) } @recipients);
my $date = format_2822_time($time++);
my $gitversion = '@@GIT_VERSION@@';
if ($gitversion =~ m/..GIT_VERSION../) {
- $gitversion = Git::version();
+ $gitversion = Git::version();
}
my $cc = join(", ", unique_email_list(@cc));
@@ -883,9 +931,13 @@ X-Mailer: git-send-email $gitversion
print " To retain the current behavior, but squelch this message,\n";
print " run 'git config --global sendemail.confirm auto'.\n\n";
}
- $_ = ask("Send this email? ([y]es|[n]o|[q]uit|[a]ll): ",
- valid_re => qr/^(?:yes|y|no|n|quit|q|all|a)/i,
- default => $ask_default);
+
+ $_ = ask(
+ "Send this email? ([y]es|[n]o|[q]uit|[a]ll): ",
+ valid_re => qr/^(?:yes|y|no|n|quit|q|all|a)/i,
+ default => $ask_default
+ );
+
die "Send this email reply required" unless defined $_;
if (/^n/i) {
return;
@@ -920,9 +972,13 @@ X-Mailer: git-send-email $gitversion
}
else {
require Net::SMTP;
- $smtp ||= Net::SMTP->new((defined $smtp_server_port)
- ? "$smtp_server:$smtp_server_port"
- : $smtp_server);
+
+ $smtp ||= Net::SMTP->new(
+ (defined $smtp_server_port)
+ ? "$smtp_server:$smtp_server_port"
+ : $smtp_server
+ );
+
if ($smtp_encryption eq 'tls') {
require Net::SMTP::SSL;
$smtp->command('STARTTLS');
@@ -1018,7 +1074,7 @@ for (my $index = 0; $index < @files; $index++) {
chomp($header[$#header]);
s/^\s+/ /;
$header[$#header] .= $_;
- } else {
+ } else {
push(@header, $_);
}
}
@@ -1136,9 +1192,9 @@ for (my $index = 0; $index < @files; $index++) {
}
else {
push @xh,
- 'MIME-Version: 1.0',
- "Content-Type: text/plain; charset=$author_encoding",
- 'Content-Transfer-Encoding: 8bit';
+ 'MIME-Version: 1.0',
+ "Content-Type: text/plain; charset=$author_encoding",
+ 'Content-Transfer-Encoding: 8bit';
}
}
}
@@ -1146,7 +1202,9 @@ for (my $index = 0; $index < @files; $index++) {
$needs_confirm = (
$confirm eq "always" or
($confirm =~ /^(?:auto|cc)$/ && @cc) or
- ($confirm =~ /^(?:auto|compose)$/ && $compose && $message_num == 1));
+ ($confirm =~ /^(?:auto|compose)$/ && $compose && $message_num == 1)
+ );
+
$needs_confirm = "inform" if ($needs_confirm && $confirm_unconfigured && @cc);
@cc = (@initial_cc, @cc);
--
1.6.2.2.448.g61445.dirty
next prev parent reply other threads:[~2009-04-07 21:28 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-07 21:25 [PATCH RFC 1/6] send-email: Add --delay for separating emails Michael Witten
2009-04-07 21:25 ` [PATCH RFC 2/6] send-email: --smtp-server-port should take an integer Michael Witten
2009-04-07 21:25 ` [PATCH RFC 3/6] send-email: Handle "GIT:" rather than "GIT: " during --compose Michael Witten
2009-04-07 21:25 ` [PATCH RFC 4/6] send-email: --compose takes optional argument to existing file Michael Witten
2009-04-07 21:25 ` [PATCH RFC 5/6] send-email: Cleanup the usage text a bit Michael Witten
2009-04-07 21:25 ` Michael Witten [this message]
2009-04-07 21:35 ` [PATCH RFC 6/6] send-email: Remove horrible mix of tabs and spaces demerphq
2009-04-07 21:42 ` Michael Witten
2009-04-07 21:44 ` demerphq
2009-04-07 21:57 ` demerphq
2009-04-07 22:00 ` Jeff King
2009-04-07 22:10 ` Andreas Ericsson
2009-04-07 23:33 ` Tomas Carnecky
2009-04-08 2:02 ` Jeff King
2009-04-11 19:22 ` [PATCH RFC 5/6] send-email: Cleanup the usage text a bit Junio C Hamano
2009-04-11 19:22 ` [PATCH RFC 4/6] send-email: --compose takes optional argument to existing file Junio C Hamano
2009-04-11 19:22 ` [PATCH RFC 3/6] send-email: Handle "GIT:" rather than "GIT: " during --compose Junio C Hamano
2009-04-11 20:45 ` Michael Witten
2009-04-12 0:59 ` Junio C Hamano
2009-04-12 2:36 ` Michael Witten
2009-04-07 23:20 ` [PATCH RFC 2/6] send-email: --smtp-server-port should take an integer Junio C Hamano
2009-04-11 19:22 ` Junio C Hamano
2009-04-11 21:01 ` Wesley J. Landaker
2009-04-11 21:07 ` Michael Witten
2009-04-07 21:51 ` [PATCH RFC 1/6] send-email: Add --delay for separating emails Jeff King
2009-04-07 22:08 ` [PATCH RFC 1/6] " Nicolas Sebrecht
2009-04-07 22:17 ` Andreas Ericsson
2009-04-08 6:05 ` Jeff King
2009-04-08 6:03 ` Jeff King
2009-04-07 23:17 ` [PATCH RFC 1/6] " Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1239139522-24118-6-git-send-email-mfwitten@gmail.com \
--to=mfwitten@gmail.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).