Annotation of researchv10dc/vol2/index/defns, revision 1.1.1.1

1.1       root        1: IND=../index/tools
                      2: ISTEX=0
                      3: ENVIRON="$ENVIRON"'
                      4: runind(){
                      5: F=$1
                      6:        if test -s $1.ms
                      7:        then
                      8:                J=$1
                      9:                F=$1.ms
                     10:        else if test -s $1.m
                     11:        then
                     12:                J=$1
                     13:                F=$1.m
                     14:        else if test -s $1.tex
                     15:        then
                     16:                J=`basename $1 .tex`
                     17:                F=$1.tex
                     18:                ISTEX=1
                     19:        else if test -s $1
                     20:        then
                     21:                J=$1
                     22:        else
                     23:                echo $1 not found
                     24:                exit
                     25:        fi
                     26:        fi
                     27:        fi
                     28:        fi
                     29: O=x$F
                     30: tr A-Z a-z <$J.terms|sed -e '\''s/\([a-z/]*\)\.\([a-z][a-z]*\)/\1zz1\2/g'\'' -e '\''s/^\([0-9]\)/ \1/'\'' |sort|uniq|
                     31: awk '\''       {
                     32:        if(last == $0)next
                     33:        if(last "s" == $0){
                     34:                print last
                     35:                last = ""
                     36:                next
                     37:        }
                     38:        else if(last != "")
                     39:                print last
                     40:        last = $0
                     41:        }
                     42: END    {
                     43:        if(last != "")print last
                     44: }'\'' >$J.lt
                     45: sed '\''s/\([a-z/]*\)\.\([a-z][a-z]*\)/\1zz1\2/g'\'' $F >foo
                     46: $IND/diction -f $J.lt -o $J.hits foo >/dev/null
                     47: tr A-Z a-z <$J.terms|awk -v file=$J.terms '\''{
                     48:        term=$0
                     49:        gsub(/\\/,"\\\\")
                     50:        gsub(/\//,"\\/")
                     51:        gsub(/\*/,"\\*")
                     52:        gsub(/\[/,"\\[")
                     53:        gsub(/,/," ")
                     54:        term=$0
                     55:        getline <file
                     56:        gsub(/\\/,"\\\\")
                     57:        gsub(/\//,"\\/")
                     58:        gsub(/\&/,"\\\\\&")
                     59:        print "s/^" term "$/" $0 "/"
                     60:        print "s/^\\([0-9]* \\)" term "$/\\1" $0 "/"}'\'' >x$J.sed
                     61: if test -s $J.sed
                     62: then
                     63:        sed '\''s/zz1/\./g'\'' $J.hits|sed -f x$J.sed|sed -f $J.sed|tr $ ~ >$J.nh
                     64: else
                     65:        sed '\''s/zz1/\./g'\'' $J.hits|sed -f x$J.sed|tr $ ~ >$J.nh
                     66: fi
                     67: if test $ISTEX -eq 0
                     68: then
                     69: echo troff file= $F out= $O
                     70: awk  -v name=$J.nh '\''
                     71: BEGIN  {
                     72:        getterm()
                     73:        }
                     74: /.*/   {
                     75:        line = $0
                     76:        if(NR >= number){
                     77:                putterm()
                     78:        }
                     79:        print line
                     80:        if(line ~ /^\.PS[ ]*</)next
                     81:        if(line ~ /^\.[TPI]S/){
                     82:                while(getline > 0){
                     83:                        save=$0
                     84:                        if($0 ~ /^\.T\&/){
                     85:                                if(NR >= number)
                     86:                                        putterm()
                     87:                        }
                     88:                        print save
                     89:                        if($0 ~ /^\.([PTI]E)|IF/)break
                     90:                }
                     91:        }
                     92:        if(line ~ /^\.EQ/){
                     93:                while(getline > 0){
                     94:                        print $0
                     95:                        if($0 ~ /^\.EN/)break
                     96:                }
                     97:        }
                     98:        if(line ~ /^\|begin.figure/){
                     99:                while(getline > 0){
                    100:                        print $0
                    101:                        if($0 ~ /^\|end.figure/)break
                    102:                }
                    103:        }
                    104:        }
                    105: function getterm(){
                    106:        if((getline < name)<= 0){
                    107:                number += 1000
                    108:        }
                    109:        else if($0 ~ /^[0-9]/ && NF > 1){
                    110:                number = $1
                    111:                sub(/^[0-9][0-9]* /,"")
                    112:                term = $0
                    113:        } else term=$0
                    114: }
                    115: function putterm(){
                    116:        print ".Tm " term
                    117:        getterm()
                    118:        if(NR >= number){
                    119:                while(NR >= number){
                    120:                        print ".Tm " term
                    121:                        getterm()
                    122:                }
                    123:        }
                    124: }
                    125: '\'' $F >$O
                    126: else
                    127: sed  '\''s/    /<tab>/g'\'' $J.nh|tr $ ~ >$J.hits
                    128: echo tex $F $O
                    129: awk  -v name=$J.hits '\''
                    130: BEGIN  {
                    131:        sawbeg = 0
                    132:        getterm()
                    133:        }
                    134: /\\begin\{document/    {
                    135:        sawbeg=1
                    136:        print $0
                    137:        next
                    138:        }
                    139: /.*/   {
                    140:        line = $0
                    141:        if(NR >= number && sawbeg){
                    142:                putterm()
                    143:        }
                    144:        print line
                    145:        if(line ~ /\\begin\{eg\}/){
                    146:                while(getline > 0){
                    147:                        print $0
                    148:                        if($0 ~ /^\\end\{eg\}/)break
                    149:                }
                    150:        }
                    151:        }
                    152: function getterm(){
                    153:        if((getline < name)<= 0){
                    154:                number += 1000
                    155:        }
                    156:        else if($0 ~ /^[0-9]/ && NF > 1){
                    157:                number = $1
                    158:                sub(/^[0-9][0-9]* /,"")
                    159:                term = $0
                    160:        } else term=$0
                    161: }
                    162: function putterm(){
                    163:        print "\\index{" term "}"
                    164:        getterm()
                    165:        if(NR >= number){
                    166:                while(NR >= number){
                    167:                        print "\\index{" term "}"
                    168:                        getterm()
                    169:                }
                    170:        }
                    171: }
                    172: '\'' $F >$O
                    173: fi
                    174: rm foo $J.lt $J.hits $J.nh
                    175: }
                    176: 
                    177: mkindex(){             #uses either $1.x or $2.x to make base.ind
                    178:        if test $# -eq 0
                    179:        then
                    180:                echo mkindex directory file or mkindex file
                    181:                exit
                    182:        fi
                    183:        if test $# -eq 1
                    184:        then
                    185:        j=`basename $1 .x`
                    186:        sed -n "/^\\.XX.*$j/p" ../contents/contents.ms|awk '\''{print $2 >"name"}'\''
                    187:        else
                    188:        j=`basename $2 .x`
                    189:        sed -n "/^\\.XX.*$1\\/$j/p" ../contents/contents.ms|awk '\''{print $2 >"name"}'\''
                    190:        fi
                    191:        FILE=$j.x
                    192:        if test -f $j.sed2
                    193:        then
                    194:                sed -f $j.sed2 $FILE >x$FILE
                    195:                FILE=x$FILE
                    196:        fi
                    197: S=`cat name`
                    198: sed -e "/^[01] /d" -e "s/ #.*//" -e "s/:/;/g" -e "/^[A-Za-z.]/d" -e "/Examp/d" $FILE|
                    199: awk '\''
                    200: BEGIN  {FS="   " }
                    201: NF==2  { print str ", " $2 ": " $1
                    202:        print $2 ", " str ": " $1
                    203:        }
                    204: NF==3  {
                    205:        if($NF ~ /s/ )print str ", " $2 ": " $1
                    206:        else if($NF ~ /[SprtqxyzZY]/ )print str ", " $2 ": " $1 ":" $NF
                    207:        else if($NF ~ /[gGPR]/) print $2 ", " str ": " $1 ":" $NF
                    208:        else if($NF ~ /[cf]/){
                    209:                print str ", " $2 ": " $1 ":" $NF
                    210:                print $2 ", " str ": " $1 ":" $NF
                    211:        }
                    212:        else if($NF ~ /C/){
                    213:                print str ", " $2 ": " $1 ":" $NF
                    214:                print $2 ", " str ": " $1 
                    215:        }
                    216:        else print "code undefined:" $NF|"cat 1>&2"
                    217: }'\'' str=$S | sort -f -u -t":" +0 -1 +1n |
                    218: awk '\''
                    219: BEGIN  {FS=":"}
                    220:        { if($1 != laststr){
                    221:                if(start){
                    222:                        if(range)pages = pages "-" npage
                    223:                        if(global != "")print laststr "," pages "       " global
                    224:                        else print laststr "," pages
                    225:                }
                    226:                start=1
                    227:                laststr=$1
                    228:                global=$3
                    229:                pages = " " $2
                    230:                npage = 0 + $2
                    231:                range=0
                    232:        }
                    233:        else {
                    234:                if($2 == npage+1){
                    235:                        range=1
                    236:                        npage++
                    237:                        next
                    238:                }
                    239:                else if(range) pages = pages "-" npage "," $2
                    240:                else pages = pages "," $2
                    241:                npage = 0 + $2
                    242:                range = 0
                    243:        }
                    244: }
                    245: END    {
                    246:        if(range)pages = pages "-" npage
                    247:        if(global != "")print laststr "," pages "       " global
                    248:        else print laststr "," pages
                    249:        }
                    250: '\''|sed -e '\''s/~/\$/g'\'' -e '\''s/;/:/g'\''>$j.ind
                    251: rm name $j.x
                    252: }'
                    253: 

unix.superglobalmegacorp.com

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