diff mbox

[v2] checkpatch: Fix whitespace checks for documentation code blocks

Message ID 147325254382.22644.5531276787733455773.stgit@fimbulvetr.bsc.es
State New
Headers show

Commit Message

Lluís Vilanova Sept. 7, 2016, 12:49 p.m. UTC
Prevent blank lines in documentation code blocks to be signalled as
incorrect trailing whitespace.

Code blocks in documentation are 4-column aligned, and blank lines in
them should have exactly 4 columns of trailing whitespace to prevent
QEMU's wiki to render them as separate code blocks.

Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
---
 scripts/checkpatch.pl |   10 ++++++++++
 1 file changed, 10 insertions(+)

Comments

Paolo Bonzini Sept. 7, 2016, 12:54 p.m. UTC | #1
On 07/09/2016 14:49, Lluís Vilanova wrote:
> Prevent blank lines in documentation code blocks to be signalled as
> incorrect trailing whitespace.
> 
> Code blocks in documentation are 4-column aligned, and blank lines in
> them should have exactly 4 columns of trailing whitespace to prevent
> QEMU's wiki to render them as separate code blocks.
> 
> Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu>
> ---
>  scripts/checkpatch.pl |   10 ++++++++++
>  1 file changed, 10 insertions(+)
> 
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index b0096a4..dde3f5f 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
> @@ -1320,6 +1320,16 @@ sub process {
>  			my $herevet = "$here\n" . cat_vet($rawline) . "\n";
>  			ERROR("DOS line endings\n" . $herevet);
>  
> +		} elsif ($realfile =~ /^docs\/.+\.txt/ ||
> +			 $realfile =~ /^docs\/.+\.md/) {
> +		    if ($rawline =~ /^\+\s+$/ && $rawline !~ /^\+ {4}$/) {
> +			# TODO: properly check we're in a code block
> +			#       (surrounding text is 4-column aligned)
> +			my $herevet = "$here\n" . cat_vet($rawline) . "\n";
> +			ERROR("code blocks in documentation should have " .
> +			      "empty lines with exactly 4 columns of " .
> +			      "whitespace\n" . $herevet);
> +		    }
>  		} elsif ($rawline =~ /^\+.*\S\s+$/ || $rawline =~ /^\+\s+$/) {
>  			my $herevet = "$here\n" . cat_vet($rawline) . "\n";
>  			ERROR("trailing whitespace\n" . $herevet);
> 

Queued for 2.8, thanks.

Paolo
diff mbox

Patch

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index b0096a4..dde3f5f 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1320,6 +1320,16 @@  sub process {
 			my $herevet = "$here\n" . cat_vet($rawline) . "\n";
 			ERROR("DOS line endings\n" . $herevet);
 
+		} elsif ($realfile =~ /^docs\/.+\.txt/ ||
+			 $realfile =~ /^docs\/.+\.md/) {
+		    if ($rawline =~ /^\+\s+$/ && $rawline !~ /^\+ {4}$/) {
+			# TODO: properly check we're in a code block
+			#       (surrounding text is 4-column aligned)
+			my $herevet = "$here\n" . cat_vet($rawline) . "\n";
+			ERROR("code blocks in documentation should have " .
+			      "empty lines with exactly 4 columns of " .
+			      "whitespace\n" . $herevet);
+		    }
 		} elsif ($rawline =~ /^\+.*\S\s+$/ || $rawline =~ /^\+\s+$/) {
 			my $herevet = "$here\n" . cat_vet($rawline) . "\n";
 			ERROR("trailing whitespace\n" . $herevet);