public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] checkpatch: Fix line number reporting
@ 2007-10-12 19:26 Mike D. Day
  2007-10-12 19:37 ` Andy Whitcroft
  0 siblings, 1 reply; 18+ messages in thread
From: Mike D. Day @ 2007-10-12 19:26 UTC (permalink / raw)
  To: Andy Whitcroft; +Cc: linux-kernel, Erez Zadok, Ingo Molnar

Fix line number reporting when checking source files (as opposed to
patches)

Signed-off-by: Mike D. Day <ncmike@us.ibm.com>
---
checkpatch.pl-next (as of Oct. 12) reports lines incorrectly when
checking source files as opposed to checking patches.

A line number will show up twice in a normal message, 3 times when
using the --emacs option. Here is an example using the 10/12 version:

~/slp-devel/src/cmd-utils/slp_query/slp_query.c:9:
ERROR: trailing whitespace #13: FILE:
~/slp-devel/src/cmd-utils/slp_query/slp_query.c:10:

In the report above, checkpatch reports three different line numbers:
9, 13, and 10. When using the --file option, all numbers are supposed
to be the same. One of the errors is caused by initializing the prefix
too early. By moving that line from 606 to 675 there an improvement,
though still incorrect:

~/slp-devel/src/cmd-utils/slp_query/slp_query.c:10:
ERROR: trailing whitespace #13: FILE:
~/slp-devel/src/cmd-utils/slp_query/slp_query.c:10: 

To check a sourcefie, checkpatch diffs that file with /dev/null and
pipes the resulting patch into stdin. Checkpatch uses different
variables to keep track of a patch ($linenr) and the corresponding
line in the sourcefile ($realline). Since the sourcefile *is* a patch
in this case, the line number is reported incorrectly.

To fix this, checkpatch needs to alter the variable it uses for the
source line when the --file option is used, as below. 

$prefix = "$filename:$realline: " if ($emacs && $file);
$prefix = "$filename:$linenr: " if ($emacs && !$file);
 
--- checkpatch.pl-next-10-12	2007-10-12 13:39:21.000000000 -0400
+++ checkpatch.pl	2007-10-12 14:30:55.000000000 -0400
@@ -606,7 +606,6 @@
 
 		my $rawline = $line;
 
-		$prefix = "$filename:$realline: " if ($emacs);
 
 #extract the filename as it passes
 		if ($line=~/^\+\+\+\s+(\S+)/) {
@@ -665,13 +664,16 @@
 		}
 
 #make up the handle for any error we report on this line
-		$here = "#$linenr: ";
+		$here = "#$linenr: " if (!$file);
+		$here = "#$realline: " if ($file);
 		$here .= "FILE: $realfile:$realline:" if ($realcnt != 0);
 
 		my $hereline = "$here\n$line\n";
 		my $herecurr = "$here\n$line\n";
 		my $hereprev = "$here\n$prevline\n$line\n";
 
+		$prefix = "$filename:$realline: " if ($emacs && $file);
+		$prefix = "$filename:$linenr: " if ($emacs && !$file);
 		$cnt_lines++ if ($realcnt != 0);
 
 #check the patch for a signoff:

-- 
Mike D. Day
IBM LTC
Cell: 919 412-3900
Sametime: ncmike@us.ibm.com AIM: ncmikeday  Yahoo: ultra.runner
PGP key: http://www.ncultra.org/ncmike/pubkey.asc

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2007-10-19  9:12 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-10-12 19:26 [PATCH] checkpatch: Fix line number reporting Mike D. Day
2007-10-12 19:37 ` Andy Whitcroft
2007-10-13 18:35   ` Erez Zadok
2007-10-15 18:21     ` Andy Whitcroft
2007-10-16 17:59       ` Erez Zadok
2007-10-17 16:39         ` Andy Whitcroft
2007-10-18 11:13           ` latest checkpatch Ingo Molnar
2007-10-18 19:25             ` Andy Whitcroft
2007-10-18 19:39               ` Ingo Molnar
2007-10-18 20:02                 ` Avi Kivity
2007-10-18 20:51                   ` Ingo Molnar
2007-10-18 20:57                     ` Jeff Garzik
2007-10-18 22:25                       ` Randy Dunlap
2007-10-19  9:01                     ` Andy Whitcroft
2007-10-18 23:16                   ` Andi Kleen
2007-10-19  9:12                 ` Ilpo Järvinen
2007-10-18 19:43               ` Andy Whitcroft
2007-10-18 20:00                 ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox