|
|
1.1 ! root 1: < ../ADM/defns ! 2: <../index/defns ! 3: ! 4: all:V: index.out ! 5: ! 6: pg: index.out ! 7: count index.ms index.out ! 8: ! 9: spell:VQ: ! 10: dospell index.ms ! 11: ! 12: lp: index.out ! 13: $LP $newprereq && touch $target ! 14: ! 15: index.out:D: index.ms ! 16: $PREFER $prereq | pic | troff -mpm > $target ! 17: ! 18: index:V: ! 19: touch index.ind ! 20: pindex:V: ! 21: touch index.ind ! 22: ! 23: PAPERS=`cd /usr/vol2;echo [a-z]*` ! 24: INDEX=${PAPERS:%=%.index} ! 25: incindex:V: $INDEX ! 26: ! 27: %.index:VQ: ! 28: cd ../$stem; mk index ! 29: PINDEX=${PAPERS:%=%.pindex} ! 30: pincindex:V: $PINDEX ! 31: ! 32: %.pindex:VQ: ! 33: cd ../$stem; mk pindex ! 34: ! 35: restart:V: ! 36: for i in ../setup ../snocone ../spin ../streams ../[t-z]* ! 37: do ! 38: cd $i ! 39: mk index ! 40: done ! 41: ! 42: sindex:VQ: ! 43: wc sindex ! 44: awk ' ! 45: /^\.XX/ { ! 46: if($2 ~ /[a-z]/){ ! 47: name=$2 ! 48: first=$3 ! 49: str = "..\/" $4 ".pg" ! 50: getline <str ! 51: last=$1 + first -1 ! 52: print name " " first " " last ! 53: close(str) ! 54: } ! 55: }' ../contents/contents.ms >contents ! 56: sed -e 's/\\f(..//g' -e 's/\\f[a-z0-9A-Z]//g' -e 's/\\em//' -e 's/ ,/,/' -e 's/\\\&//g' -e 's/,/ /' -e 's/^ //' -e 's/ / /' ../[a-z]*/*.ind|sed 's/ \([^A-Za-z]\)/ \1/'|sort -f|sed -e 's/ / /' -e 's/\b//'| ! 57: awk ' ! 58: #single ! 59: #s ! 60: #Sfor cw ! 61: #p for 1cw ! 62: #r for 2cw ! 63: #t for 4cw ! 64: #q for 3cw ! 65: #x for 4&6 ! 66: #y for 1&3 ! 67: #z for 2&4 ! 68: #Z for 3&5 ! 69: #Y for 1,2,&4 ! 70: # ! 71: #global ! 72: #g ! 73: #G for CW ! 74: #P for 1cw ! 75: #R for 2cw ! 76: # ! 77: #c cw ! 78: #f 1st cw ! 79: #C paper name to cw ! 80: BEGIN { ! 81: while((getline<"contents") > 0){ ! 82: names[$1] = $2 ! 83: last[$1] = $3 ! 84: } ! 85: FS=" " ! 86: } ! 87: { ! 88: junk=$0 ! 89: caps=gsub(/[A-HJ-Z]/,"",junk) ! 90: constant=0 ! 91: control=0 ! 92: if($1 == term){ ! 93: ck = global = substr($2,2,index($2,",")-2) ! 94: if(ck in names && ((NF>2 && $NF !~ /C/)||NF < 3)){ ! 95: sub(/^ /, " \\fI", $2) ! 96: sub(/,/,"\\fP,", $2) ! 97: } ! 98: if($2 ~ /[A-Z_$][A-Z_][A-Z_$0-9& ]*/){ ! 99: if($2 !~ /[a-z]/)caps = caps/2 ! 100: control=8*gsub(/[A-Z_$][A-Z_$][A-Z_$0-9& ]*/,"\\s-2&\\s+2") ! 101: } ! 102: sub(/^ /,"",$2) ! 103: if(NF == 3){ ! 104: rside = ckcw($2,0,$NF) ! 105: if(global in names){ ! 106: if( $3~ /[gGPR]/) ! 107: printit(" \\fI" global "\\fP, " names[global] "-" last[global],1,control) ! 108: else if($2 ~ /\\fI/)printit(" " $2, 1, control) ! 109: else printit(" " rside, 1, control) ! 110: next ! 111: } ! 112: } ! 113: else rside = $2 ! 114: printit(" " rside, 1, control) #removed space ! 115: } ! 116: else { ! 117: term = $1 ! 118: control=0 ! 119: if(hadamatch){ ! 120: printf("\n") ! 121: } ! 122: if(term in names){ ! 123: if(!hadamatch)printf("\n") ! 124: hadamatch=1 ! 125: newt="\\fI" term "\\fP, " names[term] "-" last[term] ! 126: printit(newt, 0, 0) ! 127: if($2 ~ /[A-Z_$][A-Z_$][A-Z_$0-9& ]*/){ ! 128: if($2 !~ /[a-z]/)caps /= 2 ! 129: control=8*gsub(/[A-Z_$][A-Z_$][A-Z_$0-9& ]*/,"\\s-2&\\s+2") ! 130: } ! 131: sub(/^ /,"",$2) ! 132: if(NF == 3) ! 133: rside = ckcw($2,0,$NF) ! 134: else rside = $2 ! 135: printit(" " rside, 1, control) #removed space ! 136: } ! 137: else { ! 138: hadamatch=0 ! 139: if($1 ~ /[A-Z_$][A-Z_$][A-Z_$0-9& ]*/){ ! 140: control=8*gsub(/[A-Z_$][A-Z_$][A-Z_$0-9& ]*/,"\\s-2&\\s+2") ! 141: } ! 142: lside = $1 ! 143: if(NF == 3){ ! 144: lside = ckcw($1,1,$NF) ! 145: if($NF ~ /[gGPR]/){ ! 146: r = substr($2,2,index($2,",")-2) ! 147: if(r in names ){ ! 148: control += 6 ! 149: printit(lside ", \\fI" r "\\fP, " names[r] "-" last[r],0,control) ! 150: next ! 151: } ! 152: else { ! 153: print "term not in names:" r|"cat 1>&2" ! 154: sub(/ ./,"") ! 155: } ! 156: } ! 157: } ! 158: control += 6 ! 159: sub(",","\\fP,",$2) ! 160: printit(lside ",\\fI" $2, 0, control) ! 161: } ! 162: }} ! 163: function ckcw(rterm,first,code){ ! 164: constant=0 ! 165: savit=rterm ! 166: if(rterm ~ /^-/){ ! 167: control += 2 ! 168: sub(/^-/,"\\(em",rterm) ! 169: } ! 170: if(rterm ~ /^\./){ ! 171: control += 2 ! 172: sub(/^\./,"\\\\&&",rterm) ! 173: } ! 174: if(code ~ /[gs]/)return(rterm) ! 175: if(code ~ /[GcSC]/){ ! 176: if(first)rterm = addit(rterm) ! 177: else { ! 178: constant = index(rterm,",")-1 ! 179: if(rterm ~ /s[-+]2/){ ! 180: constant -= 8 ! 181: gsub(/s\+2/,"s+1", rterm) ! 182: gsub(/s\-2/,"s-1", rterm) ! 183: rterm = "\\s-1\\f(CW" rterm ! 184: sub(/,/,"\\fP\\s+1,",rterm) ! 185: } ! 186: else { ! 187: rterm = "\\s-1\\f(CW" rterm ! 188: sub(/,/,"\\fP\\s+1,",rterm) ! 189: } ! 190: } ! 191: } ! 192: else if(code ~ /[pPf]/){ ! 193: constant = index(rterm," ")-1 ! 194: if(rterm ~ /s[-+]2/){ ! 195: constant -= 8 ! 196: gsub(/s\+2/,"s+1", rterm) ! 197: gsub(/s\-2/,"s-1", rterm) ! 198: rterm = "\\s-1\\f(CW" rterm ! 199: sub(/ /,"\\fP\\s+1 ", rterm) ! 200: } ! 201: else { ! 202: rterm = "\\s-1\\f(CW" rterm ! 203: sub(/ /,"\\fP\\s+1 ", rterm) ! 204: } ! 205: } ! 206: else{ ! 207: n=split(rterm, arr, " ") ! 208: if(code ~ /[Yy]/)rterm = addit(arr[1]) ! 209: else rterm = arr[1] ! 210: for(i=2;i<=n;i++){ ! 211: if(i==2 && code~/[rRzY]/)rterm = rterm " " addit(arr[i]) ! 212: else if(i==3 && code~/[qyZ]/)rterm=rterm " " addit(arr[i]) ! 213: else if(i==4 && code~/[txzY]/)rterm=rterm " " addit(arr[i]) ! 214: else if(i==5 && code~/[Z]/)rterm=rterm " " addit(arr[i]) ! 215: else if(i==6 && code~/x/)rterm=rterm " " addit(arr[i]) ! 216: else { ! 217: if(arr[i] ~ /s\+2/)sub(/s\+2/,"s+1",arr[i]) ! 218: rterm = rterm " " arr[i] ! 219: } ! 220: } ! 221: } ! 222: if(code ~ /[xyz]/)control+=16 ! 223: control += 16 ! 224: return(rterm) ! 225: } ! 226: function addit(string){ ! 227: constant += length(string) ! 228: if(string ~ /s[-+]2/){ ! 229: constant -= 8 ! 230: gsub(/s\+2/,"s+1", string) ! 231: gsub(/s\-2/,"s-1", string) ! 232: return("\\s-1\\f(CW" string "\\fP\\s+1") ! 233: } ! 234: else return("\\s-1\\f(CW" string "\\fP\\s+1") ! 235: } ! 236: function printit(line, space, control){ ! 237: if(!constant) ! 238: limit=43+control - caps*.5 #was 46 at 8 pt - 43 with italic change ! 239: else limit = 43 - constant*.4 + 1 + control - caps*.5 ! 240: print "lim " limit " leng " length(line) " cons:ctl:caps " constant ":" control ":" caps " " line|"cat 1>&2" ! 241: if(space == 0)limit += 2 ! 242: if(length(line)< limit)print line ! 243: else { ! 244: n=split(line, a, ",") ! 245: if(length(a[1])>=limit-6 || space){ #adjust for italic change ! 246: if(!space)limit -=6 ! 247: m=split(a[1],b," ") ! 248: nline=b[1] ! 249: if(space)nline = " " b[1] ! 250: if(m > 1)for(i=2;i<=m;i++){ ! 251: if(length(nline)+length(b[i])+1>=limit){ ! 252: if(nline ~ /s-2/ && nline !~ /s+2/){ ! 253: print nline "\\s+2" ! 254: nline = " \\s-2" b[i] ! 255: } ! 256: else { ! 257: print nline ! 258: nline = " " b[i] ! 259: } ! 260: } ! 261: else nline = nline " " b[i] ! 262: } ! 263: for(i=2; i<=n;i++){ ! 264: leng=length(a[i]) ! 265: if(a[i] ~ /-/)leng-- ! 266: if(length(nline)+leng >= limit){ ! 267: print nline "," ! 268: nline = " " a[i] ! 269: } ! 270: else nline = nline "," a[i] ! 271: } ! 272: print nline ! 273: return ! 274: } ! 275: nline=a[1] ! 276: for(i=2;i<=n;i++){ ! 277: if(length(nline)+ length(a[i])>= limit){ #used to be -6 ! 278: print nline "," ! 279: nline = " " a[i] ! 280: } ! 281: else nline = nline "," a[i] ! 282: } ! 283: if(length(nline) > 0)print nline ! 284: } ! 285: }' 2>/dev/null|finddups >sindex ! 286: wc sindex ! 287: # troff sindex.ms >tr.out ! 288:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.