Annotation of researchv10dc/vol2/index/foo.awk, revision 1.1

1.1     ! root        1:        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/  / /' x|sed 's/    \([^A-Za-z]\)/   \1/'|sort -f|sed -e 's/         /      /' -e 's/\b//'|
        !             2:        awk  '
        !             3:        #single
        !             4:        #s
        !             5:        #Sfor cw
        !             6:        #p for 1cw
        !             7:        #r for 2cw
        !             8:        #t for 4cw
        !             9:        #q for 3cw
        !            10:        #x for 4&6
        !            11:        #y for 1&3
        !            12:        #z for 2&4
        !            13:        #Z for 3&5
        !            14:        #Y for 1,2,&4
        !            15:        #
        !            16:        #global
        !            17:        #g
        !            18:        #G for CW
        !            19:        #P for 1cw
        !            20:        #R for 2cw
        !            21:        #
        !            22:        #c cw
        !            23:        #f 1st cw
        !            24:        #C paper name to cw
        !            25:        BEGIN   {
        !            26:                while((getline<"contents") > 0){
        !            27:                        names[$1] = $2
        !            28:                        last[$1] = $3
        !            29:                }
        !            30:                FS="    "
        !            31:        }
        !            32:        {
        !            33:                junk=$0
        !            34:                caps=gsub(/[A-HJ-Z]/,"",junk)
        !            35:                constant=0
        !            36:                control=0
        !            37:                if($1 == term){
        !            38:                ck = global = substr($2,2,index($2,",")-2)
        !            39:                if(ck in names && ((NF>2 && $NF !~ /C/)||NF < 3)){
        !            40:                        sub(/^ /, " \\fI", $2)
        !            41:                        sub(/,/,"\\fP,", $2)
        !            42:                }
        !            43:                if($2 ~ /[A-Z_$][A-Z_][A-Z_$0-9& ]*/){
        !            44:                        if($2 !~ /[a-z]/)caps = caps/2
        !            45:                        control=8*gsub(/[A-Z_$][A-Z_$][A-Z_$0-9& ]*/,"\\s-2&\\s+2")
        !            46:                }
        !            47:                sub(/^ /,"",$2)
        !            48:                if(NF == 3){
        !            49:                        rside = ckcw($2,0,$NF)
        !            50:                        if(global in names){
        !            51:                        if( $3~ /[gGPR]/)
        !            52:                        printit("    \\fI" global "\\fP, " names[global] "-" last[global],1,control)
        !            53:                        else if($2 ~ /\\fI/)printit("    " $2, 1, control)
        !            54:                        else printit("    " rside, 1, control)
        !            55:                                next
        !            56:                        }
        !            57:                }
        !            58:                else rside = $2
        !            59:                printit("    " rside, 1, control)       #removed space
        !            60:        }
        !            61:        else {
        !            62:                term = $1
        !            63:                control=0
        !            64:                if(hadamatch){
        !            65:                        printf("\n")
        !            66:                }
        !            67:                if(term in names){
        !            68:                        if(!hadamatch)printf("\n")
        !            69:                        hadamatch=1
        !            70:                        newt="\\fI" term "\\fP, " names[term] "-" last[term]
        !            71:                        printit(newt, 0, 0)
        !            72:                        if($2 ~ /[A-Z_$][A-Z_$][A-Z_$0-9& ]*/){
        !            73:                                if($2 !~ /[a-z]/)caps /= 2
        !            74:                                control=8*gsub(/[A-Z_$][A-Z_$][A-Z_$0-9& ]*/,"\\s-2&\\s+2")
        !            75:                        }
        !            76:                        sub(/^ /,"",$2)
        !            77:                        if(NF == 3)
        !            78:                                rside = ckcw($2,0,$NF)
        !            79:                        else rside = $2
        !            80:                        printit("    " rside, 1, control)       #removed space
        !            81:                }
        !            82:                else {
        !            83:                        hadamatch=0
        !            84:                        if($1 ~ /[A-Z_$][A-Z_$][A-Z_$0-9& ]*/){
        !            85:                                control=8*gsub(/[A-Z_$][A-Z_$][A-Z_$0-9& ]*/,"\\s-2&\\s+2")
        !            86:                        }
        !            87:                        lside = $1
        !            88:                        if(NF == 3){
        !            89:                                lside = ckcw($1,1,$NF)
        !            90:                                if($NF ~ /[gGPR]/){
        !            91:                                r = substr($2,2,index($2,",")-2)
        !            92:                                if(r in names ){
        !            93:                                        control += 6
        !            94:                                        printit(lside ", \\fI" r "\\fP, " names[r] "-" last[r],0,control)
        !            95:                                        next
        !            96:                                }
        !            97:                                else {
        !            98:                                        print "term not in names:" r|"cat 1>&2"
        !            99:                                        sub(/   ./,"")
        !           100:                                }
        !           101:                                }
        !           102:                        }
        !           103:                        control += 6
        !           104:                        sub(",","\\fP,",$2)
        !           105:                        printit(lside ",\\fI" $2, 0, control)
        !           106:                }
        !           107:        }}
        !           108:        function ckcw(rterm,first,code){
        !           109:                constant=0
        !           110:                savit=rterm
        !           111:                if(rterm ~ /^-/){
        !           112:                        control += 2
        !           113:                        sub(/^-/,"\\(em",rterm)
        !           114:                }
        !           115:                if(rterm ~ /^\./){
        !           116:                        control += 2
        !           117:                        sub(/^\./,"\\\\&&",rterm)
        !           118:                }
        !           119:                if(code ~ /[gs]/)return(rterm)
        !           120:                if(code ~ /[GcSC]/){
        !           121:                        if(first)rterm = addit(rterm)
        !           122:                        else {
        !           123:                                constant = index(rterm,",")-1
        !           124:                                if(rterm ~ /s[-+]2/){
        !           125:                                        constant -= 8
        !           126:                                        gsub(/s\+2/,"s+1", rterm)
        !           127:                                        gsub(/s\-2/,"s-1", rterm)
        !           128:                                        rterm = "\\s-1\\f(CW" rterm
        !           129:                                        sub(/,/,"\\fP\\s+1,",rterm)
        !           130:                                }
        !           131:                                else {
        !           132:                                        rterm = "\\s-1\\f(CW" rterm
        !           133:                                        sub(/,/,"\\fP\\s+1,",rterm)
        !           134:                                }
        !           135:                        }
        !           136:                }
        !           137:                else if(code ~ /[pPf]/){
        !           138:                        constant = index(rterm," ")-1
        !           139:                        if(rterm ~ /s[-+]2/){
        !           140:                                constant -= 8
        !           141:                                gsub(/s\+2/,"s+1", rterm)
        !           142:                                gsub(/s\-2/,"s-1", rterm)
        !           143:                                rterm = "\\s-1\\f(CW" rterm
        !           144:                                sub(/ /,"\\fP\\s+1 ", rterm)
        !           145:                        }
        !           146:                        else {
        !           147:                                rterm = "\\s-1\\f(CW" rterm
        !           148:                                sub(/ /,"\\fP\\s+1 ", rterm)
        !           149:                        }
        !           150:                }
        !           151:                else{
        !           152:                        n=split(rterm, arr, " ")
        !           153:                        if(code ~ /[Yy]/)rterm = addit(arr[1])
        !           154:                        else rterm = arr[1]
        !           155:                        for(i=2;i<=n;i++){
        !           156:                                if(i==2 && code~/[rRzY]/)rterm = rterm " " addit(arr[i])
        !           157:                                else if(i==3 && code~/[qyZ]/)rterm=rterm " " addit(arr[i])
        !           158:                                else if(i==4 && code~/[txzY]/)rterm=rterm " " addit(arr[i])
        !           159:                                else if(i==5 && code~/[Z]/)rterm=rterm " " addit(arr[i])
        !           160:                                else if(i==6 && code~/x/)rterm=rterm " " addit(arr[i])
        !           161:                                else {
        !           162:                                        if(arr[i] ~ /s\+2/)sub(/s\+2/,"s+1",arr[i])
        !           163:                                        rterm = rterm " " arr[i]
        !           164:                                }
        !           165:                        }
        !           166:                }
        !           167:                if(code ~ /[xyz]/)control+=16
        !           168:                control += 16
        !           169:                return(rterm)
        !           170:        }
        !           171:        function addit(string){
        !           172:                constant += length(string)
        !           173:                if(string ~ /s[-+]2/){
        !           174:                        constant -= 8
        !           175:                        gsub(/s\+2/,"s+1", string)
        !           176:                        gsub(/s\-2/,"s-1", string)
        !           177:                        return("\\s-1\\f(CW" string "\\fP\\s+1")
        !           178:                }
        !           179:                else return("\\s-1\\f(CW" string "\\fP\\s+1")
        !           180:        }
        !           181:        function printit(line, space, control){
        !           182:        if(!constant)
        !           183:                limit=43+control - caps*.5                      #was 46 at 8 pt - 43 with italic change
        !           184:        else limit = 43 - constant*.4 + 1 + control - caps*.5
        !           185:        print "lim " limit " leng " length(line) " cons:ctl:caps " constant ":" control ":" caps " " line|"cat 1>&2"
        !           186:        if(space == 0)limit += 2
        !           187:        if(length(line)< limit)print line
        !           188:        else {
        !           189:                n=split(line, a, ",")
        !           190:                if(length(a[1])>=limit-6 || space){                     #adjust for italic change
        !           191:                        if(!space)limit -=6
        !           192:                        m=split(a[1],b," ")
        !           193:                        nline=b[1]
        !           194:                        if(space)nline = "    " b[1]
        !           195:                        if(m > 1)for(i=2;i<=m;i++){
        !           196:                                if(length(nline)+length(b[i])+1>=limit){
        !           197:                                        if(nline ~ /s-2/ && nline !~ /s+2/){
        !           198:                                                print nline "\\s+2"
        !           199:                                                nline = "      \\s-2" b[i]
        !           200:                                        }
        !           201:                                        else {
        !           202:                                                print nline
        !           203:                                                nline = "      " b[i]
        !           204:                                        }
        !           205:                                }
        !           206:                                else nline = nline " " b[i]
        !           207:                        }
        !           208:                        for(i=2; i<=n;i++){
        !           209:                                leng=length(a[i])
        !           210:                                if(a[i] ~ /-/)leng--
        !           211:                                if(length(nline)+leng >= limit){
        !           212:                                        print nline ","
        !           213:                                        nline = "      " a[i]
        !           214:                                }
        !           215:                                else nline = nline "," a[i]
        !           216:                        }
        !           217:                        print nline
        !           218:                        return
        !           219:                }
        !           220:                nline=a[1]
        !           221:                for(i=2;i<=n;i++){
        !           222:                        if(length(nline)+ length(a[i])>= limit){        #used to be -6
        !           223:                                print nline ","
        !           224:                                nline = "      " a[i]
        !           225:                        }
        !           226:                        else nline = nline "," a[i]
        !           227:                }
        !           228:                if(length(nline) > 0)print nline
        !           229:        }
        !           230:        }' 

unix.superglobalmegacorp.com

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