Annotation of researchv10no/cmd/prefer/styles/newspectrum, revision 1.1

1.1     ! root        1: ###
        !             2: ### ieee reference formatting style
        !             3: ###
        !             4: 
        !             5: BEGIN  {
        !             6:        PASS = "";              # only one pass thru document   
        !             7:        sortflag = 0;           # reference_placement bibliography is not sorted
        !             8:        STYLE = ieee;
        !             9:        SKEY = "adt";
        !            10: }
        !            11: 
        !            12: #######################################################
        !            13: #
        !            14: # Functions required by general awk script
        !            15: #
        !            16: #######################################################
        !            17: 
        !            18: ##
        !            19: ## Set author and editor fields
        !            20: ##     for reference
        !            21: ##     for possible sorting
        !            22: 
        !            23: func setauthor(b,a) {
        !            24:        Afull[b,a] = F_MLast();
        !            25:        Asort[b] = Asort[b] LastFM()" ";
        !            26: }
        !            27: 
        !            28: 
        !            29: func seteditor(b,a) {
        !            30:        E[b,a] = F_MLast();
        !            31:        Esort[b] = Esort[b] LastFM() " ";
        !            32: }
        !            33: 
        !            34: ##
        !            35: ## citations
        !            36: ##     print a citation list
        !            37: ##     troff   superscripted numbers
        !            38: ##     nroff   numbers in square brackets
        !            39: ##
        !            40: func citations(tpunc) {
        !            41: 
        !            42:        seq = "no";
        !            43:        sep = "";
        !            44: 
        !            45:        # troff citation
        !            46: 
        !            47:        if(nroff == 0) {
        !            48:                tcite = "";
        !            49:                begin_super = "\\^\\s-2\\v'-0.4m'\\f1\\&";
        !            50:                end_super = "\\fP\\&\\v'0.4m'\\s+2"
        !            51:                if(quote(tpunc) || period(tpunc))
        !            52:                        end_super = end_super "\\ ";
        !            53: 
        !            54:                # format the list of citations, putting in commas and hypens
        !            55: 
        !            56:                for(i=1; i<=cites; i++) {
        !            57:                        seq = sequence(i,cites);
        !            58:                        if (seq == "in") continue;
        !            59:                        if (seq == "end") {
        !            60:                                sep = "-";
        !            61:                                seq = "no";
        !            62:                        }
        !            63:                        tcite = tcite sep makemark(i);
        !            64:                        sep = ",\\ ";
        !            65:                }
        !            66:                printf "%s%s%s%s", tpunc, begin_super, tcite, end_super;
        !            67:        }
        !            68: 
        !            69:        # nroff citation
        !            70: 
        !            71:        else {
        !            72:                ncite = "\n";
        !            73:                if(quote(tpunc)) {
        !            74:                        ncite = tpunc " ";
        !            75:                        tpunc = "\\ ";
        !            76:                }
        !            77:                else if(tpunc == "(") {
        !            78:                        ncite = tpunc;
        !            79:                        tpunc = "";
        !            80:                }
        !            81: 
        !            82:                # format the list of citations, putting in commas and hypens
        !            83: 
        !            84:                for(i=1; i<=cites; i++) {
        !            85:                        seq = sequence(i,cites);
        !            86:                        if (seq == "in") continue;
        !            87:                        if (seq == "end") {
        !            88:                                sep = "-";
        !            89:                                seq = "no";
        !            90:                        }
        !            91:                        ncite = ncite sep "[" makemark(i) "]";
        !            92:                        sep = ", ";
        !            93:                }
        !            94:                printf "%s%s", ncite, tpunc;
        !            95:        }
        !            96: }
        !            97: 
        !            98: func quote(punc) {
        !            99:        if(tpunc == "\"" || tpunc == "'") return 1;
        !           100:        return 0;
        !           101: }
        !           102: 
        !           103: func period(punc) {
        !           104:        if (tpunc == "." || tpunc == "!" || tpunc == "?") return 1;
        !           105:        return 0;
        !           106: }
        !           107: 
        !           108: 
        !           109: ##
        !           110: ## makemark
        !           111: ##     return citation mark: identical citations have the same number
        !           112: ##
        !           113: func makemark(m) {
        !           114:        return(uniqno[bibptr[m]]);
        !           115: }
        !           116: 
        !           117: 
        !           118: ##
        !           119: ## bibindex
        !           120: ##     print citation mark for the bibliography;
        !           121: ##     return an index for accessing rest of citation
        !           122: ##
        !           123: func bibindex(b) {
        !           124:        printf ".sp .5\n.ti -\\w'[" b "]\\ \\ \\ 'u\n";
        !           125:        printf "[" b "]\\ \\ \\ " ;
        !           126:        if (sortflag) return sortorder[b];
        !           127:        else return b;
        !           128: }
        !           129: 
        !           130: 
        !           131: #############################################
        !           132: #
        !           133: # Reference types
        !           134: #
        !           135: ############################################
        !           136: 
        !           137: 
        !           138: func book(b) {
        !           139:                        punc = "";
        !           140:        # authorlist,
        !           141:                        if(authors[b]) {
        !           142:                                authorlist(b);
        !           143:                                punc = ",\n";
        !           144:                        }
        !           145:        # italic(title),
        !           146:                        if(title[b]) {
        !           147:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
        !           148:                                punc = ",\n";
        !           149:        # Vol. #,
        !           150:                                if(volstr[b])
        !           151:                                        printf "%s%s", punc, volstr[b];
        !           152:                                else if(volume[b])
        !           153:                                        printf "%sVol. %s", punc, volume[b];
        !           154:                        }
        !           155:        # publisher,
        !           156:                        printf "%s%s", punc, issuer[b] ;
        !           157:                        punc = ",\n";
        !           158:        # location,
        !           159:                        if (city[b])
        !           160:                                printf "%s%s", punc, city[b] ;
        !           161:        # date,
        !           162:                        printf "%s%s", punc, date[b] ;
        !           163:        # pages
        !           164:                        if ( pages[b]) {
        !           165:                                if ( pages[b] ~ /[,-]/ )
        !           166:                                        printf "%spp. %s", punc, pages[b];
        !           167:                                else printf "%sp. %s", punc, pages[b];
        !           168:                        }
        !           169: }
        !           170: 
        !           171: 
        !           172: func editedbook(b) {
        !           173: 
        !           174:                        punc = "";
        !           175:        # authorlist, Ed.,
        !           176:                        if(authors[b]) {
        !           177:                                authorlist(b);
        !           178:                                if(authors[b] <2)
        !           179:                                        printf ", Ed.";
        !           180:                                else
        !           181:                                        printf ", Eds.";
        !           182:                                punc = ",\n";
        !           183:                        }
        !           184:        # italic(title),
        !           185:                        if(title[b]) {
        !           186:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
        !           187:                                punc = ",\n";
        !           188:        # Vol. #,
        !           189:                                if(volstr[b])
        !           190:                                        printf "%s%s", punc, volstr[b];
        !           191:                                else if(volume[b])
        !           192:                                        printf "%sVol. %s", punc, volume[b];
        !           193:                        }
        !           194:        # publisher,
        !           195:                        printf "%s%s", punc, issuer[b] ;
        !           196:                        punc = ",\n";
        !           197:        # location,
        !           198:                        if (city[b])
        !           199:                                printf "%s%s", punc, city[b] ;
        !           200:        # date,
        !           201:                        printf "%s%s", punc, date[b] ;
        !           202:        # pages
        !           203:                        if ( pages[b]) {
        !           204:                                if ( pages[b] ~ /[,-]/ )
        !           205:                                        printf "%spp. %s", punc, pages[b];
        !           206:                                else printf "%sp. %s", punc, pages[b];
        !           207:                        }
        !           208: }
        !           209: 
        !           210: func thesis(b) {
        !           211:                        punc = "";
        !           212:        # authorlist,
        !           213:                        if(authors[b]) {
        !           214:                                authorlist(b);
        !           215:                                punc = ",\n";
        !           216:                        }
        !           217:        # italic(title),
        !           218:                        if(title[b]) {
        !           219:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
        !           220:                                punc = ",\n";
        !           221:                        }
        !           222:        # thesis,
        !           223:                        printf punc;
        !           224:                        if(reftype[b] == "phdthesis")
        !           225:                                printf "PhD Thesis";
        !           226:                        else
        !           227:                                printf "Master's Thesis";
        !           228:                        punc = ",\n";
        !           229:        # report number,
        !           230:                        if(report[b])
        !           231:                                printf "%s%s", punc, report[b];
        !           232:        # school,
        !           233:                        printf "%s%s", punc, issuer[b];
        !           234:        # date
        !           235:                        printf "%s%s", punc, date[b] ;
        !           236: }
        !           237: 
        !           238: func review(b) {
        !           239:        article(b);
        !           240: }
        !           241: 
        !           242: 
        !           243: func article(b) {
        !           244: 
        !           245:                        punc = "";
        !           246:        # authorlist,
        !           247:                        if(authors[b]) {
        !           248:                                authorlist(b);
        !           249:                                punc = ",\n";
        !           250:                        }
        !           251:        # ``Title,''
        !           252:                        if(title[b]) {
        !           253:                                if(nroff)
        !           254:                                        printf "%s\"%s,\"", punc, title[b] ;
        !           255:                                else
        !           256:                                        printf "%s``%s,''", punc, title[b] ;
        !           257:                                punc = "\n";
        !           258:                        }
        !           259:        # Reviewed title and author
        !           260:                        if(booktitle[b]) {
        !           261:                                printf "%sReview of \\f2\\&%s\\f1\\&", punc, booktitle[b];
        !           262:                                if(editors[b]) {
        !           263:                                        printf " by ";
        !           264:                                        editorlist(b);
        !           265:                                }
        !           266:                                if (issuer[b]) {
        !           267:                                        printf " %s", issuer[b];
        !           268:                                }
        !           269:                                printf ",\n";
        !           270:                        }
        !           271:        # italics(journal),
        !           272:                        printf "\\f2\\&%s\\f1\\&", journal[b];
        !           273:                        punc = ",\n";
        !           274:        # vol. #, no. #, Pt. #
        !           275:                        if (volstr[b])
        !           276:                                printf "%s%s", punc, volstr[b] ;
        !           277:                        else if (volume[b])
        !           278:                                printf "%sVol. %s", punc, volume[b] ;
        !           279:                        if(numstr[b])
        !           280:                                printf "%s%s", punc, numstr[b];
        !           281:                        else if (number[b])
        !           282:                                printf "%sNo. %s", punc, number[b] ;
        !           283:                        if(partstr[b])
        !           284:                                printf "%s%s", punc, partstr[b];
        !           285:                        else if (part[b])
        !           286:                                printf "%sPt. %s", punc, part[b] ;
        !           287:        # pages
        !           288:                        if ( pages[b]) {
        !           289:                                if ( pages[b] ~ /[,-]/ )
        !           290:                                        printf "%spp. %s", punc, pages[b];
        !           291:                                else printf "%sp. %s", punc,pages[b];
        !           292:                        }
        !           293:        # date,
        !           294:                        printf "%s%s", punc, date[b];
        !           295: }
        !           296: 
        !           297: 
        !           298: 
        !           299: func incollection(b) {
        !           300: 
        !           301:                        punc = "";
        !           302:        # authorlist,
        !           303:                        if(authors[b]) {
        !           304:                                authorlist(b);
        !           305:                                punc = ",\n";
        !           306:                        }
        !           307:        # ``Title,''
        !           308:                        if(title[b]) {
        !           309:                                if(nroff)
        !           310:                                        printf "%s\"%s,\"\n", punc, title[b] ;
        !           311:                                else
        !           312:                                        printf "%s``%s,''\n", punc, title[b] ;
        !           313:                        }
        !           314:        # in italics(booktitle),
        !           315:                        printf "in \\f2\\&%s\\f1\\&", booktitle[b];
        !           316:                        punc = ",\n";
        !           317:        # Vol. #,
        !           318:                        if(volstr[b])
        !           319:                                printf "%s%s", punc, volstr[b];
        !           320:                        else if(volume[b])
        !           321:                                printf "%sVol. %s", punc, volume[b];
        !           322:        # editorlist, eds.,
        !           323:                        if(editors[b]) {
        !           324:                                printf punc;
        !           325:                                        editorlist(b);
        !           326:                                if (editors[b] == 1) printf ", Ed."
        !           327:                                else if (editors[b] > 1) printf ", Eds."
        !           328:                        }
        !           329:        # publisher, location,
        !           330:                        printf  "%s%s", punc, issuer[b]
        !           331:                        if (city[b])
        !           332:                                printf ", %s", city[b] ;
        !           333:        # date,
        !           334:                        printf  "%s%s", punc, date[b];
        !           335:        # pages
        !           336:                        if ( pages[b]) {
        !           337:                                if ( pages[b] ~ /[,-]/ )
        !           338:                                        printf "%spp. %s", punc,pages[b];
        !           339:                                else printf "%sp. %s", punc,pages[b];
        !           340:                        }
        !           341: }
        !           342: 
        !           343: 
        !           344: func inproceedings(b) {
        !           345: 
        !           346:                        punc = "";
        !           347:        # authorlist,
        !           348:                        if(authors[b]) {
        !           349:                                authorlist(b);
        !           350:                                punc = ",\n";
        !           351:                        }
        !           352:        # ``Title,''
        !           353:                        if(title[b]) {
        !           354:                                if(nroff)
        !           355:                                        printf "%s\"%s,\"\n", punc, title[b] ;
        !           356:                                else
        !           357:                                        printf "%s``%s,''\n", punc, title[b] ;
        !           358:                        }
        !           359:        # italics(journal),
        !           360:                        printf "\\f2\\&%s\\f1\\&", journal[b];
        !           361:                        punc = ",\n";
        !           362:        # vol. #, no. #,
        !           363:                        if (volstr[b])
        !           364:                                printf "%s%s", punc, volstr[b] ;
        !           365:                        else if (volume[b])
        !           366:                                printf "%sVol. %s", punc, volume[b] ;
        !           367:                        if(numstr[b])
        !           368:                                printf "%s%s", punc, numstr[b];
        !           369:                        else if (number[b])
        !           370:                                printf "%sNo. %s", punc, number[b] ;
        !           371:                        if(partstr[b])
        !           372:                                printf "%s%s", punc, partstr[b];
        !           373:                        else if (part[b])
        !           374:                                printf "%sPt. %s", punc, part[b] ;
        !           375:        # editorlist, eds.,
        !           376:                        if(editors[b]) {
        !           377:                                printf punc;
        !           378:                                editorlist(b);
        !           379:                                if (editors[b] == 1) printf ", Ed."
        !           380:                                else if (editors[b] > 1) printf ", Eds."
        !           381:                        }
        !           382:        # publisher,
        !           383:                        if(issuer[b])
        !           384:                                if(authors[b] || editors[b])
        !           385:                                        printf "%s%s", punc, issuer[b];
        !           386:                         if (city[b])
        !           387:                                 printf "%s%s", punc, city[b] ;
        !           388:        # date,
        !           389:                        printf "%s%s", punc, date[b];
        !           390:        # pages
        !           391:                        if ( pages[b]) {
        !           392:                                if ( pages[b] ~ /[,-]/ )
        !           393:                                        printf "%spp. %s", punc, pages[b];
        !           394:                                else printf "%sp. %s", punc, pages[b];
        !           395:                        }
        !           396: }
        !           397: 
        !           398: func proceedings(b) {
        !           399: 
        !           400:                        punc = "";
        !           401:        # authorlist,
        !           402:                        if(authors[b] >0) {
        !           403:                                authorlist(b);
        !           404:                                punc = ",\n";
        !           405:                        }
        !           406:                                
        !           407:        # editorlist Ed.,
        !           408:                        else if(editors[b]) {
        !           409:                                printf punc;
        !           410:                                editorlist(b);
        !           411:                                if (editors[b] == 1) printf ", Ed."
        !           412:                                else if (editors[b] > 1) printf ", Eds."
        !           413:                                punc = ",\n";
        !           414:                        }
        !           415:        # publisher,
        !           416:                        else if(issuer[b]) {
        !           417:                                printf "%s%s", punc, issuer[b];
        !           418:                                punc = ",\n";
        !           419:                        }
        !           420:        # italics(title),
        !           421:                        if(title[b]) {
        !           422:                                printf "%s\\f2\\&%s\\f1\\&", punc,title[b];
        !           423:                                punc = ",\n";
        !           424:                        }
        !           425:        # vol. #, no. #,
        !           426:                        if (volstr[b])
        !           427:                                printf "%s%s", punc, volstr[b] ;
        !           428:                        else if (volume[b])
        !           429:                                printf "%sVol. %s", punc, volume[b] ;
        !           430:                        if(numstr[b])
        !           431:                                printf "%s%s", punc, numstr[b];
        !           432:                        else if (number[b])
        !           433:                                printf "%sNo. %s", punc, number[b] ;
        !           434:                        if(partstr[b])
        !           435:                                printf "%s%s", punc, partstr[b];
        !           436:                        else if (part[b])
        !           437:                                printf "%sPt. %s", punc, part[b] ;
        !           438:        # publisher,
        !           439:                        if(issuer[b])
        !           440:                                if(authors[b] || editors[b])
        !           441:                                        printf "%s%s", punc, issuer[b];
        !           442:        # location,
        !           443:                        if (city[b])
        !           444:                                printf "%s%s", punc, city[b] ;
        !           445:        # (date)
        !           446:                        if (date[b])
        !           447:                                printf "%s(%s)", punc, date[b];
        !           448: }
        !           449: 
        !           450: 
        !           451: func techreport(b) {
        !           452: 
        !           453:                        punc = "";
        !           454:        # authorlist,
        !           455:                        if(authors[b]) {
        !           456:                                authorlist(b);
        !           457:                                punc = ",\n";
        !           458:                        }
        !           459:        # ``Title,''
        !           460:                        if(title[b]) {
        !           461:                                        if(nroff)
        !           462:                                printf "%s\"%s,\"\n", punc, title[b] ;
        !           463:                                else
        !           464:                                        printf "%s``%s,''\n", punc, title[b] ;
        !           465:                        }
        !           466:        # report,
        !           467:                        printf "%s", report[b];
        !           468:                        punc = ",\n";
        !           469:        # publisher,
        !           470:                        if (issuer[b]) printf "%s%s", punc, issuer[b] ;
        !           471:        # date
        !           472:                        printf "%s%s", punc, date[b] ;
        !           473: }
        !           474: 
        !           475: 
        !           476: func tm(b) {
        !           477: 
        !           478:                        punc = "";
        !           479:        # authorlist,
        !           480:                        if(authors[b]) {
        !           481:                                authorlist(b);
        !           482:                                punc = ",\n";
        !           483:                        }
        !           484:        # italics(title),
        !           485:                        if(title[b]) {
        !           486:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
        !           487:                                punc = ",\n";
        !           488:                        }
        !           489:        # tmno,
        !           490:                        printf punc;
        !           491:                        if(rp)
        !           492:                                printf "AT&T Bell Laboratories internal memorandum";
        !           493:                        else
        !           494:                                printf "%s", tmno[b];
        !           495:                        punc = ",\n";
        !           496:        # date
        !           497:                        printf "%s%s", punc, date[b] ;
        !           498: }
        !           499: 
        !           500: 
        !           501: func manual(b) {
        !           502:                        punc = "";
        !           503:        # authorlist,
        !           504:                        if(authors[b] >0) {
        !           505:                                authorlist(b);
        !           506:                                punc = ",\n";
        !           507:                        }
        !           508:        # editorlist ed.,
        !           509:                        else if(editors[b]) {
        !           510:                                printf punc;
        !           511:                                editorlist(b);
        !           512:                                if (editors[b] == 1) printf ", Ed."
        !           513:                                else if (editors[b] > 1) printf ", Eds."
        !           514:                                punc = ",\n"
        !           515:                        }
        !           516:        # publisher,
        !           517:                        else if(issuer[b]) {
        !           518:                                printf "%s%s", punc, issuer[b];
        !           519:                                punc = ",\n";
        !           520:                        }
        !           521:        # italic(title),
        !           522:                        if(title[b]) {
        !           523:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b];
        !           524:                                punc = ",\n";
        !           525:                        }
        !           526:        # Vol. volume,
        !           527:                        if(volstr[b])
        !           528:                                printf "%s%s", punc, volstr[b];
        !           529:                        else if(volume[b])
        !           530:                                printf "%sVol. %s", punc, volume[b];
        !           531:        # publisher,
        !           532:                        if(issuer[b])
        !           533:                                if(authors[b] || editors[b]) {
        !           534:                                        printf "%s%s", punc, issuer[b];
        !           535:                                        punc = ",\n";
        !           536:                                }
        !           537:        # location
        !           538:                        if (city[b])
        !           539:                                printf "%s%s", punc, city[b] ;
        !           540:        # date,
        !           541:                        printf "%s%s", punc, date[b];
        !           542:        # pages
        !           543:                        if (pages[b]) {
        !           544:                                if ( pages[b] ~ /[,-]/ )
        !           545:                                        printf "%spp. %s", punc, pages[b];
        !           546:                                else
        !           547:                                        printf "%sp. %s", punc, pages[b];
        !           548:                        }
        !           549: }
        !           550: 
        !           551: func pamphlet(b)
        !           552: {
        !           553: 
        !           554:                        punc = "";
        !           555:        # authorlist,
        !           556:                        if(authors[b] >0) {
        !           557:                                authorlist(b);
        !           558:                                punc = ",\n";
        !           559:                        }
        !           560:                                
        !           561:        # publisher,
        !           562:                        else if(issuer[b]) {
        !           563:                                printf "%s%s", punc, issuer[b];
        !           564:                                punc = ",\n";
        !           565:                        }
        !           566:        # ``Title,''
        !           567:                        if(title[b]) {
        !           568:                                if(nroff) {
        !           569:                                        printf "%s\"%s", punc, title[b] ;
        !           570:                                        punc = ",\"\n";
        !           571:                                }
        !           572:                                else {
        !           573:                                        printf "%s``%s", punc, title[b] ;
        !           574:                                        punc = ",''\n";
        !           575:                                }
        !           576:                        }
        !           577:        # publisher,
        !           578:                        if(issuer[b]) {
        !           579:                                if(authors[b] || editors[b]) {
        !           580:                                        printf "%s%s", punc, issuer[b];
        !           581:                                        punc = ",\n";
        !           582:                                }
        !           583:                        }
        !           584:        # location,
        !           585:                        if (city[b]) {
        !           586:                                printf "%s%s", punc, city[b] ;
        !           587:                                punc = ",\n";
        !           588:                        }
        !           589:        # date
        !           590:                        if (date[b]) {
        !           591:                                printf "%s%s", punc, date[b];
        !           592:                                punc = ",\n";
        !           593:                        }
        !           594: }
        !           595: 
        !           596: func default(b) {
        !           597:                        punc = "";
        !           598:        # authorlist,
        !           599:                        if(authors[b] >0) {
        !           600:                                authorlist(b);
        !           601:                                punc = ",\n";
        !           602:                        }
        !           603:                                
        !           604:        # publisher,
        !           605:                        else if(issuer[b]) {
        !           606:                                printf "%s%s", punc, issuer[b];
        !           607:                                punc = ",\n";
        !           608:                        }
        !           609:        # Title,
        !           610:                        if(title[b]) {
        !           611:                                printf "%s\\f2\\&%s\\f1\\&", punc, title[b] ;
        !           612:                                punc = ",\n";
        !           613:                        }
        !           614:        # Vol. volume,
        !           615:                        if(volstr[b])
        !           616:                                printf "%s%s", punc, volstr[b];
        !           617:                        else if(volume[b])
        !           618:                                printf "%sVol. %s", punc, volume[b];
        !           619:        # publisher,
        !           620:                        if(issuer[b]) {
        !           621:                                if(authors[b] || editors[b]) {
        !           622:                                        printf "%s%s", punc, issuer[b];
        !           623:                                        punc = ",\n";
        !           624:                                }
        !           625:                        }
        !           626:        # location,
        !           627:                        if (city[b]) {
        !           628:                                printf "%s%s", punc, city[b] ;
        !           629:                                punc = ",\n";
        !           630:                        }
        !           631:        # pages
        !           632:                        if (pages[b]) {
        !           633:                                if ( pages[b] ~ /[,-]/ ) {
        !           634:                                        printf "%spp. %s", punc, pages[b];
        !           635:                                         punc = ",\n";
        !           636:                                 }
        !           637:                                else {
        !           638:                                        printf "%sp. %s", punc, pages[b];
        !           639:                                         punc = ",\n";
        !           640:                                 }
        !           641:                        }
        !           642:        # date,
        !           643:                        if (date[b]) {
        !           644:                                printf "%s%s", punc, date[b];
        !           645:                        }
        !           646: }
        !           647: 
        !           648: 
        !           649: ##
        !           650: ## authorlist
        !           651: ##     First
        !           652: ##     First and Second
        !           653: ##     First, Second,..., and Last
        !           654: ##
        !           655: func authorlist(b) {                   
        !           656:        if ( authors[b] == 0 ) ;
        !           657:        else if ( authors[b] == 1 ) {
        !           658:                printf Afull[b,1] ;
        !           659:                if(aetal[b]) printf ", et al.";
        !           660:        }
        !           661:        else if ( authors[b] == 2 ) printf Afull[b,1] " and " Afull[b,2];
        !           662:        else {
        !           663:                for ( j = 1; j < authors[b]; j++ ) print Afull[b,j] ", ";
        !           664:                printf "and " Afull[b,authors[b]];
        !           665:        }
        !           666: }
        !           667: 
        !           668: 
        !           669: ##
        !           670: ## editorlist
        !           671: ##     First
        !           672: ##     First and Second
        !           673: ##     First, Second,..., and Last
        !           674: ##
        !           675: func editorlist(b) {                   
        !           676:        if ( editors[b] == 0 ) ;
        !           677:        else if ( editors[b] == 1 ) {
        !           678:                printf E[b,1] ;
        !           679:                if(eetal[b]) printf ", et al.";
        !           680:        }
        !           681:        else if ( editors[b] == 2 ) printf E[b,1] " and " E[b,2];
        !           682:        else {
        !           683:                for ( j = 1; j < editors[b]; j++ ) print E[b,j] ", ";
        !           684:                printf "and " E[b,editors[b]];
        !           685:        }
        !           686: }

unix.superglobalmegacorp.com

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