Re: [PATCH, v2] checkpatch: Warn on code with 6+ tab indentation, remove 80col warning

Joe Perches
2012-02-04T19:27:44Z

On Sat, 2012-02-04 at 20:54 +0200, Pekka Enberg wrote:
> On Sat, Feb 4, 2012 at 8:48 PM, Joe Perches <joe@perches.com> wrote:
> > There are some truly _ugly_ > 80 char lines that
> > people attempt where checkpatch should issue some
> > "don't do that" message.
>
> The practical downsides of the current warning are much more severe. I
> personally don't use checkpatch much these days because of the silly
> fixed limit.

More likely you developed a keen sense of
kernel style appropriateness and don't need
any checkpatch nannying.

I don't disagree with something like setting
the normally allowed line length to 100 and
maybe keeping a --strict limit to 80.

Something like:

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 2b52aeb..7602bce 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -34,6 +34,9 @@ my @ignore = ();
my $help = 0;
my $configuration_file = ".checkpatch.conf";

+my $max_line_length_warn = 100; # normal cases
+my $max_line_length_strict = 80; # when using --strict
+
sub help {
my ($exitcode) = @_;

@@ -1726,15 +1729,19 @@ sub process {
# check we are in a valid source file if not then ignore this hunk
next if ($realfile !~ /\.(h|c|s|S|pl|sh)$/);

-#80 column limit
+# check line length limit
if ($line =~ /^\+/ && $prevrawline !~ /\/\*\*/ &&
$rawline !~ /^.\s*\*\s*\@$Ident\s/ &&
!($line =~ /^\+\s*$logFunctions\s*\(\s*(?:(KERN_\S+\s*|[^"]*))?"[X\t]*"\s*(?:|,|\)\s*;)\s*$/ ||
- $line =~ /^\+\s*"[^"]*"\s*(?:\s*|,|\)\s*;)\s*$/) &&
- $length > 80)
- {
- WARN("LONG_LINE",
- "line over 80 characters\n" . $herecurr);
+ $line =~ /^\+\s*"[^"]*"\s*(?:\s*|,|\)\s*;)\s*$/) {
+ if ($length > $max_line_len_strict) {
+ CHK("LONG_LINE",
+ "line over $max_line_len_strict characters\n" . $herecurr);
+ }
+ if ($length > $max_line_len_warn) {
+ WARN("LONG_LINE",
+ "line over $max_line_len_warn characters\n" . $herecurr);
+ }
}

# check for spaces before a quoted newline