|
|
researchv10 Dan Cross
< ../ADM/defns
<../index/defns
all:V: index.out
pg: index.out
count index.ms index.out
spell:VQ:
dospell index.ms
lp: index.out
$LP $newprereq && touch $target
index.out:D: index.ms
$PREFER $prereq | pic | troff -mpm > $target
index:V:
touch index.ind
pindex:V:
touch index.ind
PAPERS=`cd /usr/vol2;echo [a-z]*`
INDEX=${PAPERS:%=%.index}
incindex:V: $INDEX
%.index:VQ:
cd ../$stem; mk index
PINDEX=${PAPERS:%=%.pindex}
pincindex:V: $PINDEX
%.pindex:VQ:
cd ../$stem; mk pindex
restart:V:
for i in ../[a-z]*
do
cd $i
mk index
done
sindex:VQ:
wc sindex
awk '
/^\.XX/ {
if($2 ~ /[a-z]/){
name=$2
first=$3
str = "..\/" $4 ".pg"
getline <str
last=$1 + first -1
print name " " first " " last
close(str)
}
}' ../contents/contents.ms >contents
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/^ //' ../[a-z]*/*.ind|sort -f|
awk '
BEGIN {
while((getline<"contents") > 0){
names[$1] = $2
last[$1] = $3
}
FS=" "
mult = .2
}
{if($1 == term){
ck = global = substr($2,2,index($2,",")-2)
if(ck in names){
sub(/^ /, " \\fI", $2)
sub(/,/,"\\fP,", $2)
control = 6
}
else control=0
if($2 ~ /[A-Z_$][A-Z_$][A-Z_$0-9& ]*/){
if($2 !~ /\\s/)
control += 8*gsub(/[A-Z_$][A-Z_$][A-Z_$0-9& ]*/,"\\s-2&\\s+2")
}
sub(/^ /,"",$2)
if(NF == 3){
rside = ckcw($2,0,$NF)
if(global in names){
if( $3~ /[gGPR]/)
printit(" \\fI" global "\\fP, " names[global] "-" last[global],1,control)
else printit(" " $2, 1, control)
next
}
}
else rside = $2
printit(" " rside, 1, control) #removed space
}
else {
term = $1
control=0
if(term in names){
newt="\\fI" term "\\fP, " names[term] "-" last[term]
printit(newt, 0, 0)
if($2 ~ /[A-Z_$][A-Z_$][A-Z_$0-9& ]*/){
if($2 !~ /\\s/)control=8*gsub(/[A-Z_$][A-Z_$][A-Z_$0-9& ]*/,"\\s-2&\\s+2")
}
sub(/^ /,"",$2)
if(NF == 3)
rside = ckcw($2,0,$NF)
else rside = $2
printit(" " rside, 1, control) #removed space
}
else {
if($1 ~ /[A-Z_$][A-Z_$][A-Z_$0-9& ]*/){
if($1 !~ /\\s/)control=8*gsub(/[A-Z_$][A-Z_$][A-Z_$0-9& ]*/,"\\s-2&\\s+2")
}
lside = $1
if(NF == 3){
lside = ckcw($1,1,$NF)
if($NF ~ /[gGPR]/){
r = substr($2,2,index($2,",")-2)
if(r in names ){
printit(lside ", \\fI" r "\\fP, " names[r] "-" last[r],0,control)
next
}
else {
print "term not in names:" r|"cat 1>&2"
sub(/ ./,"")
}
}
}
sub(",","\\fP,",$2)
printit(lside ",\\fI" $2, 0, control)
}
}}
function ckcw(rterm,first,code){
if(rterm ~ /^-/){
sub(/^-/,"\\(em",rterm)
control += 3
}
if(rterm ~ /^\./){
sub(/^\./,"\\\\&&",rterm)
control += 2
}
if(code ~ /[GcS]/){
if(first)rterm = addcw( rterm,0)
else {
control -= length(rterm)*mult
rterm = "\\f(CW" rterm
sub(/,/,"\\fP,",rterm)
}
}
else if(code ~ /[pPf]/){
control -= length(rterm)*mult
rterm = "\\f(CW" rterm
sub(/ /,"\\fP ", rterm)
}
else{
n=split(rterm, arr, " ")
if(code ~ /y/)rterm = addcw( arr[1],0)
else rterm = arr[1]
for(i=2;i<=n;i++){
if(i==2 && code~/[rRz]/)rterm = rterm addcw( arr[i],1)
else if(i==3 && code~/[qy]/)rterm=rterm addcw( arr[i],1)
else if(i==4 && code~/[txz]/)rterm=rterm addcw( arr[i],1)
else if(i==6 && code~/x/)rterm=rterm addcw( arr[i],1)
else rterm = rterm " " arr[i]
}
}
if(code ~ /[xyz]/)control += 16
control += 8
return(rterm)
}
function addcw(term,adds,hidden){
control -= length(term)*mult
hidden = "\\f(CW" term "\\fP"
if(adds) hidden = " " hidden
return(hidden)
}
function printit(line, space, caps){
limit=46+caps
if(space == 0)limit += 2
if(length(line)< limit)print line
else {
n=split(line, a, ",")
if(length(a[1])>=limit){
m=split(a[1],b," ")
nline=b[1]
if(space)nline = " " b[1]
for(i=2;i<=m;i++){
nline = nline " " b[i]
if(length(nline)>=limit){
print nline
nline = " "
}
}
for(i=2; i<=n;i++){
if(nline == " ")nline = nline a[i]
else nline = nline "," a[i]
}
print nline
return
}
nline=a[1]
for(i=2;i<=n;i++){
nline = nline "," a[i]
if(length(nline)>= limit-6){
if(i < n)print nline ","
else print nline
if(i < n)nline = " " a[++i]
else nline = ""
}
}
if(length(nline) > 0)print nline
}
}' |finddups >sindex
wc sindex
# troff -ms sindex.ms >tr.out
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.