Skip to content

Commit

Permalink
checkpatch: add sub routine get_stat_here()
Browse files Browse the repository at this point in the history
checkpatch currently contains duplicate code.  We can define a sub
routine and call that instead.  This reduces code duplication and line
count.

Add subroutine get_stat_here().

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Tobin C. Harding <[email protected]>
Cc: Joe Perches <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
tcharding authored and torvalds committed Apr 11, 2018
1 parent c2066ca commit e3d95a2
Showing 1 changed file with 20 additions and 32 deletions.
52 changes: 20 additions & 32 deletions scripts/checkpatch.pl
Original file line number Diff line number Diff line change
Expand Up @@ -1656,6 +1656,17 @@ sub get_stat_real {
return $stat_real;
}

sub get_stat_here {
my ($linenr, $cnt, $here) = @_;

my $herectx = $here . "\n";
for (my $n = 0; $n < $cnt; $n++) {
$herectx .= raw_line($linenr, $n) . "\n";
}

return $herectx;
}

sub cat_vet {
my ($vet) = @_;
my ($res, $coded);
Expand Down Expand Up @@ -4967,12 +4978,8 @@ sub process {
#print "REST<$rest> dstat<$dstat> ctx<$ctx>\n";

$ctx =~ s/\n*$//;
my $herectx = $here . "\n";
my $stmt_cnt = statement_rawlines($ctx);

for (my $n = 0; $n < $stmt_cnt; $n++) {
$herectx .= raw_line($linenr, $n) . "\n";
}
my $herectx = get_stat_here($linenr, $stmt_cnt, $here);

if ($dstat ne '' &&
$dstat !~ /^(?:$Ident|-?$Constant),$/ && # 10, // foo(),
Expand Down Expand Up @@ -5044,12 +5051,9 @@ sub process {
# check for macros with flow control, but without ## concatenation
# ## concatenation is commonly a macro that defines a function so ignore those
if ($has_flow_statement && !$has_arg_concat) {
my $herectx = $here . "\n";
my $cnt = statement_rawlines($ctx);
my $herectx = get_stat_here($linenr, $cnt, $here);

for (my $n = 0; $n < $cnt; $n++) {
$herectx .= raw_line($linenr, $n) . "\n";
}
WARN("MACRO_WITH_FLOW_CONTROL",
"Macros with flow control statements should be avoided\n" . "$herectx");
}
Expand Down Expand Up @@ -5089,11 +5093,7 @@ sub process {

$ctx =~ s/\n*$//;
my $cnt = statement_rawlines($ctx);
my $herectx = $here . "\n";

for (my $n = 0; $n < $cnt; $n++) {
$herectx .= raw_line($linenr, $n) . "\n";
}
my $herectx = get_stat_here($linenr, $cnt, $here);

if (($stmts =~ tr/;/;/) == 1 &&
$stmts !~ /^\s*(if|while|for|switch)\b/) {
Expand All @@ -5107,11 +5107,7 @@ sub process {
} elsif ($dstat =~ /^\+\s*#\s*define\s+$Ident.*;\s*$/) {
$ctx =~ s/\n*$//;
my $cnt = statement_rawlines($ctx);
my $herectx = $here . "\n";

for (my $n = 0; $n < $cnt; $n++) {
$herectx .= raw_line($linenr, $n) . "\n";
}
my $herectx = get_stat_here($linenr, $cnt, $here);

WARN("TRAILING_SEMICOLON",
"macros should not use a trailing semicolon\n" . "$herectx");
Expand Down Expand Up @@ -5234,12 +5230,8 @@ sub process {
}
}
if ($level == 0 && $block =~ /^\s*\{/ && !$allowed) {
my $herectx = $here . "\n";
my $cnt = statement_rawlines($block);

for (my $n = 0; $n < $cnt; $n++) {
$herectx .= raw_line($linenr, $n) . "\n";
}
my $herectx = get_stat_here($linenr, $cnt, $here);

WARN("BRACES",
"braces {} are not necessary for single statement blocks\n" . $herectx);
Expand Down Expand Up @@ -6096,11 +6088,9 @@ sub process {
}
if ($r1 !~ /^sizeof\b/ && $r2 =~ /^sizeof\s*\S/ &&
!($r1 =~ /^$Constant$/ || $r1 =~ /^[A-Z_][A-Z0-9_]*$/)) {
my $herectx = $here . "\n";
my $cnt = statement_rawlines($stat);
for (my $n = 0; $n < $cnt; $n++) {
$herectx .= raw_line($linenr, $n) . "\n";
}
my $herectx = get_stat_here($linenr, $cnt, $here);

if (WARN("ALLOC_WITH_MULTIPLY",
"Prefer $newfunc over $oldfunc with multiply\n" . $herectx) &&
$cnt == 1 &&
Expand Down Expand Up @@ -6183,11 +6173,9 @@ sub process {
if ($^V && $^V ge 5.10.0 &&
defined $stat &&
$stat =~ /^\+[$;\s]*(?:case[$;\s]+\w+[$;\s]*:[$;\s]*|)*[$;\s]*\bdefault[$;\s]*:[$;\s]*;/g) {
my $herectx = $here . "\n";
my $cnt = statement_rawlines($stat);
for (my $n = 0; $n < $cnt; $n++) {
$herectx .= raw_line($linenr, $n) . "\n";
}
my $herectx = get_stat_here($linenr, $cnt, $here);

WARN("DEFAULT_NO_BREAK",
"switch default: should use break\n" . $herectx);
}
Expand Down

0 comments on commit e3d95a2

Please sign in to comment.