aboutsummaryrefslogtreecommitdiff
path: root/contrib/ncurses/misc/jpf-indent
blob: cdd825c61d37ea2dcecacd1912cb25f0223b7b0d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
#!/bin/sh
#****************************************************************************
#* Copyright (c) 2004-2005,2006 Thomas E. Dickey                            *
#*                                                                          *
#* Permission is hereby granted, free of charge, to any person obtaining a  *
#* copy of this software and associated documentation files (the            *
#* "Software"), to deal in the Software without restriction, including      *
#* without limitation the rights to use, copy, modify, merge, publish,      *
#* distribute, distribute with modifications, sublicense, and/or sell       *
#* copies of the Software, and to permit persons to whom the Software is    *
#* furnished to do so, subject to the following conditions:                 *
#*                                                                          *
#* The above copyright notice and this permission notice shall be included  *
#* in all copies or substantial portions of the Software.                   *
#*                                                                          *
#* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS  *
#* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF               *
#* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.   *
#* IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,   *
#* DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR    *
#* OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR    *
#* THE USE OR OTHER DEALINGS IN THE SOFTWARE.                               *
#*                                                                          *
#* Except as contained in this notice, the name(s) of the above copyright   *
#* holders shall not be used in advertising or otherwise to promote the     *
#* sale, use or other dealings in this Software without prior written       *
#* authorization.                                                           *
#****************************************************************************/
# $Id: jpf-indent,v 1.6 2006/02/18 17:07:15 tom Exp $
# indent ncurses source written by Juergen Pfeifer
NOOP=no
OPTS='
-npro
--blank-lines-after-declarations
--blank-lines-after-procedures
--brace-indent2
--braces-after-if-line
--continue-at-parentheses
--indent-level2
--line-length80
--no-space-after-casts
--no-space-after-function-call-names
--parameter-indentation4
--swallow-optional-blank-lines
--tab-size8

-T FIELD
-T FIELDTYPE
-T FIELD_CELL
-T FORM
-T NCURSES_INLINE
-T RegExp_Arg 
-T TypeArgument 
-T WINDOW
-T attr_t
-T bool
-T cchar_t
-T chtype
-T enumARG
-T va_list
-T wchar_t 
'
for name in $*
do
	case $name in
	-v|-n)
		NOOP=yes
		OPTS="$OPTS -v"
		;;
	-*)
		OPTS="$OPTS $name"
		;;
	*.[ch])
		save="${name}".a$$
		test="${name}".b$$
		rm -f "$save" "$test"
		mv "$name" "$save"
		sed \
			-e '/MODULE_ID(/s/)$/);/' \
			-e 's,\<GCC_NORETURN;,;//GCC_NORETURN;,' \
			-e 's,\<GCC_PRINTFLIKE(,;//GCC_PRINTFLIKE(,' \
			-e 's,\<GCC_SCANFLIKE(,;//GCC_SCANFLIKE(,' \
			-e 's,\(\<NCURSES_EXPORT_VAR\>\),//\1,' \
			"$save" >"$test"
		cp "$test" "$name"
		chmod u+w "$name"
		# ${INDENT_PROG-indent} --version
		${INDENT_PROG-indent} -npro $OPTS "$name"
		sed \
			-e '/MODULE_ID(/s/);$/)/' \
			-e 's,;[ 	]*//GCC_NORETURN;, GCC_NORETURN;,' \
			-e 's,;[ 	]*//GCC_PRINTFLIKE(, GCC_PRINTFLIKE(,' \
			-e 's,;[ 	]*//GCC_SCANFLIKE(, GCC_SCANFLIKE(,' \
			-e 's,//\(\<NCURSES_EXPORT_VAR\>\),\1,' \
			"$name" >"$test"
		mv "$test" "$name"
		rm -f "${name}~"
		if test $NOOP = yes ; then
			if (cmp -s "$name" "$save" ) then
				echo "** no change: $name"
			else
				diff -u "$save" "$name"
			fi
			rm -f "$name"
			mv "$save" "$name"
		elif ( cmp -s "$name" "$save" ) ; then
			echo "** unchanged $name"
			rm -f "${name}"
			mv "$save" "$name"
		else
			echo "** updated $name"
			rm -f "$save"
		fi
		;;
	*)
		echo "** ignored:   $name"
		;;
	esac
done