Re: [Proposal] end of file checks by checkpatch.pl

From: Joe Perches
Date: Thu May 09 2019 - 13:20:28 EST


On Fri, 2019-05-10 at 00:27 +0900, Masahiro Yamada wrote:
> Hi Joe,
>
>
> Does it make sense to check the following
> by checkpatch.pl ?
>
>
> [1] blank line at end of file


> [2] no new line at end of file

I'm pretty sure checkpatch does one this already.
(around line 3175)

# check for adding lines without a newline.
if ($line =~ /^\+/ && defined $lines[$linenr] && $lines[$linenr] =~ /^\\ No newline at end of file/) {
WARN("MISSING_EOF_NEWLINE",
"adding a line without newline at end of file\n" . $herecurr);
}


> When I apply a patch,
> I sometimes see the following warning from 'git am'.
>
>
> Applying: kunit: test: add string_stream a std::stream like string builder
> .git/rebase-apply/patch:223: new blank line at EOF.
> +
>
>
> I just thought it could be checked
> before the patch submission.

perhaps:
---
scripts/checkpatch.pl | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 1c421ac42b07..ceb32c584ee5 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3356,6 +3356,12 @@ sub process {
$last_blank_line = $linenr;
}

+# check the last line isn't blank
+ if ($linenr >= $#rawlines && $line =~ /^\+\s*$/) {
+ WARN("LINE_SPACING",
+ "Avoid blank lines at EOF\n" . $herecurr);
+ }
+
# check for missing blank lines after declarations
if ($sline =~ /^\+\s+\S/ && #Not at char 1
# actual declarations