Blame


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