lkml.org 
[lkml]   [2007]   [Oct]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Subject[PATCH 2/3] CHECKPATCH: add terse output option to checkpatch.pl
Date
Such terse output complies with g/cc and looks like

file_name:line_number:error_message

This output can be easily parsed within text editors (e.g., emacs/vim) that
can produce a split text screen showing in one screen the error message, and
in another screen the corresponding source file, with the cursor placed on
the offending line.

Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
scripts/checkpatch.pl | 20 ++++++++++++++++----
1 files changed, 16 insertions(+), 4 deletions(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index ecbb030..f8bd630 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -18,12 +18,14 @@ my $tree = 1;
my $chk_signoff = 1;
my $chk_patch = 1;
my $tst_type = 0;
+my $terse = 0; # terse ouput: report using g/cc error style
GetOptions(
'q|quiet' => \$quiet,
'tree!' => \$tree,
'signoff!' => \$chk_signoff,
'patch!' => \$chk_patch,
'test-type!' => \$tst_type,
+ 't|terse' => \$terse,
) or exit;

my $exit = 0;
@@ -34,6 +36,7 @@ if ($#ARGV < 0) {
print "options: -q => quiet\n";
print " --no-tree => run without a kernel tree\n";
print " --no-signoff => don't check for signed-off-by\n";
+ print " -t => report errors using terse cc-style output (implies -q)\n";
exit(1);
}

@@ -267,7 +270,16 @@ sub cat_vet {

my @report = ();
sub report {
- push(@report, $_[0]);
+ if (!$terse) {
+ push(@report, $_[0]);
+ return;
+ }
+ # if terse output, extract filename, linenumber, and short message;
+ # format them as a new one-line message and push onto report
+ my($msg, $location, @rest) = split(/\n/, $_[0]);
+ @rest = split(/: /, $location);
+ my($newreport) = sprintf("%s%s\n", $rest[2], $msg);
+ push(@report, $newreport);
}
sub report_dump {
@report;
@@ -1097,17 +1109,17 @@ sub process {
if ($chk_patch && !$is_patch) {
ERROR("Does not appear to be a unified-diff format patch\n");
}
- if ($is_patch && $chk_signoff && $signoff == 0) {
+ if ($terse == 0 && $is_patch && $chk_signoff && $signoff == 0) {
ERROR("Missing Signed-off-by: line(s)\n");
}

if ($clean == 0 && ($chk_patch || $is_patch)) {
print report_dump();
}
- if ($clean == 1 && $quiet == 0) {
+ if ($terse == 0 && $clean == 1 && $quiet == 0) {
print "Your patch has no obvious style problems and is ready for submission.\n"
}
- if ($clean == 0 && $quiet == 0) {
+ if ($terse == 0 && $clean == 0 && $quiet == 0) {
print "Your patch has style problems, please review. If any of these errors\n";
print "are false positives report them to the maintainer, see\n";
print "CHECKPATCH in MAINTAINERS.\n";
--
1.5.2.2
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-10-05 18:59    [W:0.065 / U:0.148 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site