Hi all, Attached patch adds new check (all blocks of 8 spaces are replaced with tabs) to contrib/check_GNU_style.sh. It also changes the script to allow reading patches from stdin and strengthens the "Dot, space, space, new sentence." check.
Is this ok to commit? -Y
>From c099086a7325d5feca28630be5a569a7de027c93 Mon Sep 17 00:00:00 2001 From: Yury Gribov <y.gri...@samsung.com> Date: Thu, 11 Dec 2014 13:19:59 +0300 Subject: [PATCH] 2014-12-11 Yury Gribov <y.gri...@samsung.com> check_GNU_style.sh: Support patches coming from stdin, check that spaces are converted to tabs and make double-space-after-dot check more precice. --- contrib/check_GNU_style.sh | 49 ++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 24 deletions(-) diff --git a/contrib/check_GNU_style.sh b/contrib/check_GNU_style.sh index 5f90190..cf6081e 100755 --- a/contrib/check_GNU_style.sh +++ b/contrib/check_GNU_style.sh @@ -23,6 +23,8 @@ usage() { check_GNU_style.sh [patch]... Checks the patches for some of the GNU style formatting problems. + When FILE is -, read standard input. + Please note that these checks are not always accurate, and complete. The reference documentation of the GNU Coding Standards can be found here: http://www.gnu.org/prep/standards_toc.html @@ -35,19 +37,22 @@ EOF test $# -eq 0 && usage +inp=check_GNU_style.inp tmp=check_GNU_style.tmp # Remove $tmp on exit and various signals. -trap "rm -f $tmp" 0 -trap "rm -f $tmp ; exit 1" 1 2 3 5 9 13 15 +trap "rm -f $inp $tmp" 0 +trap "rm -f $inp $tmp ; exit 1" 1 2 3 5 9 13 15 + +grep -nH '^+' $* \ + | grep -v ':+++' \ + > $inp # Grep g (){ msg="$1" arg="$2" - shift 2 - grep -nH '^+' $* \ - | grep -v ':+++' \ + cat $inp \ | egrep --color=always -- "$arg" \ > $tmp && printf "\n$msg\n" cat $tmp @@ -58,9 +63,7 @@ ag (){ msg="$1" arg1="$2" arg2="$3" - shift 3 - grep -nH '^+' $* \ - | grep -v ':+++' \ + cat $inp \ | egrep --color=always -- "$arg1" \ | egrep --color=always -- "$arg2" \ > $tmp && printf "\n$msg\n" @@ -72,9 +75,7 @@ vg (){ msg="$1" varg="$2" arg="$3" - shift 3 - grep -nH '^+' $* \ - | grep -v ':+++' \ + cat $inp \ | egrep -v -- "$varg" \ | egrep --color=always -- "$arg" \ > $tmp && printf "\n$msg\n" @@ -83,9 +84,7 @@ vg (){ col (){ msg="$1" - shift 1 - grep -nH '^+' $* \ - | grep -v ':+++' \ + cat $inp \ | cut -f 2 -d '+' \ | awk '{ if (length ($0) > 80) print $0 }' \ > $tmp @@ -95,30 +94,32 @@ col (){ fi } -col 'Lines should not exceed 80 characters.' $* +col 'Lines should not exceed 80 characters.' + +g 'Blocks of 8 spaces should be replaced with tabs.' \ + ' {8}' g 'Trailing whitespace.' \ - '[[:space:]]$' $* + '[[:space:]]$' g 'Space before dot.' \ - '[[:alnum:]][[:blank:]]+\.' $* + '[[:alnum:]][[:blank:]]+\.' g 'Dot, space, space, new sentence.' \ - '[[:alnum:]]\.([[:blank:]]|[[:blank:]]{3,})[[:alnum:]]' $* + '[[:alnum:]]\.([[:blank:]]|[[:blank:]]{3,})[A-Z0-9]' g 'Dot, space, space, end of comment.' \ - '[[:alnum:]]\.([[:blank:]]{0,1}|[[:blank:]]{3,})\*/' $* + '[[:alnum:]]\.([[:blank:]]{0,1}|[[:blank:]]{3,})\*/' g 'Sentences should end with a dot. Dot, space, space, end of the comment.' \ - '[[:alnum:]][[:blank:]]*\*/' $* + '[[:alnum:]][[:blank:]]*\*/' vg 'There should be exactly one space between function name and parentheses.' \ - '\#define' '[[:alnum:]]([[:blank:]]{2,})?\(' $* + '\#define' '[[:alnum:]]([[:blank:]]{2,})?\(' g 'There should be no space before closing parentheses.' \ - '[[:graph:]][[:blank:]]+\)' $* + '[[:graph:]][[:blank:]]+\)' ag 'Braces should be on a separate line.' \ - '\{' 'if[[:blank:]]\(|while[[:blank:]]\(|switch[[:blank:]]\(' $* - + '\{' 'if[[:blank:]]\(|while[[:blank:]]\(|switch[[:blank:]]\(' -- 1.7.9.5