Annotation of researchv10dc/vol2/index/sdefns, 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: if test $ISTEX -eq 0
                     48: then
                     49: sed '\''s/zz1/\./g'\'' $J.hits|tr $ ~ >$J.nh
                     50: mv $J.nh $J.hits
                     51: echo troff file= $F out= $O
                     52: awk  -v name=$J.hits '\''
                     53: BEGIN  {
                     54:        getterm()
                     55:        }
                     56: /.*/   {
                     57:        line = $0
                     58:        if(NR >= number){
                     59:                putterm()
                     60:        }
                     61:        print line
                     62:        if(line ~ /^\.PS[ ]*</)next
                     63:        if(line ~ /^\.[TPI]S/){
                     64:                while(getline > 0){
                     65:                        if($0 ~ /^\.T\&/){
                     66:                                if(NR >= number)
                     67:                                        putterm()
                     68:                        }
                     69:                        print $0
                     70:                        if($0 ~ /^\.([PTI]E)|IF/)break
                     71:                }
                     72:        }
                     73:        if(line ~ /^\.EQ/){
                     74:                while(getline > 0){
                     75:                        print $0
                     76:                        if($0 ~ /^\.EN/)break
                     77:                }
                     78:        }
                     79:        }
                     80: function getterm(){
                     81:        if((getline < name)<= 0){
                     82:                number += 1000
                     83:        }
                     84:        else if($0 ~ /^[0-9]/ && NF > 1){
                     85:                number = $1
                     86:                sub(/^[0-9][0-9]* /,"")
                     87:                term = $0
                     88:        } else term=$0
                     89: }
                     90: function putterm(){
                     91:        print ".Tm " term
                     92:        getterm()
                     93:        if(NR >= number){
                     94:                while(NR >= number){
                     95:                        print ".Tm " term
                     96:                        getterm()
                     97:                }
                     98:        }
                     99: }
                    100: '\'' $F >$O
                    101: else
                    102: sed -e '\''s/zz1/\./g'\'' -e '\''s/    /<tab>/g'\'' $J.hits|tr $ ~ >$J.nh
                    103: mv $J.nh $J.hits
                    104: echo tex $F $O
                    105: awk  -v name=$J.hits '\''
                    106: BEGIN  {
                    107:        sawbeg = 0
                    108:        getterm()
                    109:        }
                    110: /\\begin\{document/    {
                    111:        sawbeg=1
                    112:        print $0
                    113:        next
                    114:        }
                    115: /.*/   {
                    116:        line = $0
                    117:        if(NR >= number && sawbeg){
                    118:                putterm()
                    119:        }
                    120:        print line
                    121:        if(line ~ /\\begin\{eg\}/){
                    122:                while(getline > 0){
                    123:                        print $0
                    124:                        if($0 ~ /^\\end\{eg\}/)break
                    125:                }
                    126:        }
                    127:        }
                    128: function getterm(){
                    129:        if((getline < name)<= 0){
                    130:                number += 1000
                    131:        }
                    132:        else if($0 ~ /^[0-9]/ && NF > 1){
                    133:                number = $1
                    134:                sub(/^[0-9][0-9]* /,"")
                    135:                term = $0
                    136:        } else term=$0
                    137:        if(term ~ /\\em/)
                    138:                sub(/\\em /,"",term)
                    139:        if(term ~ /{\\tt/){
                    140:                sub(/{\\tt /,"",term)
                    141:                sub(/}/,"",term)
                    142:        }
                    143: }
                    144: function putterm(){
                    145:        print "\\index{" term "}"
                    146:        getterm()
                    147:        if(NR >= number){
                    148:                while(NR >= number){
                    149:                        print "\\index{" term "}"
                    150:                        getterm()
                    151:                }
                    152:        }
                    153: }
                    154: '\'' $F >$O
                    155: fi
                    156: rm foo $J.lt                   # $J.hits
                    157: }
                    158: 
                    159: mkindex(){             #uses either $1.x or $2.x to make base.ind
                    160:        if test $# -eq 0
                    161:        then
                    162:                echo mkindex directory file or mkindex file
                    163:                exit
                    164:        fi
                    165:        if test $# -eq 1
                    166:        then
                    167:        j=`basename $1 .x`
                    168:        sed -n "/^\\.XX.*$j/p" ../contents/contents.ms|awk '\''{print $2 >"name"}'\''
                    169:        else
                    170:        j=`basename $2 .x`
                    171:        sed -n "/^\\.XX.*$1\\/$j/p" ../contents/contents.ms|awk '\''{print $2 >"name"}'\''
                    172:        fi
                    173:        FILE=$j.x
                    174: S=`cat name`
                    175: sed -e "/^0    /d" -e "s/ #.*//" -e "s/:/!/g" -e "/^[A-Za-z.]/d" -e "/Examp/d" $FILE|
                    176: awk '\''
                    177: BEGIN  {FS="   " }
                    178: NF==2  { print str ", " $2 ": " $1
                    179:        print $2 ", " str ": " $1
                    180:        }
                    181: NF==3  {
                    182:        if($NF == "s" )print str ", " $2 ": " $1
                    183:        else print $2 ", " str ": " $1
                    184: }'\'' str=$S | sort -f -u -t":" +0 -1 +1n |
                    185: awk '\''
                    186: BEGIN  {FS=":"}
                    187:        { if($1 != laststr){
                    188:                if(start){
                    189:                        if(range)pages = pages "-" npage
                    190:                        print laststr "," pages
                    191:                }
                    192:                start=1
                    193:                laststr=$1
                    194:                pages = " " $2
                    195:                npage = 0 + $2
                    196:                range=0
                    197:        }
                    198:        else {
                    199:                if($2 == npage+1){
                    200:                        range=1
                    201:                        npage++
                    202:                        next
                    203:                }
                    204:                else if(range) pages = pages "-" npage "," $2
                    205:                else pages = pages "," $2
                    206:                npage = 0 + $2
                    207:                range = 0
                    208:        }
                    209: }
                    210: END    {
                    211:        if(range)pages = pages "-" npage
                    212:        print laststr "," pages
                    213:        }
                    214: '\''|sed -e '\''s/~/\$/g'\'' -e '\''s/!/:/g'\''>$j.ind
                    215: rm name $j.x
                    216: }'
                    217: 

unix.superglobalmegacorp.com

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