From 41682c110d4e2da62d180e409902ec716f4874a3 Mon Sep 17 00:00:00 2001 From: spop Date: Fri, 2 Jul 2010 16:34:55 +0000 Subject: Script to check patches violating the GNU style. 2010-07-02 Sebastian Pop * check_GNU_style.sh: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161729 138bc75d-0d04-0410-961f-82ee72b054a4 --- contrib/ChangeLog | 4 ++ contrib/check_GNU_style.sh | 117 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 121 insertions(+) create mode 100755 contrib/check_GNU_style.sh diff --git a/contrib/ChangeLog b/contrib/ChangeLog index 267627adcdb..89c781745b7 100644 --- a/contrib/ChangeLog +++ b/contrib/ChangeLog @@ -1,3 +1,7 @@ +2010-07-02 Sebastian Pop + + * check_GNU_style.sh: New. + 2010-07-02 Rainer Orth * make_sunver.pl: New file. diff --git a/contrib/check_GNU_style.sh b/contrib/check_GNU_style.sh new file mode 100755 index 00000000000..6396417fab7 --- /dev/null +++ b/contrib/check_GNU_style.sh @@ -0,0 +1,117 @@ +#!/bin/sh + +# Checks some of the GNU style formatting rules in a set of patches. +# Copyright (C) 2010 Free Software Foundation, Inc. +# Contributed by Sebastian Pop + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + +usage() { + cat < $tmp && printf "\n$msg\n" + cat $tmp +} + +# And Grep +ag (){ + msg="$1" + arg1="$2" + arg2="$3" + shift 3 + grep -nH '^+' $* \ + | grep -v ':+++' \ + | egrep --color=always -- "$arg1" \ + | egrep --color=always -- "$arg2" \ + > $tmp && printf "\n$msg\n" + cat $tmp +} + +# reVerse Grep +vg (){ + msg="$1" + varg="$2" + arg="$3" + shift 3 + grep -nH '^+' $* \ + | grep -v ':+++' \ + | egrep -v -- "$varg" \ + | egrep --color=always -- "$arg" \ + > $tmp && printf "\n$msg\n" + cat $tmp +} + +col (){ + msg="$1" + shift 1 + grep -nH '^+' $* \ + | grep -v ':+++' \ + | cut -f 2 -d '+' \ + | awk '{ if (length ($0) > 80) print $0 }' \ + > $tmp && printf "\n$msg\n" + cat $tmp +} + +col 'Lines should not exceed 80 characters.' $* + +g 'Trailing whitespace.' \ + '[[:space:]]$' $* + +g 'Space before dot.' \ + '[[:alnum:]][[:blank:]]+\.' $* + +g 'Dot, space, space, new sentence.' \ + '[[:alnum:]]\.([[:blank:]]|[[:blank:]]{3,})[[:alnum:]]' $* + +g 'Dot, space, space, end of comment.' \ + '[[:alnum:]]\.([[:blank:]]{0,1}|[[:blank:]]{3,})\*/' $* + +g 'Sentences should end with a dot. Dot, space, space, end of the comment.' \ + '[[:alnum:]][[:blank:]]*\*/' $* + +vg 'There should be exactly one space between function name and parentheses.' \ + '\#define' '[[:alnum:]]([^[:blank:]]|[[:blank:]]{2,})\(' $* + +g 'There should be no space before closing parentheses.' \ + '[[:graph:]][[:blank:]]+\)' $* + +ag 'Braces should be on a separate line.' \ + '\{' 'if[[:blank:]]\(|while[[:blank:]]\(|switch[[:blank:]]\(' $* + + -- cgit v1.2.1