All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 3/3] checkpatch: adjust to QEMUisms
@ 2011-01-11 19:58 Blue Swirl
  0 siblings, 0 replies; only message in thread
From: Blue Swirl @ 2011-01-11 19:58 UTC (permalink / raw)
  To: qemu-devel

Change checkpatch.pl for QEMU use:
 - Root directory detection
 - Forbid tabs
 - Indent at 4 spaces
 - Allow typedefs
 - Enforce brace use even for single statement blocks
 - Don't suggest nonexistent cleanup tools

Mention the script in CODING_STYLE.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
---
 CODING_STYLE          |    3 ++
 scripts/checkpatch.pl |   62 +++++++++++++-----------------------------------
 2 files changed, 20 insertions(+), 45 deletions(-)

diff --git a/CODING_STYLE b/CODING_STYLE
index 2c8268d..5ecfa22 100644
--- a/CODING_STYLE
+++ b/CODING_STYLE
@@ -1,6 +1,9 @@
 Qemu Coding Style
 =================

+Please use the script checkpatch.pl in the scripts directory to check
+patches before submitting.
+
 1. Whitespace

 Of course, the most important aspect in any coding style is whitespace.
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 2a8a0e2..8541916 100644
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -328,9 +328,9 @@ sub top_of_kernel_tree {
 	my ($root) = @_;

 	my @tree_check = (
-		"COPYING", "CREDITS", "Kbuild", "MAINTAINERS", "Makefile",
-		"README", "Documentation", "arch", "include", "drivers",
-		"fs", "init", "ipc", "kernel", "lib", "scripts",
+		"COPYING", "MAINTAINERS", "Makefile",
+		"README", "docs", "VERSION",
+		"vl.c"
 	);

 	foreach my $check (@tree_check) {
@@ -1494,31 +1494,13 @@ sub process {
 # check we are in a valid source file C or perl if not then ignore this hunk
 		next if ($realfile !~ /\.(h|c|pl)$/);

-# at the beginning of a line any tabs must come first and anything
-# more than 8 must use tabs.
-		if ($rawline =~ /^\+\s* \t\s*\S/ ||
-		    $rawline =~ /^\+\s*        \s*/) {
+# in QEMU, no tabs are allowed
+		if ($rawline =~ /\t/) {
 			my $herevet = "$here\n" . cat_vet($rawline) . "\n";
-			ERROR("code indent should use tabs where possible\n" . $herevet);
+			ERROR("code indent should never use tabs\n" . $herevet);
 			$rpt_cleaners = 1;
 		}

-# check for space before tabs.
-		if ($rawline =~ /^\+/ && $rawline =~ / \t/) {
-			my $herevet = "$here\n" . cat_vet($rawline) . "\n";
-			WARN("please, no space before tabs\n" . $herevet);
-		}
-
-# check for spaces at the beginning of a line.
-# Exceptions:
-#  1) within comments
-#  2) indented preprocessor commands
-#  3) hanging labels
-		if ($rawline =~ /^\+ / && $line !~ /\+ *(?:$;|#|$Ident:)/)  {
-			my $herevet = "$here\n" . cat_vet($rawline) . "\n";
-			WARN("please, no spaces at the start of a line\n" . $herevet);
-		}
-
 # check we are in a valid C source file if not then ignore this hunk
 		next if ($realfile !~ /\.(h|c)$/);

@@ -1746,7 +1728,7 @@ sub process {

 			#print "line<$line> prevline<$prevline> indent<$indent>
sindent<$sindent> check<$check> continuation<$continuation> s<$s>
cond_lines<$cond_lines> stat_real<$stat_real> stat<$stat>\n";

-			if ($check && (($sindent % 8) != 0 ||
+			if ($check && (($sindent % 4) != 0 ||
 			    ($sindent <= $indent && $s ne ''))) {
 				WARN("suspect code indent for conditional statements ($indent,
$sindent)\n" . $herecurr . "$stat_real\n");
 			}
@@ -1869,16 +1851,6 @@ sub process {
 				$herecurr);
 		}

-# check for new typedefs, only function parameters and sparse annotations
-# make sense.
-		if ($line =~ /\btypedef\s/ &&
-		    $line !~ /\btypedef\s+$Type\s*\(\s*\*?$Ident\s*\)\s*\(/ &&
-		    $line !~ /\btypedef\s+$Type\s+$Ident\s*\(/ &&
-		    $line !~ /\b$typeTypedefs\b/ &&
-		    $line !~ /\b__bitwise(?:__|)\b/) {
-			WARN("do not add new typedefs\n" . $herecurr);
-		}
-
 # * goes on variable not on type
 		# (char*[ const])
 		if ($line =~ m{\($NonptrType(\s*(?:$Modifier\b\s*|\*\s*)+)\)}) {
@@ -2514,13 +2486,13 @@ sub process {
 			WARN("vmlinux.lds.h needs VMLINUX_SYMBOL() around C-visible
symbols\n" . $herecurr);
 		}

-# check for redundant bracing round if etc
+# check for missing bracing round if etc
 		if ($line =~ /(^.*)\bif\b/ && $1 !~ /else\s*$/) {
 			my ($level, $endln, @chunks) =
 				ctx_statement_full($linenr, $realcnt, 1);
 			#print "chunks<$#chunks> linenr<$linenr> endln<$endln> level<$level>\n";
 			#print "APW: <<$chunks[1][0]>><<$chunks[1][1]>>\n";
-			if ($#chunks > 0 && $level == 0) {
+			if ($#chunks >= 0 && $level == 0) {
 				my $allowed = 0;
 				my $seen = 0;
 				my $herectx = $here . "\n";
@@ -2558,8 +2530,8 @@ sub process {
 						$allowed = 1;
 					}
 				}
-				if ($seen && !$allowed) {
-					WARN("braces {} are not necessary for any arm of this
statement\n" . $herectx);
+				if (!$seen) {
+					WARN("braces {} are necessary for all arms of this statement\n"
. $herectx);
 				}
 			}
 		}
@@ -2605,7 +2577,7 @@ sub process {
 					$allowed = 1;
 				}
 			}
-			if ($level == 0 && $block =~ /^\s*\{/ && !$allowed) {
+			if ($level == 0 && !$block =~ /^\s*\{/ && !$allowed) {
 				my $herectx = $here . "\n";;
 				my $cnt = statement_rawlines($block);

@@ -2613,7 +2585,7 @@ sub process {
 					$herectx .= raw_line($linenr, $n) . "\n";;
 				}

-				WARN("braces {} are not necessary for single statement blocks\n"
. $herectx);
+				WARN("braces {} are necessary even for single statement blocks\n"
. $herectx);
 			}
 		}

@@ -2918,10 +2890,10 @@ sub process {
 	if ($quiet == 0) {
 		# If there were whitespace errors which cleanpatch can fix
 		# then suggest that.
-		if ($rpt_cleaners) {
-			print "NOTE: whitespace errors detected, you may wish to use
scripts/cleanpatch or\n";
-			print "      scripts/cleanfile\n\n";
-		}
+#		if ($rpt_cleaners) {
+#			print "NOTE: whitespace errors detected, you may wish to use
scripts/cleanpatch or\n";
+#			print "      scripts/cleanfile\n\n";
+#		}
 	}

 	if ($clean == 1 && $quiet == 0) {
-- 
1.6.2.4

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2011-01-11 20:02 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-11 19:58 [Qemu-devel] [PATCH 3/3] checkpatch: adjust to QEMUisms Blue Swirl

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.