Annotation of researchv10no/cmd/troff/cvt, revision 1.1.1.1

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: ' $*

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.