1*219b2ee8SDavid du Colombier 2*219b2ee8SDavid du Colombierawk ' 3*219b2ee8SDavid du Colombier 4*219b2ee8SDavid du Colombier/^{/ { 5*219b2ee8SDavid du Colombier if (prev != "") { 6*219b2ee8SDavid du Colombier # comments can be trouble (e.g. ffree()) 7*219b2ee8SDavid du Colombier if ( (c = match(prev, /\/\*.*\*\/$/)) != 0 ) { 8*219b2ee8SDavid du Colombier comment = substr(prev, c) 9*219b2ee8SDavid du Colombier sub(/\/\*.*\*\/$/, "", prev) 10*219b2ee8SDavid du Colombier } else comment = "" 11*219b2ee8SDavid du Colombier 12*219b2ee8SDavid du Colombier x = prev 13*219b2ee8SDavid du Colombier 14*219b2ee8SDavid du Colombier # isolate argument list 15*219b2ee8SDavid du Colombier sub(/^[^(]*\(/, "", x) 16*219b2ee8SDavid du Colombier sub(/\)[^)]*$/, "", x) 17*219b2ee8SDavid du Colombier 18*219b2ee8SDavid du Colombier # find the names in it 19*219b2ee8SDavid du Colombier n = split(x, args) 20*219b2ee8SDavid du Colombier arglist = "" 21*219b2ee8SDavid du Colombier for (i = 2; i <= n; i += 2) 22*219b2ee8SDavid du Colombier arglist = arglist args[i] 23*219b2ee8SDavid du Colombier gsub(/\(\*f\)\(Tchar\)/, "f", arglist) # special case for n4.c 24*219b2ee8SDavid du Colombier gsub(/\[[0-9]+\]/, "", arglist) # for n8.c 25*219b2ee8SDavid du Colombier gsub(/[*()\[\]]/, "", arglist) # discard noise characters *()[] 26*219b2ee8SDavid du Colombier gsub(/,/, ", ", arglist) # space nicely 27*219b2ee8SDavid du Colombier sub(/\(.*\)/, "(" arglist ")", prev) # reconstruct 28*219b2ee8SDavid du Colombier print prev comment 29*219b2ee8SDavid du Colombier 30*219b2ee8SDavid du Colombier # argument declarations 31*219b2ee8SDavid du Colombier gsub(/,/, ";", x) 32*219b2ee8SDavid du Colombier gsub(/\(\*f\)\(Tchar\)/, "(*f)()", x) # special case for n4.c 33*219b2ee8SDavid du Colombier if (x != "") 34*219b2ee8SDavid du Colombier print "\t" x ";" 35*219b2ee8SDavid du Colombier } 36*219b2ee8SDavid du Colombier prev = $0 37*219b2ee8SDavid du Colombier next 38*219b2ee8SDavid du Colombier} 39*219b2ee8SDavid du Colombier 40*219b2ee8SDavid du Colombier{ print prev 41*219b2ee8SDavid du Colombier prev = $0 42*219b2ee8SDavid du Colombier} 43*219b2ee8SDavid du Colombier 44*219b2ee8SDavid du ColombierEND { print prev } 45*219b2ee8SDavid du Colombier' $* 46