aboutsummaryrefslogtreecommitdiff
path: root/misc/ncu-indent
diff options
context:
space:
mode:
Diffstat (limited to 'misc/ncu-indent')
-rwxr-xr-xmisc/ncu-indent130
1 files changed, 130 insertions, 0 deletions
diff --git a/misc/ncu-indent b/misc/ncu-indent
new file mode 100755
index 000000000000..1e1c7fffaeb2
--- /dev/null
+++ b/misc/ncu-indent
@@ -0,0 +1,130 @@
+#!/bin/sh
+#****************************************************************************
+#* Copyright (c) 2001-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: ncu-indent,v 1.16 2006/02/18 17:02:22 tom Exp $
+NOOP=no
+OPTS='
+--blank-lines-after-procedures
+--braces-on-if-line
+--continuation-indentation0
+--continue-at-parentheses
+--cuddle-else
+--indent-level4
+--leave-preprocessor-space
+--no-blank-lines-after-commas
+--no-blank-lines-after-declarations
+--no-space-after-function-call-names
+--procnames-start-lines
+--space-special-semicolon
+--swallow-optional-blank-lines
+--tab-size8
+
+-T NCURSES_EXPORT_VAR
+-T NCURSES_INLINE
+-T SCREEN
+-T TERMTYPE
+-T attr_t
+-T cchar_t
+-T chtype
+-T inline
+-T wchar_t
+-T wint_t
+
+-T BUFFER
+-T CHARTYPE
+-T FILE
+-T GCC_NORETURN
+-T LINE
+-T MARK
+-T RETSIGTYPE
+-T TBUFF
+-T WINDOW
+-T size_t
+-T va_list
+
+-T Cardinal
+-T Widget
+-T XtPointer
+'
+for name in $*
+do
+ case $name in
+ -v|-n)
+ NOOP=yes
+ OPTS="$OPTS -v"
+ ;;
+ -*)
+ OPTS="$OPTS $name"
+ ;;
+ *.[ch]|*.cc|*.cpp)
+ 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