checkpatch: refine mode selection

stgit produces patch files that lack the ".patch" extensions.  Others
might be using ".diff" too.  But since we are already limiting source files
to only a handful of extensions, we can reuse that in the mode selection
code.

While at it, do not match "../foo" as a branch name.

Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Paolo Bonzini 2017-10-04 16:35:53 +02:00
parent a0b261db8c
commit 777d05ba47

View File

@ -11,6 +11,8 @@ use warnings;
my $P = $0; my $P = $0;
$P =~ s@.*/@@g; $P =~ s@.*/@@g;
our $SrcFile = qr{\.(?:h|c|cpp|s|S|pl|py|sh)$};
my $V = '0.31'; my $V = '0.31';
use Getopt::Long qw(:config no_auto_abbrev); use Getopt::Long qw(:config no_auto_abbrev);
@ -101,30 +103,29 @@ if ($#ARGV < 0) {
} }
if (!defined $chk_branch && !defined $chk_patch && !defined $file) { if (!defined $chk_branch && !defined $chk_patch && !defined $file) {
$chk_branch = $ARGV[0] =~ /\.\./ ? 1 : 0; $chk_branch = $ARGV[0] =~ /.\.\./ ? 1 : 0;
$chk_patch = $chk_branch ? 0 : $file = $ARGV[0] =~ /$SrcFile/ ? 1 : 0;
$ARGV[0] =~ /\.patch$/ || $ARGV[0] eq "-" ? 1 : 0; $chk_patch = $chk_branch || $file ? 0 : 1;
$file = $chk_branch || $chk_patch ? 0 : 1;
} elsif (!defined $chk_branch && !defined $chk_patch) { } elsif (!defined $chk_branch && !defined $chk_patch) {
if ($file) { if ($file) {
$chk_branch = $chk_patch = 0; $chk_branch = $chk_patch = 0;
} else { } else {
$chk_branch = $ARGV[0] =~ /\.\./ ? 1 : 0; $chk_branch = $ARGV[0] =~ /.\.\./ ? 1 : 0;
$chk_patch = $chk_branch ? 0 : 1; $chk_patch = $chk_branch ? 0 : 1;
} }
} elsif (!defined $chk_branch && !defined $file) { } elsif (!defined $chk_branch && !defined $file) {
if ($chk_patch) { if ($chk_patch) {
$chk_branch = $file = 0; $chk_branch = $file = 0;
} else { } else {
$chk_branch = $ARGV[0] =~ /\.\./ ? 1 : 0; $chk_branch = $ARGV[0] =~ /.\.\./ ? 1 : 0;
$file = $chk_branch ? 0 : 1; $file = $chk_branch ? 0 : 1;
} }
} elsif (!defined $chk_patch && !defined $file) { } elsif (!defined $chk_patch && !defined $file) {
if ($chk_branch) { if ($chk_branch) {
$chk_patch = $file = 0; $chk_patch = $file = 0;
} else { } else {
$chk_patch = $ARGV[0] =~ /\.patch$/ || $ARGV[0] eq "-" ? 1 : 0; $file = $ARGV[0] =~ /$SrcFile/ ? 1 : 0;
$file = $chk_patch ? 0 : 1; $chk_patch = $file ? 0 : 1;
} }
} elsif (!defined $chk_branch) { } elsif (!defined $chk_branch) {
$chk_branch = $chk_patch || $file ? 0 : 1; $chk_branch = $chk_patch || $file ? 0 : 1;
@ -1443,7 +1444,7 @@ sub process {
} }
# check we are in a valid source file if not then ignore this hunk # check we are in a valid source file if not then ignore this hunk
next if ($realfile !~ /\.(h|c|cpp|s|S|pl|py|sh)$/); next if ($realfile !~ /$SrcFile/);
#90 column limit #90 column limit
if ($line =~ /^\+/ && if ($line =~ /^\+/ &&