|
|
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.