diff --git a/contrib/ChangeLog b/contrib/ChangeLog index ea346590548..1f02d959496 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,9 @@ +2015-01-12 Yury Gribov + + * check_GNU_style.sh: Support patches coming from stdin. + Check that spaces are converted to tabs. + Make double-space-after-dot check more precice. + 2015-01-06 Eric Botcazou * config-list.mk (LIST): Add visium-elf. diff --git a/contrib/check_GNU_style.sh b/contrib/check_GNU_style.sh index aed90b4e3a5..e8d5dcaf7bc 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 \ | awk -F':\\+' '{ if (length($2) > 80) print $0}' \ > $tmp if [ -s $tmp ]; then @@ -94,30 +93,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:]]\('