#!/bin/sh -e # indent needs to know type names do to a proper job. # Type names located with grep typedef, then extracted by hand: types="coord empth_rwlock_t empth_t i_type" opts="-kr -cdw -cp8 -ncs -psl -ss" for t in $types do opts="$opts -T $t" done # Quote `The `indent' Manual', Edition 2.2.8, section Bugs: # # Comments of the form /*UPPERCASE*/ are not treated as comment but # as an identifier, causing them to be joined with the next # line. This renders comments of this type useless, unless they are # embedded in the code to begin with. # # Therefore, we have to pre- and postprocess with sed. Without this # bug, a simple find | xargs indent would do. for i do if sed 's#/\*\([A-Z][A-Z]*\)\*/#/* @@@\1@@@ */#g' <$i | indent $opts | sed 's#/\* @@@\([A-Z][A-Z]*\)@@@ \*/#/*\1*/#g' >$$ then mv $$ $i else rm -f $i; exit 1; fi done