From: Ramkumar Ramachandra <artagnon@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Git List <git@vger.kernel.org>
Subject: [PATCH v2] git-send-email.perl: implement suggestions made by perlcritic
Date: Thu, 28 Mar 2013 18:17:15 +0530 [thread overview]
Message-ID: <1364474835-23416-1-git-send-email-artagnon@gmail.com> (raw)
In-Reply-To: <7vfvzgn3ob.fsf@alter.siamese.dyndns.org>
Running perlcritic with gentle severity reports six problems. The
following lists the line numbers on which the problems occur, along
with a description of the problem. This patch fixes them all, after
carefully considering the consequences.
516: Contrary to common belief, subroutine prototypes do not enable
compile-time checks for proper arguments. They serve the singular
purpose of defining functions that behave like built-in functions, but
check_file_rev_conflict was never intended to behave like one. We
have verified that the callers of the subroutines are alright with the
change.
714, 836, 855, 1487: Returning `undef' upon failure from a subroutine
is pretty common. But if the subroutine is called in list context, an
explicit `return undef;' statement will return a one-element list
containing `(undef)'. Now if that list is subsequently put in a
boolean context to test for failure, then it evaluates to true. But
you probably wanted it to be false. The solution is to just use a
bare `return' statement whenever you want to return failure. In list
context, Perl will then give you an empty list (which is false), and
`undef' in scalar context (which is also false).
1441: The three-argument form of `open' (introduced in Perl 5.6)
prevents subtle bugs that occur when the filename starts with funny
characters like '>' or '<'. It's also more explicitly clear to define
the input mode of the file. This policy will not complain if the file
explicitly states that it is compatible with a version of Perl prior
to 5.6 via an include statement (see 'use 5.008' near the top of the
file).
Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
---
Junio: In future, please tell me explicitly that you're expecting a
re-roll with an updated commit message. It wasn't obvious to me at
all.
git-send-email.perl | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/git-send-email.perl b/git-send-email.perl
index c3501d9..633f447 100755
--- a/git-send-email.perl
+++ b/git-send-email.perl
@@ -513,7 +513,7 @@ if (@alias_files and $aliasfiletype and defined $parse_alias{$aliasfiletype}) {
($sender) = expand_aliases($sender) if defined $sender;
# returns 1 if the conflict must be solved using it as a format-patch argument
-sub check_file_rev_conflict($) {
+sub check_file_rev_conflict {
return unless $repo;
my $f = shift;
try {
@@ -711,7 +711,7 @@ sub ask {
}
}
}
- return undef;
+ return;
}
my %broken_encoding;
@@ -833,7 +833,7 @@ sub extract_valid_address {
# less robust/correct than the monster regexp in Email::Valid,
# but still does a 99% job, and one less dependency
return $1 if $address =~ /($local_part_regexp\@$domain_regexp)/;
- return undef;
+ return;
}
sub extract_valid_address_or_die {
@@ -852,7 +852,7 @@ sub validate_address {
valid_re => qr/^(?:quit|q|drop|d|edit|e)/i,
default => 'q');
if (/^d/i) {
- return undef;
+ return;
} elsif (/^q/i) {
cleanup_compose_files();
exit(0);
@@ -1453,7 +1453,7 @@ sub recipients_cmd {
my $sanitized_sender = sanitize_address($sender);
my @addresses = ();
- open my $fh, "$cmd \Q$file\E |"
+ open my $fh, q{-|}, "$cmd \Q$file\E"
or die "($prefix) Could not execute '$cmd'";
while (my $address = <$fh>) {
$address =~ s/^\s*//g;
@@ -1499,7 +1499,7 @@ sub validate_patch {
return "$.: patch contains a line longer than 998 characters";
}
}
- return undef;
+ return;
}
sub file_has_nonascii {
--
1.8.2.141.g07926c6
next prev parent reply other threads:[~2013-03-28 12:46 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-21 12:39 [PATCH] git-send-email.perl: implement suggestions made by perlcritic Ramkumar Ramachandra
2013-03-21 15:29 ` Junio C Hamano
2013-03-21 16:51 ` Ramkumar Ramachandra
2013-03-27 17:13 ` Ramkumar Ramachandra
2013-03-27 17:38 ` Junio C Hamano
2013-03-28 12:47 ` Ramkumar Ramachandra [this message]
2013-03-28 18:57 ` [PATCH v2] " Jonathan Nieder
2013-03-28 20:26 ` Junio C Hamano
2013-03-31 20:59 ` Ramkumar Ramachandra
2013-04-01 1:39 ` Junio C Hamano
2013-04-01 1:40 ` [PATCH 1/3] send-email: use "return;" not "return undef;" on error codepaths Junio C Hamano
2013-04-01 1:40 ` [PATCH 2/3] send-email: drop misleading function prototype Junio C Hamano
2013-04-01 2:20 ` Jonathan Nieder
2013-04-01 4:09 ` Eric Sunshine
2013-04-01 1:40 ` [PATCH 3/3] send-email: use the three-arg form of open in recipients_cmd Junio C Hamano
2013-04-01 2:30 ` Jonathan Nieder
2013-04-02 7:46 ` Ramkumar Ramachandra
2013-04-01 4:08 ` [PATCH 1/3] send-email: use "return;" not "return undef;" on error codepaths Eric Sunshine
2013-04-02 7:59 ` Ramkumar Ramachandra
2013-04-02 14:49 ` Junio C Hamano
2013-04-02 7:41 ` [PATCH v2] git-send-email.perl: implement suggestions made by perlcritic Ramkumar Ramachandra
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=1364474835-23416-1-git-send-email-artagnon@gmail.com \
--to=artagnon@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/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 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 NNTP newsgroup(s).