#!/bin/sh # # convert ansi-C to old-vanilla-C if it conforms to coding conventions: # all function definitions and declaractions must be of the form # stuff (...); # or stuff (...) # # another quickie by: # Corey Satten, corey@cac.washington.edu, 12/8/89 TMP=/tmp/unansi$$ trap "rm -f $TMP; exit 0" 0 1 2 13 15 for f in $*; do sed ' /^#/b : joinl / $/s/ *$//; / $/s/ *$//; /^\([^ ()][^()]*\)(.*,$/ { N s/\n/ / b joinl } /^\([^ ()][^()]*\)(.*);$/s//\1 ();/ /^\([^ ()][^()]*\)([ ]*)$/b /^\([^ ()][^()]*\)(.*)$/ { h : loop s/\([(,]\)[^,)][^,)]*[ *]\([a-zA-Z_][a-zA-Z_]*\)[][ ]*\([,)]\)/\1\2\3/g t loop p g s/^.*(\(.*\))$/ \1;/ s/,/;\ \ /g } ' $f > $TMP && mv $TMP $f done