Commit 6e7bdfac by Yury Gribov Committed by Yury Gribov

check_GNU_style.sh: Support patches coming from stdin.

2015-01-12  Yury Gribov  <y.gribov@samsung.com>

	* check_GNU_style.sh: Support patches coming from stdin.
	Check that spaces are converted to tabs.
	Make double-space-after-dot check more precice.

From-SVN: r219447
parent bc5a0a9c
2015-01-12 Yury Gribov <y.gribov@samsung.com>
* 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 <ebotcazou@adacore.com> 2015-01-06 Eric Botcazou <ebotcazou@adacore.com>
* config-list.mk (LIST): Add visium-elf. * config-list.mk (LIST): Add visium-elf.
......
...@@ -23,6 +23,8 @@ usage() { ...@@ -23,6 +23,8 @@ usage() {
check_GNU_style.sh [patch]... check_GNU_style.sh [patch]...
Checks the patches for some of the GNU style formatting problems. 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 Please note that these checks are not always accurate, and
complete. The reference documentation of the GNU Coding Standards complete. The reference documentation of the GNU Coding Standards
can be found here: http://www.gnu.org/prep/standards_toc.html can be found here: http://www.gnu.org/prep/standards_toc.html
...@@ -35,19 +37,22 @@ EOF ...@@ -35,19 +37,22 @@ EOF
test $# -eq 0 && usage test $# -eq 0 && usage
inp=check_GNU_style.inp
tmp=check_GNU_style.tmp tmp=check_GNU_style.tmp
# Remove $tmp on exit and various signals. # Remove $tmp on exit and various signals.
trap "rm -f $tmp" 0 trap "rm -f $inp $tmp" 0
trap "rm -f $tmp ; exit 1" 1 2 3 5 9 13 15 trap "rm -f $inp $tmp ; exit 1" 1 2 3 5 9 13 15
grep -nH '^+' $* \
| grep -v ':+++' \
> $inp
# Grep # Grep
g (){ g (){
msg="$1" msg="$1"
arg="$2" arg="$2"
shift 2 cat $inp \
grep -nH '^+' $* \
| grep -v ':+++' \
| egrep --color=always -- "$arg" \ | egrep --color=always -- "$arg" \
> $tmp && printf "\n$msg\n" > $tmp && printf "\n$msg\n"
cat $tmp cat $tmp
...@@ -58,9 +63,7 @@ ag (){ ...@@ -58,9 +63,7 @@ ag (){
msg="$1" msg="$1"
arg1="$2" arg1="$2"
arg2="$3" arg2="$3"
shift 3 cat $inp \
grep -nH '^+' $* \
| grep -v ':+++' \
| egrep --color=always -- "$arg1" \ | egrep --color=always -- "$arg1" \
| egrep --color=always -- "$arg2" \ | egrep --color=always -- "$arg2" \
> $tmp && printf "\n$msg\n" > $tmp && printf "\n$msg\n"
...@@ -72,9 +75,7 @@ vg (){ ...@@ -72,9 +75,7 @@ vg (){
msg="$1" msg="$1"
varg="$2" varg="$2"
arg="$3" arg="$3"
shift 3 cat $inp \
grep -nH '^+' $* \
| grep -v ':+++' \
| egrep -v -- "$varg" \ | egrep -v -- "$varg" \
| egrep --color=always -- "$arg" \ | egrep --color=always -- "$arg" \
> $tmp && printf "\n$msg\n" > $tmp && printf "\n$msg\n"
...@@ -83,9 +84,7 @@ vg (){ ...@@ -83,9 +84,7 @@ vg (){
col (){ col (){
msg="$1" msg="$1"
shift 1 cat $inp \
grep -nH '^+' $* \
| grep -v ':+++' \
| awk -F':\\+' '{ if (length($2) > 80) print $0}' \ | awk -F':\\+' '{ if (length($2) > 80) print $0}' \
> $tmp > $tmp
if [ -s $tmp ]; then if [ -s $tmp ]; then
...@@ -94,30 +93,32 @@ col (){ ...@@ -94,30 +93,32 @@ col (){
fi 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.' \ g 'Trailing whitespace.' \
'[[:space:]]$' $* '[[:space:]]$'
g 'Space before dot.' \ g 'Space before dot.' \
'[[:alnum:]][[:blank:]]+\.' $* '[[:alnum:]][[:blank:]]+\.'
g 'Dot, space, space, new sentence.' \ 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.' \ 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.' \ 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.' \ 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.' \ g 'There should be no space before closing parentheses.' \
'[[:graph:]][[:blank:]]+\)' $* '[[:graph:]][[:blank:]]+\)'
ag 'Braces should be on a separate line.' \ ag 'Braces should be on a separate line.' \
'\{' 'if[[:blank:]]\(|while[[:blank:]]\(|switch[[:blank:]]\(' $* '\{' 'if[[:blank:]]\(|while[[:blank:]]\(|switch[[:blank:]]\('
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment