|
|
1.1 ! root 1: ! 2: awk ' ! 3: ! 4: /^{/ { ! 5: if (prev != "") { ! 6: # comments can be trouble (e.g. ffree()) ! 7: if ( (c = match(prev, /\/\*.*\*\/$/)) != 0 ) { ! 8: comment = substr(prev, c) ! 9: sub(/\/\*.*\*\/$/, "", prev) ! 10: } else comment = "" ! 11: ! 12: x = prev ! 13: ! 14: # isolate argument list ! 15: sub(/^[^(]*\(/, "", x) ! 16: sub(/\)[^)]*$/, "", x) ! 17: ! 18: # find the names in it ! 19: n = split(x, args) ! 20: arglist = "" ! 21: for (i = 2; i <= n; i += 2) ! 22: arglist = arglist args[i] ! 23: gsub(/\(\*f\)\(Tchar\)/, "f", arglist) # special case for n4.c ! 24: gsub(/\[[0-9]+\]/, "", arglist) # for n8.c ! 25: gsub(/[*()\[\]]/, "", arglist) # discard noise characters *()[] ! 26: gsub(/,/, ", ", arglist) # space nicely ! 27: sub(/\(.*\)/, "(" arglist ")", prev) # reconstruct ! 28: print prev comment ! 29: ! 30: # argument declarations ! 31: gsub(/,/, ";", x) ! 32: gsub(/\(\*f\)\(Tchar\)/, "(*f)()", x) # special case for n4.c ! 33: if (x != "") ! 34: print "\t" x ";" ! 35: } ! 36: prev = $0 ! 37: next ! 38: } ! 39: ! 40: { print prev ! 41: prev = $0 ! 42: } ! 43: ! 44: END { print prev } ! 45: ' $*
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.