|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.