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