ncursesw-morphos/misc/jpf-indent
Thomas E. Dickey 027ae42953 ncurses 5.6
2006-12-17 23:32:42 -05:00

120 lines
3.9 KiB
Bash
Executable File

#!/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