cstyle: allow right paren on its own line

Make the style checker script accept right parentheses on their own
lines. This is motivated by the Linux tracepoints macro
DECLARE_EVENT_CLASS.

The code within TP_fast_assign() (a parameter of DECLARE_EVENT_CLASS)
is normal C assignments terminated by semicolons.  But the style
checker forbids us from following a semicolon with a non-blank and
from preceding a right parenthesis with white space.  Therefore the
closing parenthesis must go on the next line, yet the style checker
foribs us from indenting it for readability.  Relaxing the
no-non-blank-after-semicolon rule would open the door to too many bad
style practices. So instead we relax the
no-white-space-before-right-paren rule if the parenthesis is on its
own line.  The relaxation is overriden with the -p option so we still
have a way to catch misuse of this style.

Signed-off-by: Ned Bass <bass6@llnl.gov>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
This commit is contained in:
Ned Bass 2014-11-06 13:34:17 -08:00 committed by Brian Behlendorf
parent 29e57d15c8
commit 5024046763
1 changed files with 3 additions and 2 deletions

View File

@ -597,8 +597,9 @@ line: while (<$filehandle>) {
if (/\(\s/) { if (/\(\s/) {
err("whitespace after left paren"); err("whitespace after left paren");
} }
# allow "for" statements to have empty "continue" clauses # Allow "for" statements to have empty "continue" clauses.
if (/\s\)/ && !/^\s*for \([^;]*;[^;]*; \)/) { # Allow right paren on its own line unless we're being picky (-p).
if (/\s\)/ && !/^\s*for \([^;]*;[^;]*; \)/ && ($picky || !/^\s*\)/)) {
err("whitespace before right paren"); err("whitespace before right paren");
} }
if (/^\s*\(void\)[^ ]/) { if (/^\s*\(void\)[^ ]/) {