Mercurial > hg > CbC > CbC_gcc
comparison contrib/check_GNU_style.sh @ 68:561a7518be6b
update gcc-4.6
author | Nobuyasu Oshiro <dimolto@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Sun, 21 Aug 2011 07:07:55 +0900 |
parents | |
children | 04ced10e8804 |
comparison
equal
deleted
inserted
replaced
67:f6334be47118 | 68:561a7518be6b |
---|---|
1 #!/bin/sh | |
2 | |
3 # Checks some of the GNU style formatting rules in a set of patches. | |
4 # Copyright (C) 2010 Free Software Foundation, Inc. | |
5 # Contributed by Sebastian Pop <sebastian.pop@amd.com> | |
6 | |
7 # This program is free software; you can redistribute it and/or modify | |
8 # it under the terms of the GNU General Public License as published by | |
9 # the Free Software Foundation; either version 3 of the License, or | |
10 # (at your option) any later version. | |
11 | |
12 # This program is distributed in the hope that it will be useful, | |
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 # GNU General Public License for more details. | |
16 | |
17 # You should have received a copy of the GNU General Public License | |
18 # along with this program; if not, write to the Free Software | |
19 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA | |
20 | |
21 usage() { | |
22 cat <<EOF | |
23 check_GNU_style.sh [patch]... | |
24 | |
25 Checks the patches for some of the GNU style formatting problems. | |
26 Please note that these checks are not always accurate, and | |
27 complete. The reference documentation of the GNU Coding Standards | |
28 can be found here: http://www.gnu.org/prep/standards_toc.html | |
29 and there are also some additional coding conventions for GCC: | |
30 http://gcc.gnu.org/codingconventions.html | |
31 | |
32 EOF | |
33 exit 1 | |
34 } | |
35 | |
36 test $# -eq 0 && usage | |
37 | |
38 tmp=check_GNU_style.tmp | |
39 | |
40 # Grep | |
41 g (){ | |
42 msg="$1" | |
43 arg="$2" | |
44 shift 2 | |
45 grep -nH '^+' $* \ | |
46 | grep -v ':+++' \ | |
47 | egrep --color=always -- "$arg" \ | |
48 > $tmp && printf "\n$msg\n" | |
49 cat $tmp | |
50 } | |
51 | |
52 # And Grep | |
53 ag (){ | |
54 msg="$1" | |
55 arg1="$2" | |
56 arg2="$3" | |
57 shift 3 | |
58 grep -nH '^+' $* \ | |
59 | grep -v ':+++' \ | |
60 | egrep --color=always -- "$arg1" \ | |
61 | egrep --color=always -- "$arg2" \ | |
62 > $tmp && printf "\n$msg\n" | |
63 cat $tmp | |
64 } | |
65 | |
66 # reVerse Grep | |
67 vg (){ | |
68 msg="$1" | |
69 varg="$2" | |
70 arg="$3" | |
71 shift 3 | |
72 grep -nH '^+' $* \ | |
73 | grep -v ':+++' \ | |
74 | egrep -v -- "$varg" \ | |
75 | egrep --color=always -- "$arg" \ | |
76 > $tmp && printf "\n$msg\n" | |
77 cat $tmp | |
78 } | |
79 | |
80 col (){ | |
81 msg="$1" | |
82 shift 1 | |
83 grep -nH '^+' $* \ | |
84 | grep -v ':+++' \ | |
85 | cut -f 2 -d '+' \ | |
86 | awk '{ if (length ($0) > 80) print $0 }' \ | |
87 > $tmp | |
88 if [ -s $tmp ]; then | |
89 printf "\n$msg\n" | |
90 cat $tmp | |
91 fi | |
92 } | |
93 | |
94 col 'Lines should not exceed 80 characters.' $* | |
95 | |
96 g 'Trailing whitespace.' \ | |
97 '[[:space:]]$' $* | |
98 | |
99 g 'Space before dot.' \ | |
100 '[[:alnum:]][[:blank:]]+\.' $* | |
101 | |
102 g 'Dot, space, space, new sentence.' \ | |
103 '[[:alnum:]]\.([[:blank:]]|[[:blank:]]{3,})[[:alnum:]]' $* | |
104 | |
105 g 'Dot, space, space, end of comment.' \ | |
106 '[[:alnum:]]\.([[:blank:]]{0,1}|[[:blank:]]{3,})\*/' $* | |
107 | |
108 g 'Sentences should end with a dot. Dot, space, space, end of the comment.' \ | |
109 '[[:alnum:]][[:blank:]]*\*/' $* | |
110 | |
111 vg 'There should be exactly one space between function name and parentheses.' \ | |
112 '\#define' '[[:alnum:]]([^[:blank:]]|[[:blank:]]{2,})\(' $* | |
113 | |
114 g 'There should be no space before closing parentheses.' \ | |
115 '[[:graph:]][[:blank:]]+\)' $* | |
116 | |
117 ag 'Braces should be on a separate line.' \ | |
118 '\{' 'if[[:blank:]]\(|while[[:blank:]]\(|switch[[:blank:]]\(' $* | |
119 | |
120 |