|
|
1.1 root 1: IND=../index/tools
2:
3: ENVIRON='runind(){
4: if test -s $1.ms
5: then
6: J=`basename $1 .ms`
7: F=$1.ms
8: O=x$1.ms
9: else if test -s $1.m
10: then
11: J=`basename $1 .m`
12: F=$1.m
13: O=x$1.m
14: else if test $1
15: then
16: J=$1
17: F=$1
18: O=x$1
19: else
20: echo $1 not found
21: exit
22: fi
23: fi
24: fi
25: tr A-Z a-z <$J.terms|sed "s/\([a-z][a-z/]*\)\.\([a-z][a-z]*\)/\1zz1\2/g"|sort|uniq|
26: awk '\'' {
27: if(last == $0)next
28: if(last "s" == $0){
29: print last
30: last = ""
31: next
32: }
33: else if(last != "")
34: print last
35: last = $0
36: }
37: END {
38: if(last != "")print last
39: } >$J.lt
40: sed s/\([a-z][a-z]*\)\.\([a-z][a-z]*\)/\1zz1\2/g $F >foo
41: $IND/diction -f $J.lt -o $J.hits foo >/dev/null
42: sed s/zz1/\./g $J.hits|tr $ ~ >$J.nh
43: mv $J.nh $J.hits
44: awk -v name=$J.hits
45: BEGIN {
46: getterm()
47: }
48: /.*/ {
49: line = $0
50: if(NR >= number){
51: putterm()
52: }
53: print line
54: if(line ~ /^\.PS[ ]*</)next
55: if(line ~ /^\.[TPI]S/){
56: while(getline > 0){
57: if($0 ~ /^\.T\&/){
58: if(NR >= number)
59: putterm()
60: }
61: print $0
62: if($0 ~ /^\.([PTI]E)|IF/)break
63: }
64: }
65: if(line ~ /^\.EQ/){
66: while(getline > 0){
67: print $0
68: if($0 ~ /^\.EN/)break
69: }
70: }
71: }
72: function getterm(){
73: if((getline < name)<= 0){
74: number += 1000
75: }
76: else if($0 ~ /^[0-9]/ && NF > 1){
77: number = $1
78: sub(/^[0-9][0-9]* /,"")
79: term = $0
80: } else term=$0
81: }
82: function putterm(){
83: print ".Tm " term
84: getterm()
85: if(NR >= number){
86: while(NR >= number){
87: print ".Tm " term
88: getterm()
89: }
90: }
91: }
92: $F >$O
93: rm foo
94: }
95:
96: mkindex(){ #uses either $1.x or $2.x to make base.ind
97: if test $# -eq 0
98: then
99: echo mkindex directory file or mkindex file
100: exit
101: fi
102: if test $# -eq 1
103: then
104: j=`basename $1 .x`
105: sed -n "/^\.XX.*$j/p" ../contents/contents.ms|awk {print $2 >"name"}
106: else
107: j=`basename $2 .x`
108: sed -n "/^\.XX.*$1\/$j/p" ../contents/contents.ms|awk {print $2 >"name"}
109: fi
110: FILE=$j.x
111: S=`cat name`
112: sed -e "/^0 /d" -e "s/ #.*//" -e "s/:/!/g" -e "/^[A-Za-z.]/d" -e "/Examp/d" $FILE|
113: awk
114: BEGIN {FS=" " }
115: NF==2 { print str ", " $2 ": " $1
116: print $2 ", " str ": " $1
117: }
118: NF==3 {
119: if($NF == "s" )print str ", " $2 ": " $1
120: else print $2 ", " str ": " $1
121: } str=$S | sort -u -t":" +0 -1 +1n |
122: awk
123: BEGIN {FS=":"}
124: { if($1 != laststr){
125: if(start){
126: if(range)pages = pages "-" npage
127: print laststr "," pages
128: }
129: start=1
130: laststr=$1
131: pages = " " $2
132: npage = 0 + $2
133: range=0
134: }
135: else {
136: if($2 == npage+1){
137: range=1
138: npage++
139: next
140: }
141: else if(range) pages = pages "-" npage "," $2
142: else pages = pages "," $2
143: npage = 0 + $2
144: range = 0
145: }
146: }
147: END {
148: if(range)pages = pages "-" npage
149: print laststr "," pages
150: }
151:
152: |sed -e s/~/\$/g -e s/!/:/g>$j.ind
153: }'
154:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.