#!/bin/sh #**************************************************************************** #* Copyright (c) 2001-2006,2008 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.17 2008/08/03 15:46:44 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 '/EMPTY_MODULE(/s/)$/);/' \ -e '/MODULE_ID(/s/)$/);/' \ -e 's,\\),//\1,' \ "$save" >"$test" cp "$test" "$name" chmod u+w "$name" # ${INDENT_PROG-indent} --version ${INDENT_PROG-indent} -npro $OPTS "$name" sed \ -e '/EMPTY_MODULE(/s/);$/)/' \ -e '/MODULE_ID(/s/);$/)/' \ -e 's,;[ ]*//GCC_NORETURN;, GCC_NORETURN;,' \ -e 's,;[ ]*//GCC_PRINTFLIKE(, GCC_PRINTFLIKE(,' \ -e 's,;[ ]*//GCC_SCANFLIKE(, GCC_SCANFLIKE(,' \ -e 's,//\(\\),\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