From: Michael Witten <mfwitten@gmail.com>
To: git@vger.kernel.org
Subject: [PATCH RFC 07/10] send-email: Remove horrible mix of tabs and spaces
Date: Sat, 11 Apr 2009 14:08:25 -0500 [thread overview]
Message-ID: <1239476908-25944-7-git-send-email-mfwitten@gmail.com> (raw)
In-Reply-To: <1239476908-25944-6-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 | 278 +++++++++++++++++++++++++++++++--------------------
1 files changed, 168 insertions(+), 110 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index d90c76e..4f0462f 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;
@@ -116,19 +124,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 };
@@ -192,29 +201,29 @@ 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 = (
- "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,
+ "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
@@ -245,37 +254,38 @@ $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,
- "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" => \$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,
+ "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" => \$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"
@@ -404,29 +414,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}) {
@@ -574,10 +610,11 @@ EOT
} elsif (/^\n$/) {
$in_body = 1;
if ($need_8bit_cte) {
- print C2 "MIME-Version: 1.0\n",
- "Content-Type: text/plain; ",
- "charset=utf-8\n",
- "Content-Transfer-Encoding: 8bit\n";
+ print C2
+ "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;
@@ -586,8 +623,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;
@@ -619,8 +656,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
@@ -640,8 +679,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++;
}
@@ -669,7 +712,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*<?//;
@@ -809,18 +853,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));
@@ -869,9 +917,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 0;
@@ -906,9 +958,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');
@@ -1005,7 +1061,7 @@ foreach my $t (@files) {
chomp($header[$#header]);
s/^\s+/ /;
$header[$#header] .= $_;
- } else {
+ } else {
push(@header, $_);
}
}
@@ -1123,9 +1179,9 @@ foreach my $t (@files) {
}
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';
}
}
}
@@ -1133,7 +1189,9 @@ foreach my $t (@files) {
$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.479.g2aec
next prev parent reply other threads:[~2009-04-11 19:16 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-04-11 19:08 [PATCH RFC 01/10] Docs: send-email: Put options back into alphabetical order Michael Witten
2009-04-11 19:08 ` [PATCH RFC 02/10] Docs: send-email: Remove superfluous information in CONFIGURATION Michael Witten
2009-04-11 19:08 ` [PATCH RFC 03/10] send-email: Cleanup the usage text and docs a bit Michael Witten
2009-04-11 19:08 ` [PATCH RFC 04/10] send-email: --smtp-server-port should take an integer Michael Witten
2009-04-11 19:08 ` [PATCH RFC 05/10] send-email: Handle "GIT:" rather than "GIT: " during --compose Michael Witten
2009-04-11 19:08 ` [PATCH RFC 06/10] send-email: References: should only reference what is actually sent Michael Witten
2009-04-11 19:08 ` Michael Witten [this message]
2009-04-11 19:08 ` [PATCH RFC 08/10] send-email: Add --sleep for email throttling Michael Witten
2009-04-11 19:08 ` [PATCH RFC 09/10] send-email: Minor cleanup of $smtp_server usage and send_message() Michael Witten
2009-04-11 19:08 ` [PATCH RFC 10/10] send-email: --compose takes optional argument to existing file Michael Witten
2009-04-11 19:25 ` Sverre Rabbelier
2009-04-11 19:38 ` Michael Witten
2009-04-11 21:58 ` [PATCH RFC 09/10] send-email: Minor cleanup of $smtp_server usage and send_message() Stephen Boyd
2009-04-11 22:13 ` Michael Witten
2009-04-12 2:27 ` [PATCH RFC 08/10] send-email: Add --sleep for email throttling Jay Soffian
2009-04-12 2:59 ` Michael Witten
2009-04-11 19:17 ` [PATCH RFC 07/10] send-email: Remove horrible mix of tabs and spaces Sverre Rabbelier
2009-04-11 19:31 ` Michael Witten
2009-04-13 1:49 ` Miles Bader
2009-04-13 2:15 ` Michael Witten
2009-04-11 21:52 ` [PATCH RFC 06/10] send-email: References: should only reference what is actually sent Stephen Boyd
2009-04-11 22:42 ` Michael Witten
2009-04-11 21:42 ` [PATCH RFC 02/10] Docs: send-email: Remove superfluous information in CONFIGURATION Stephen Boyd
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1239476908-25944-7-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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.