|
|
1.1 root 1: BEGIN {
2: longest = 0
3: overf = 0
4: i = 1
5: }
6: (/^\.sh/&& NF == 1)||
7: /^\.(([NS]H)|(TL)|(TI))/ {
8: place[i] = total
9: if($0 ~ /SH/ && NF > 1|| $0 ~ /NH/ && (NF > 2 || $2 ~ /[A-Za-z]/)){
10: if($0 ~ /"/){
11: n = split($0,x,"\"")
12: heading = x[2]
13: }
14: else heading = $2
15: hsize += length(heading) + 1
16: }
17: else {
18: total += length($0) + 1
19: nlines = 0
20: while(getline){
21: if(nlines++ > 3){
22: print "too many lines in heading:" heading |"cat 1>&2"
23: break
24: }
25: total += length($0) +1
26: hsize += length($0) +1
27: if($0 ~ /^\.UX/){
28: nlines--
29: heading = heading " UNIX"
30: hsize += 1
31: }
32: else if($0 ~ /^\./){
33: if($1 ~ /^\.P/ || $1 ~ /^\.LP/|| $1 ~ /^\.[AT]/)break
34: if(heading == "")heading = $2
35: else heading = heading " " $2
36: if(NF > 2)for(n=3;n<=NF;n++)
37: heading = heading " " $n
38: }
39: else if(heading == "")
40: heading = $0
41: else
42: heading = heading " " $0
43: }
44: }
45: total += length($0) +1
46: text[i] = heading
47: l = length(heading)
48: if(longest < l+1)
49: longest = l + 1
50: if(l > 23){
51: while(l>=23){
52: overf++;
53: l -= 23
54: }
55: }
56: heading = ""
57: i++
58: next
59: }
60: /^\.(H[U ]|[su]h)/ {
61: place[i] = total
62: total += length($0) + 1
63: if($0 ~ /"/){
64: n = split($0, hd, "\"")
65: if(n == 3)
66: heading = hd[2]
67: else{
68: heading = hd[2]
69: print "unbalanced quotes: " $0 >"err.hd"
70: }
71: }
72: else if($1 ~ /HU|uh/)heading = $2
73: else heading = $3
74: text[i] = heading
75: l = length(heading)
76: hsize += l + 1
77: if(longest < l+1)
78: longest = l + 1
79: if(l > 23){
80: while(l>=23){
81: overf++;
82: l -= 23
83: }
84: }
85: heading = ""
86: i++
87: next
88: }
89: /^\.de/ {
90: total += length($0) +1
91: while(getline && $0 !~ /^\.\.$/){
92: total += length($0) +1
93: }
94: total += length($0) +1
95: next
96: }
97: /.*/ {
98: total += length($0) + 1
99: }
100: END {
101: if(i > 1){
102: # print hsize " " longest " " i-1 " " overf
103: for(n=1;n<i;n++){
104: # print place[n]
105: print text[n]
106: }
107: }
108: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.