Annotation of researchv10dc/cmd/prefer/misc/pbib.sh, revision 1.1.1.1

1.1       root        1: PHOME=${PHOME:-/usr/lib/prefer}
                      2: export PHOME
                      3: $PHOME/prefawk '
                      4: BEGIN  {typestr = "%type"; edstr = "%editor"}
                      5: 
                      6: /^%A/  {$1 = "%author"} 
                      7: /^%B/  {$1 = "%booktitle"} 
                      8: /^%C/  {$1 = "%address"} 
                      9: /^%d/  {$1 = "%date"} 
                     10: /^%D/  {$1 = "%date"} 
                     11: /^%E/  {$1 = "%editor"} 
                     12: /^%G/  {$1 = "%government"} 
                     13: /^%I/  {$1 = "%publisher"} 
                     14: /^%J/  {$1 = "%journal"} 
                     15: /^%K/  {$1 = "%keyword"} 
                     16: /^%L/  {$1 = "%label"} 
                     17: /^%M/  {$1 = "%tm"} 
                     18: /^%N/  {$1 = "%number"} 
                     19: /^%O/  {$1 = "%other"} 
                     20: /^%P/  {$1 = "%pages"} 
                     21: /^%r/  {$1 = "%report"} 
                     22: /^%R/  {$1 = "%report"} 
                     23: /^%T/  {$1 = "%title"} 
                     24: /^%V/  {$1 = "%volume"} 
                     25: 
                     26: /^%/   {
                     27:        if(($1 != "%author") && ($1 != "%publisher"))
                     28:                print; 
                     29:        if($1 != "%editor")
                     30:                ineditor = 0
                     31:        inref = 1;
                     32: }
                     33: 
                     34: $1 == "%author"        {
                     35:        if ($NF ~ /\([Ee]d.*\)/) {
                     36:                edited++;
                     37:                $NF = "";
                     38:        }
                     39:        print;
                     40: }
                     41: 
                     42: $1 == "%publisher"     {
                     43:        publisher++ ;
                     44:        if($2 == "PhD") {
                     45:                phd++;
                     46:                printf "%s", $1;
                     47:                for (i=4; i <= NF; i++)
                     48:                        printf " %s", $i;
                     49:                print "";
                     50:        }
                     51:        else if($2 ~ /Master*/) {
                     52:                masters++;
                     53:                printf "%s",$1;
                     54:                for (i=4; i <= NF; i++)
                     55:                        printf " %s", $i;
                     56:                print "";
                     57:        }
                     58:        else print;
                     59: }
                     60: 
                     61: $1 == "%editor"                { editor++; ineditor = 1;}
                     62: $1 == "%author"                { author++ }
                     63: $1 == "%journal"       { journal++ }
                     64: $1 == "%tm"            { tm++ }
                     65: $1 == "%report"                { report++ }
                     66: $1 == "%booktitle"     { booktitle++ }
                     67: /[Pp]roc/ || /[Cc]onf/ { if ($1 == "%journal") inproceedings++;}
                     68: 
                     69: /^[^%]/        {               # handle multiple editors
                     70:        if(ineditor) {
                     71:                printf "%s ", edstr;
                     72:                if($1 == "and")
                     73:                        print substr($0,length($1)+2);
                     74:                else
                     75:                        print;
                     76:        }
                     77:        else print;     # handle other multiple lines (like %Z)
                     78: }
                     79: # blank line, so now infer document type
                     80: /^$/   {
                     81:        if(inref) infer();
                     82: }
                     83: 
                     84: 
                     85: func infer()
                     86: {
                     87:        printf "%s ", typestr;
                     88:        if(edited) print "editedbook";
                     89:        else if(masters) print "mastersthesis";
                     90:        else if(phd) print "phdthesis";
                     91:        else if(inproceedings) print "inproceedings";
                     92:        else if(journal) print "article";
                     93:        else if(booktitle) print "incollection";
                     94:        else if(tm) print "tm";
                     95:        else if(report) print "techreport";
                     96:        else if(publisher) print "book";
                     97:        else print "misc";
                     98:        print;
                     99: 
                    100:        inref = 0;
                    101:        editor = 0;
                    102:        author = 0;
                    103:        journal = 0;
                    104:        inproceedings = 0;
                    105:        booktitle = 0;
                    106:        publisher = 0;
                    107:        tm = 0;
                    108:        report = 0;
                    109:        book = 0;
                    110:        tflag = 0;
                    111:        ineditor = 0;
                    112:        phd = 0;
                    113:        masters = 0;
                    114:        edited = 0;
                    115: }
                    116: 
                    117: END {
                    118:        if(inref) infer();
                    119: }
                    120: ' $1

unix.superglobalmegacorp.com

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