Messages in this thread Patch in this message | | | Subject | [PATCH] checkpatch: Warn on code with 6+ tab indentation | From | Joe Perches <> | Date | Fri, 03 Feb 2012 15:20:39 -0800 |
| |
Overly indented code should be refactored.
Suggest refactoring excessive indentation of of if/else/for/do/while/switch statements.
For example:
$ cat t.c #include <stdio.h> #include <stdlib.h>
int main(int argc, char **argv) {
if (1) if (2) if (3) if (4) if (5) if (6) if (7) if (8) ; return 0; }
$ ./scripts/checkpatch.pl -f t.c WARNING: Too many leading tabs - consider code refactoring #12: FILE: t.c:12: + if (6)
WARNING: Too many leading tabs - consider code refactoring #13: FILE: t.c:13: + if (7)
WARNING: Too many leading tabs - consider code refactoring #14: FILE: t.c:14: + if (8)
total: 0 errors, 3 warnings, 17 lines checked
t.c has style problems, please review.
If any of these errors are false positives, please report them to the maintainer, see CHECKPATCH in MAINTAINERS.
Signed-off-by: Joe Perches <joe@perches.com> --- On Fri, 2012-02-03 at 13:27 -0800, Linus Torvalds wrote: > So no, 100-char columns are not ok.
Perhaps this is a reasonable alternative.
Another might be to limit variable name length to something shorter than say 10 characters.
scripts/checkpatch.pl | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 2b52aeb..89d24b3 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -1924,6 +1924,12 @@ sub process { my $pre_ctx = "$1$2"; my ($level, @ctx) = ctx_statement_level($linenr, $realcnt, 0); + + if ($line =~ /^\+\t{6,}/) { + WARN("DEEP_INDENTATION", + "Too many leading tabs - consider code refactoring\n" . $herecurr); + } + my $ctx_cnt = $realcnt - $#ctx - 1; my $ctx = join("\n", @ctx);
| |