summaryrefslogtreecommitdiffstats
path: root/src/doxygen_bst.h
diff options
context:
space:
mode:
authorDimitri van Heesch <dimitri@stack.nl>2011-10-27 18:00:16 (GMT)
committerDimitri van Heesch <dimitri@stack.nl>2011-10-27 18:00:16 (GMT)
commit8491e9fbd06ef8a8f1cc542a524c673d7781d4b6 (patch)
tree7c1bfd20df6135fa1aac607ebe1a46d31d7f4b65 /src/doxygen_bst.h
parent3af6ff4c3d2748b45f468695a3db9f26eef4e630 (diff)
downloadDoxygen-8491e9fbd06ef8a8f1cc542a524c673d7781d4b6.zip
Doxygen-8491e9fbd06ef8a8f1cc542a524c673d7781d4b6.tar.gz
Doxygen-8491e9fbd06ef8a8f1cc542a524c673d7781d4b6.tar.bz2
Release-1.7.5.1-20111027
Diffstat (limited to 'src/doxygen_bst.h')
-rw-r--r--src/doxygen_bst.h760
1 files changed, 367 insertions, 393 deletions
diff --git a/src/doxygen_bst.h b/src/doxygen_bst.h
index 6298713..c51f2df 100644
--- a/src/doxygen_bst.h
+++ b/src/doxygen_bst.h
@@ -1,31 +1,10 @@
-"%% doxygen.bst\n"
-"%% This is a modification of plainhtml.bst; the original copyright notice\n"
-"%% follows.\n"
-"\n"
-"%% ORIGINAL COPYRIGHT NOTICE OF plainhtml.bst\n"
-"%%\n"
-"%% plainhtml.bst\n"
-"%%\n"
-"%% Part of bibhtml, version 2.0.1, released 2009 November 2\n"
-"%% Hg node 6ca3807543d6.\n"
-"%% See <http://purl.org/nxg/dist/bibhtml>\n"
-"%%\n"
-"%% Copyright 1999, 2005, 2006, 2009, Norman Gray <norman@astro.gla.ac.uk>\n"
-"%%\n"
-"%% This is a modification of a modification!\n"
-"%%\n"
-"%%% Modification of BibTeX style file /usr/local/texlive/2008/texmf-dist/bibtex/bst/base/plain.bst\n"
-"%%% ... by urlbst, version 0.6-4 (marked with \"% urlbst\")\n"
-"%%% See <http://purl.org/nxg/dist/urlbst>\n"
-"%%% Added webpage entry type, and url and lastchecked fields.\n"
-"%%% Added eprint support.\n"
-"%%% Added DOI support.\n"
-"%%% Added PUBMED support.\n"
-"%%% Added hyperref support.\n"
-"%%% Original headers follow...\n"
-"\n"
-"% BibTeX standard bibliography style `plain'\n"
-" % version 0.99a for BibTeX versions 0.99a or later, LaTeX version 2.09.\n"
+" % \n"
+" % \n"
+" % This file is either \"html-btxbst.doc\" or was derived from\n"
+" % \"html-btxbst.doc\" using cpp. \"html-btxbst.doc\" itself was edited\n"
+" % from \"btxbst.doc\" and \"named.bst\".\n"
+" % The following copyright information is from btxbst.doc:\n"
+" % version 0.99b for BibTeX versions 0.99a or later, LaTeX version 2.09.\n"
" % Copyright (C) 1985, all rights reserved.\n"
" % Copying of this file is authorized only if either\n"
" % (1) you make absolutely no changes to your copy, including name, or\n"
@@ -33,6 +12,8 @@
" % btxbst.doc, plain.bst, unsrt.bst, alpha.bst, and abbrv.bst.\n"
" % This restriction helps ensure that all standard styles are identical.\n"
" % The file btxbst.doc has the documentation for this style.\n"
+" % \"named\" style (sorted keys of the form [name, year])\n"
+" % Some code for this was taken from \"named.bst\".\n"
"\n"
"ENTRY\n"
" { address\n"
@@ -57,76 +38,36 @@
" type\n"
" volume\n"
" year\n"
-" eprint % urlbst\n"
-" doi % urlbst\n"
-" pubmed % urlbst\n"
-" url % urlbst\n"
-" lastchecked % urlbst\n"
+" dvi\n"
+" html\n"
+" keywords\n"
+" pdf\n"
+" postscript\n"
+" url\n"
+" doi\n"
+" mailto\n"
" }\n"
" {}\n"
-" { label }\n"
+" { label extra.label sort.label }\n"
"\n"
-"INTEGERS { output.state before.all mid.sentence after.sentence after.block doiform }\n"
+"INTEGERS { output.state before.all mid.sentence after.sentence after.block }\n"
"\n"
-"STRINGS { urlintro eprinturl eprintprefix doiprefix doiurl pubmedprefix pubmedurl openinlinelink closeinlinelink } % urlbst...\n"
-"INTEGERS { inlinelinks makeinlinelink addeprints adddoiresolver addpubmedresolver }\n"
-"% Following constants may be adjusted by hand, if desired\n"
-"FUNCTION {init.urlbst.variables}\n"
-"{\n"
-" \"Available from: \" 'urlintro := % prefix before URL\n"
-" \"http://arxiv.org/abs/\" 'eprinturl := % prefix to make URL from eprint ref\n"
-" \"arXiv:\" 'eprintprefix := % text prefix printed before eprint ref\n"
-" \"http://dx.doi.org/\" 'doiurl := % prefix to make URL from DOI\n"
-" \"doi:\" 'doiprefix := % text prefix printed before DOI ref\n"
-" \"http://www.ncbi.nlm.nih.gov/pubmed/\" 'pubmedurl := % prefix to make URL from PUBMED\n"
-" \"PMID:\" 'pubmedprefix := % text prefix printed before PUBMED ref\n"
-" #1 'addeprints := % 0=no eprints; 1=include eprints\n"
-" #1 'adddoiresolver := % 0=no DOI resolver; 1=include it\n"
-" #1 'addpubmedresolver := % 0=no PUBMED resolver; 1=include it\n"
-" #1 'inlinelinks := % 0=URLs explicit; 1=URLs attached to titles\n"
-" #1 'doiform := % 0=simple, but can produce invalid HTML; 1=needs post-processing\n"
-" % the following are internal state variables, not config constants\n"
-" #0 'makeinlinelink := % state variable managed by possibly.setup.inlinelink\n"
-" \"\" 'openinlinelink := % ditto\n"
-" \"\" 'closeinlinelink := % ditto\n"
-"}\n"
-"INTEGERS { \n"
-" bracket.state\n"
-" outside.brackets\n"
-" open.brackets\n"
-" within.brackets\n"
-" close.brackets\n"
-" close.first.block\n"
-"}\n"
-"% ...urlbst to here\n"
"FUNCTION {init.state.consts}\n"
-"{ #0 'outside.brackets := % urlbst\n"
-" #1 'open.brackets :=\n"
-" #2 'within.brackets :=\n"
-" #3 'close.brackets :=\n"
-"\n"
-" #0 'before.all :=\n"
+"{ #0 'before.all :=\n"
" #1 'mid.sentence :=\n"
" #2 'after.sentence :=\n"
" #3 'after.block :=\n"
-" #0 'close.first.block :=\n"
"}\n"
"\n"
"STRINGS { s t }\n"
"\n"
-"% urlbst\n"
-"FUNCTION {output.nonnull.original}\n"
+"FUNCTION {output.nonnull}\n"
"{ 's :=\n"
" output.state mid.sentence =\n"
" { \", \" * write$ }\n"
" { output.state after.block =\n"
" { add.period$ write$\n"
-" % close the <dt> after the end of the first block\n"
-" close.first.block\n"
-" { newline$\n"
-" #0 'close.first.block := }\n"
-" { newline$ }\n"
-" if$\n"
+" newline$\n"
" }\n"
" { output.state before.all =\n"
" 'write$\n"
@@ -140,84 +81,6 @@
" s\n"
"}\n"
"\n"
-"% urlbst...\n"
-"% The following three functions are for handling inlinelink. They wrap\n"
-"% a block of text which is potentially output with write$ by multiple\n"
-"% other functions, so we don't know the content a priori.\n"
-"% They communicate between each other using the variables makeinlinelink\n"
-"% (which is true if a link should be made), and closeinlinelink (which holds\n"
-"% the string which should close any current link. They can be called\n"
-"% at any time, but start.inlinelink will be a no-op unless something has\n"
-"% previously set makeinlinelink true, and the two ...end.inlinelink functions\n"
-"% will only do their stuff if start.inlinelink has previously set\n"
-"% closeinlinelink to be non-empty.\n"
-"FUNCTION {possibly.setup.inlinelink}\n"
-"{ makeinlinelink\n"
-" { \"<a href=\" quote$ * url * quote$ * \">\" * 'openinlinelink :=\n"
-" \"</a>\" 'closeinlinelink :=\n"
-" #0 'makeinlinelink := }\n"
-" 'skip$\n"
-" if$ % makeinlinelink\n"
-"}\n"
-"FUNCTION {add.inlinelink}\n"
-"{ openinlinelink empty$\n"
-" 'skip$\n"
-" { openinlinelink swap$ * closeinlinelink *\n"
-" \"\" 'openinlinelink :=\n"
-" }\n"
-" if$\n"
-"}\n"
-"FUNCTION {output.nonnull}\n"
-"{ % Save the thing we've been asked to output\n"
-" 's :=\n"
-" % If the bracket-state is close.brackets, then add a close-bracket to\n"
-" % what is currently at the top of the stack, and set bracket.state\n"
-" % to outside.brackets\n"
-" bracket.state close.brackets =\n"
-" { \"]\" *\n"
-" outside.brackets 'bracket.state :=\n"
-" }\n"
-" 'skip$\n"
-" if$\n"
-" bracket.state outside.brackets =\n"
-" { % We're outside all brackets -- this is the normal situation.\n"
-" % Write out what's currently at the top of the stack, using the\n"
-" % original output.nonnull function.\n"
-" s\n"
-" add.inlinelink\n"
-" output.nonnull.original % invoke the original output.nonnull\n"
-" }\n"
-" { % Still in brackets. Add open-bracket or (continuation) comma, add the\n"
-" % new text (in s) to the top of the stack, and move to the close-brackets\n"
-" % state, ready for next time (unless inbrackets resets it). If we come\n"
-" % into this branch, then output.state is carefully undisturbed.\n"
-" bracket.state open.brackets =\n"
-" { \" [\" * }\n"
-" { \", \" * } % bracket.state will be within.brackets\n"
-" if$ \n"
-" s * \n"
-" close.brackets 'bracket.state :=\n"
-" }\n"
-" if$\n"
-"}\n"
-"\n"
-"% Call this function just before adding something which should be presented in \n"
-"% brackets. bracket.state is handled specially within output.nonnull.\n"
-"FUNCTION {inbrackets}\n"
-"{ bracket.state close.brackets =\n"
-" { within.brackets 'bracket.state := } % reset the state: not open nor closed\n"
-" { open.brackets 'bracket.state := }\n"
-" if$\n"
-"}\n"
-"\n"
-"FUNCTION {format.lastchecked}\n"
-"{ lastchecked empty$\n"
-" { \"\" }\n"
-" { inbrackets \"cited \" lastchecked * }\n"
-" if$\n"
-"}\n"
-"% ...urlbst to here\n"
-"\n"
"FUNCTION {output}\n"
"{ duplicate$ empty$\n"
" 'pop$\n"
@@ -233,21 +96,50 @@
" if$\n"
"}\n"
"\n"
-"FUNCTION {output.bibitem.original}\n"
+"FUNCTION {output.bibitem}\n"
"{ newline$\n"
-" cite$ write$\n"
-" newline$\n"
-" \"[\" label * \"] \" * write$\n"
-" % the <dt> is closed within output.nonnull, as long as close.first.block is true\n"
-" #1 'close.first.block :=\n"
-" newline$\n"
+" author empty$\n"
+" { editor empty$\n"
+" { organization empty$\n"
+" 'skip$\n"
+" { \"<!-- Authors: \" organization purify$ * \" -->\" * write$ newline$ }\n"
+" if$\n"
+" } \n"
+" { \"<!-- Authors: \" editor purify$ * \" -->\" * write$ newline$ }\n"
+" if$\n"
+" }\n"
+" { \"<!-- Authors: \" author purify$ * \" -->\" * write$ newline$ }\n"
+" if$\n"
+" keywords empty$\n"
+" 'skip$\n"
+" { \"<!-- Keywords: \" keywords * \" -->\" * write$ newline$ }\n"
+" if$\n"
+" \"<dt><a name=\" quote$ * \"CITEREF_\" * cite$ * quote$ * \">[\" * label * \"]</a></dt><dd>\" * write$\n"
" \"\"\n"
" before.all 'output.state :=\n"
"}\n"
"\n"
-"FUNCTION {fin.entry.original}\n"
+"FUNCTION {fin.entry}\n"
"{ add.period$\n"
" write$\n"
+" postscript empty$\n"
+" 'skip$\n"
+" { newline$ \"<!-- PostScript: \" postscript * \" -->\" * write$ }\n"
+" if$\n"
+" pdf empty$\n"
+" 'skip$\n"
+" { newline$ \"<!-- PDF: \" pdf * \" -->\" * write$ }\n"
+" if$\n"
+" dvi empty$\n"
+" 'skip$\n"
+" { newline$ \"<!-- DVI: \" dvi * \" -->\" * write$ }\n"
+" if$\n"
+" doi empty$\n"
+" 'skip$\n"
+" { newline$ \"<!-- DOI: \" doi * \" -->\" * write$ }\n"
+" if$\n"
+" \"</dd>\" write$\n"
+" newline$\n"
" newline$\n"
"}\n"
"\n"
@@ -287,6 +179,22 @@
" if$\n"
"}\n"
"\n"
+"FUNCTION {str.to.int}\n"
+"{\n"
+" 's :=\n"
+" #0\n"
+" { s empty$ not }\n"
+" { % Multiply the number on the top of the stack by 10 = 1010 binary\n"
+" duplicate$ + % x2\n"
+" duplicate$ % x2 x2\n"
+" duplicate$ + duplicate$ + % x2 x8\n"
+" +\n"
+" s #1 #1 substring$ chr.to.int$ #48 - + % #48 is ascii for '0'\n"
+" s #2 global.max$ substring$ 's :=\n"
+" }\n"
+" while$\n"
+"}\n"
+"\n"
"FUNCTION {new.block.checka}\n"
"{ empty$\n"
" 'skip$\n"
@@ -326,17 +234,39 @@
" if$\n"
"}\n"
"\n"
-"FUNCTION {bold}\n"
+"FUNCTION {emphasize}\n"
"{ duplicate$ empty$\n"
" { pop$ \"\" }\n"
-" { \"<b>\" swap$ * \"</b>\" * }\n"
+" { \"<em>\" swap$ * \"</em>\" * }\n"
" if$\n"
"}\n"
"\n"
-"FUNCTION {emphasize}\n"
-"{ duplicate$ empty$\n"
-" { pop$ \"\" }\n"
-" { \"<em>\" swap$ * \"</em>\" * }\n"
+"FUNCTION {add.link} % title\n"
+"{\n"
+" 't :=\n"
+" t empty$\n"
+" { \"\" }\n"
+" { url empty$\n"
+" { html empty$\n"
+" { t }\n"
+" { \"<a href=\" quote$ * html * quote$ * \">\" * t * \"</a>\" * }\n"
+" if$ }\n"
+" { \"<a href=\" quote$ * url * quote$ * \">\" * t * \"</a>\" * }\n"
+" if$\n"
+" }\n"
+" if$\n"
+"}\n"
+"\n"
+"FUNCTION {add.mailto} % authors\n"
+"{\n"
+" 't :=\n"
+" t empty$\n"
+" { \"\" }\n"
+" { mailto empty$\n"
+" { t }\n"
+" { \"<a href=\" quote$ * \"mailto:\" * mailto * quote$ * \">\" * t * \"</a>\" * }\n"
+" if$\n"
+" }\n"
" if$\n"
"}\n"
"\n"
@@ -349,6 +279,7 @@
" numnames 'namesleft :=\n"
" { namesleft #0 > }\n"
" { s nameptr \"{ff~}{vv~}{ll}{, jj}\" format.name$ 't :=\n"
+" \"\\bibxhtmlname{\" t * \"}\" * 't :=\n"
" nameptr #1 >\n"
" { namesleft #1 >\n"
" { \", \" * t * }\n"
@@ -376,7 +307,7 @@
" { \"\" }\n"
" { author format.names }\n"
" if$\n"
-" bold\n"
+" add.mailto\n"
"}\n"
"\n"
"FUNCTION {format.editors}\n"
@@ -396,6 +327,7 @@
" { \"\" }\n"
" { title \"t\" change.case$ }\n"
" if$\n"
+" add.link\n"
"}\n"
"\n"
"FUNCTION {n.dashify}\n"
@@ -438,11 +370,11 @@
" if$\n"
" }\n"
" if$\n"
-" bold\n"
"}\n"
"\n"
"FUNCTION {format.btitle}\n"
"{ title emphasize\n"
+" add.link\n"
"}\n"
"\n"
"FUNCTION {tie.or.space.connect}\n"
@@ -616,18 +548,20 @@
"}\n"
"\n"
"FUNCTION {format.article.crossref}\n"
-"{ key empty$\n"
+"{\n"
+" \"In <a href=\" quote$ * \"#\" * crossref * quote$ * \">\" *\n"
+" key empty$\n"
" { journal empty$\n"
" { \"need key or journal for \" cite$ * \" to crossref \" * crossref *\n"
" warning$\n"
" \"\"\n"
" }\n"
-" { \"In <em>\" journal * \"</em>\" * }\n"
+" { \"<cite>\" * journal * \"</cite>\" * }\n"
" if$\n"
" }\n"
-" { \"In \" key * }\n"
+" { key * }\n"
" if$\n"
-" \" <span class='cite'>\" * crossref * \"</span>\" *\n"
+" \"</a> \\citelabel{\" * crossref * \"}\" *\n"
"}\n"
"\n"
"FUNCTION {format.crossref.editor}\n"
@@ -656,6 +590,7 @@
" \" of \" *\n"
" }\n"
" if$\n"
+" \"<a href=\" * quote$ * \"#\" * crossref * quote$ * \">\" *\n"
" editor empty$\n"
" editor field.or.null author field.or.null =\n"
" or\n"
@@ -665,7 +600,7 @@
" crossref * warning$\n"
" \"\" *\n"
" }\n"
-" { \"<em>\" * series * \"</em>\" * }\n"
+" { \"<cite>\" * series * \"</cite>\" * }\n"
" if$\n"
" }\n"
" { key * }\n"
@@ -673,11 +608,13 @@
" }\n"
" { format.crossref.editor * }\n"
" if$\n"
-" \" <span class='cite'>\" * crossref * \"</span>\" *\n"
+" \"</a> \\citelabel{\" * crossref * \"}\" *\n"
"}\n"
"\n"
"FUNCTION {format.incoll.inproc.crossref}\n"
-"{ editor empty$\n"
+"{\n"
+" \"In <a href=\" quote$ * \"#\" * crossref * quote$ * \">\" *\n"
+" editor empty$\n"
" editor field.or.null author field.or.null =\n"
" or\n"
" { key empty$\n"
@@ -686,171 +623,26 @@
" crossref * warning$\n"
" \"\"\n"
" }\n"
-" { \"In <em>\" booktitle * \"</em>\" * }\n"
+" { \"<cite>\" * booktitle * \"</cite>\" * }\n"
" if$\n"
" }\n"
-" { \"In \" key * }\n"
+" { key * }\n"
" if$\n"
" }\n"
-" { \"In \" format.crossref.editor * }\n"
-" if$\n"
-" \" <span class='cite'>\" * crossref * \"</span>\" *\n"
-"}\n"
-"\n"
-"% urlbst...\n"
-"% Functions for making hypertext links.\n"
-"FUNCTION {make.href}\n"
-"{ \n"
-" \"<a href='\" swap$ * \"'><code>\" * swap$ * \"</code></a>\" *\n"
-"}\n"
-"\n"
-"% If inlinelinks is true, then format.url should be a no-op, since it's\n"
-"% (a) redundant, and (b) could end up as a link-within-a-link.\n"
-"FUNCTION {format.url}\n"
-"{ inlinelinks #1 = url empty$ or\n"
-" { \"\" }\n"
-" { urlintro \"<code>\" * url * \"</code>\" * }\n"
-" if$\n"
-"}\n"
-"\n"
-"FUNCTION {format.eprint}\n"
-"{ eprint empty$\n"
-" { \"\" }\n"
-" { eprintprefix eprint * eprinturl eprint * make.href }\n"
-" if$\n"
-"}\n"
-"\n"
-"FUNCTION {format.doi}\n"
-"{ doi empty$\n"
-" { \"\" }\n"
-" { doiform #0 =\n"
-" { doiprefix doi * doiurl doi * make.href }\n"
-" { \"DOI:{\" doi * \"}\" * }\n"
-" if$\n"
-" }\n"
-" if$\n"
-"}\n"
-"\n"
-"FUNCTION {format.pubmed}\n"
-"{ pubmed empty$\n"
-" { \"\" }\n"
-" { pubmedprefix pubmed * pubmedurl pubmed * make.href }\n"
-" if$\n"
-"}\n"
-"\n"
-"% Output a URL. We can't use the more normal idiom (something like\n"
-"% `format.url output'), because the `inbrackets' within\n"
-"% format.lastchecked applies to everything between calls to `output',\n"
-"% so that `format.url format.lastchecked * output' ends up with both\n"
-"% the URL and the lastchecked in brackets.\n"
-"FUNCTION {output.url}\n"
-"{ url empty$\n"
-" 'skip$ \n"
-" { new.block \n"
-" format.url output\n"
-" format.lastchecked output \n"
-" }\n"
-" if$\n"
-"}\n"
-"\n"
-"FUNCTION {output.web.refs}\n"
-"{\n"
-" new.block\n"
-" output.url\n"
-" addeprints eprint empty$ not and\n"
-" { format.eprint output.nonnull }\n"
-" 'skip$\n"
-" if$\n"
-" adddoiresolver doi empty$ not and\n"
-" { format.doi output.nonnull }\n"
-" 'skip$\n"
-" if$\n"
-" addpubmedresolver pubmed empty$ not and\n"
-" { format.pubmed output.nonnull }\n"
-" 'skip$\n"
-" if$\n"
-"}\n"
-"\n"
-"% Wrapper for output.bibitem.original.\n"
-"% If the URL field is not empty, set makeinlinelink to be true,\n"
-"% so that an inline link will be started at the next opportunity\n"
-"FUNCTION {output.bibitem}\n"
-"{ outside.brackets 'bracket.state :=\n"
-" output.bibitem.original\n"
-" inlinelinks url empty$ not and\n"
-" { #1 'makeinlinelink := }\n"
-" { #0 'makeinlinelink := }\n"
-" if$\n"
-"}\n"
-"\n"
-"% Wrapper for fin.entry.original\n"
-"FUNCTION {fin.entry}\n"
-"{ output.web.refs % urlbst\n"
-" makeinlinelink % ooops, it appears we didn't have a title for inlinelink\n"
-" { possibly.setup.inlinelink % add some artificial link text here, as a fallback\n"
-" \"[link]\" output.nonnull }\n"
-" 'skip$\n"
-" if$\n"
-" bracket.state close.brackets = % urlbst\n"
-" { \"]\" * }\n"
-" 'skip$\n"
-" if$\n"
-" fin.entry.original\n"
-"}\n"
-"\n"
-"% Webpage entry type.\n"
-"% Title and url fields required;\n"
-"% author, note, year, month, and lastchecked fields optional\n"
-"% See references \n"
-"% ISO 690-2 http://www.nlc-bnc.ca/iso/tc46sc9/standard/690-2e.htm\n"
-"% http://www.classroom.net/classroom/CitingNetResources.html\n"
-"% http://neal.ctstateu.edu/history/cite.html\n"
-"% http://www.cas.usf.edu/english/walker/mla.html\n"
-"% for citation formats for web pages.\n"
-"FUNCTION {webpage}\n"
-"{ output.bibitem\n"
-" author empty$\n"
-" { editor empty$\n"
-" 'skip$ % author and editor both optional\n"
-" { format.editors output.nonnull }\n"
-" if$\n"
-" }\n"
-" { editor empty$\n"
-" { format.authors output.nonnull }\n"
-" { \"can't use both author and editor fields in \" cite$ * warning$ }\n"
-" if$\n"
-" }\n"
-" if$\n"
-" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$\n"
-" format.title \"title\" output.check\n"
-" inbrackets \"online\" output\n"
-" new.block\n"
-" year empty$\n"
-" 'skip$\n"
-" { format.date \"year\" output.check }\n"
+" { format.crossref.editor * }\n"
" if$\n"
-" % We don't need to output the URL details ('lastchecked' and 'url'),\n"
-" % because fin.entry does that for us, using output.web.refs. The only\n"
-" % reason we would want to put them here is if we were to decide that\n"
-" % they should go in front of the rather miscellaneous information in 'note'.\n"
-" new.block\n"
-" note output\n"
-" fin.entry\n"
+" \"</a> \\citelabel{\" * crossref * \"}\" *\n"
"}\n"
-"% ...urlbst to here\n"
-"\n"
"\n"
"FUNCTION {article}\n"
"{ output.bibitem\n"
" format.authors \"author\" output.check\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.title \"title\" output.check\n"
" new.block\n"
" crossref missing$\n"
" { journal emphasize \"journal\" output.check\n"
-" possibly.setup.inlinelink format.vol.num.pages output% urlbst\n"
+" format.vol.num.pages output\n"
" format.date \"year\" output.check\n"
" }\n"
" { format.article.crossref output.nonnull\n"
@@ -874,7 +666,6 @@
" }\n"
" if$\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.btitle \"title\" output.check\n"
" crossref missing$\n"
" { format.bvolume output\n"
@@ -899,7 +690,6 @@
"{ output.bibitem\n"
" format.authors output\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.title \"title\" output.check\n"
" howpublished address new.block.checkb\n"
" howpublished output\n"
@@ -922,7 +712,6 @@
" }\n"
" if$\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.btitle \"title\" output.check\n"
" crossref missing$\n"
" { format.bvolume output\n"
@@ -949,7 +738,6 @@
"{ output.bibitem\n"
" format.authors \"author\" output.check\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.title \"title\" output.check\n"
" new.block\n"
" crossref missing$\n"
@@ -976,7 +764,6 @@
"{ output.bibitem\n"
" format.authors \"author\" output.check\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.title \"title\" output.check\n"
" new.block\n"
" crossref missing$\n"
@@ -1022,7 +809,6 @@
" { format.authors output.nonnull }\n"
" if$\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.btitle \"title\" output.check\n"
" author empty$\n"
" { organization empty$\n"
@@ -1048,7 +834,6 @@
"{ output.bibitem\n"
" format.authors \"author\" output.check\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.title \"title\" output.check\n"
" new.block\n"
" \"Master's thesis\" format.thesis.type output.nonnull\n"
@@ -1064,7 +849,6 @@
"{ output.bibitem\n"
" format.authors output\n"
" title howpublished new.block.checkb\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.title output\n"
" howpublished new.block.checka\n"
" howpublished output\n"
@@ -1079,7 +863,6 @@
"{ output.bibitem\n"
" format.authors \"author\" output.check\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.btitle \"title\" output.check\n"
" new.block\n"
" \"PhD thesis\" format.thesis.type output.nonnull\n"
@@ -1098,7 +881,6 @@
" { format.editors output.nonnull }\n"
" if$\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.btitle \"title\" output.check\n"
" format.bvolume output\n"
" format.number.series output\n"
@@ -1131,7 +913,6 @@
"{ output.bibitem\n"
" format.authors \"author\" output.check\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.title \"title\" output.check\n"
" new.block\n"
" format.tr.number output.nonnull\n"
@@ -1147,7 +928,6 @@
"{ output.bibitem\n"
" format.authors \"author\" output.check\n"
" new.block\n"
-" title empty$ 'skip$ 'possibly.setup.inlinelink if$ % urlbst\n"
" format.title \"title\" output.check\n"
" new.block\n"
" note \"note\" output.check\n"
@@ -1156,37 +936,70 @@
"}\n"
"\n"
"FUNCTION {default.type} { misc }\n"
+"\n"
"MACRO {jan} {\"January\"}\n"
+"\n"
"MACRO {feb} {\"February\"}\n"
+"\n"
"MACRO {mar} {\"March\"}\n"
+"\n"
"MACRO {apr} {\"April\"}\n"
+"\n"
"MACRO {may} {\"May\"}\n"
+"\n"
"MACRO {jun} {\"June\"}\n"
+"\n"
"MACRO {jul} {\"July\"}\n"
+"\n"
"MACRO {aug} {\"August\"}\n"
+"\n"
"MACRO {sep} {\"September\"}\n"
+"\n"
"MACRO {oct} {\"October\"}\n"
+"\n"
"MACRO {nov} {\"November\"}\n"
+"\n"
"MACRO {dec} {\"December\"}\n"
+"\n"
"MACRO {acmcs} {\"ACM Computing Surveys\"}\n"
+"\n"
"MACRO {acta} {\"Acta Informatica\"}\n"
+"\n"
"MACRO {cacm} {\"Communications of the ACM\"}\n"
+"\n"
"MACRO {ibmjrd} {\"IBM Journal of Research and Development\"}\n"
+"\n"
"MACRO {ibmsj} {\"IBM Systems Journal\"}\n"
+"\n"
"MACRO {ieeese} {\"IEEE Transactions on Software Engineering\"}\n"
+"\n"
"MACRO {ieeetc} {\"IEEE Transactions on Computers\"}\n"
-"MACRO {ieeetcad} {\"IEEE Transactions on Computer-Aided Design of Integrated Circuits\"}\n"
+"\n"
+"MACRO {ieeetcad}\n"
+" {\"IEEE Transactions on Computer-Aided Design of Integrated Circuits\"}\n"
+"\n"
"MACRO {ipl} {\"Information Processing Letters\"}\n"
+"\n"
"MACRO {jacm} {\"Journal of the ACM\"}\n"
+"\n"
"MACRO {jcss} {\"Journal of Computer and System Sciences\"}\n"
+"\n"
"MACRO {scp} {\"Science of Computer Programming\"}\n"
+"\n"
"MACRO {sicomp} {\"SIAM Journal on Computing\"}\n"
+"\n"
"MACRO {tocs} {\"ACM Transactions on Computer Systems\"}\n"
+"\n"
"MACRO {tods} {\"ACM Transactions on Database Systems\"}\n"
+"\n"
"MACRO {tog} {\"ACM Transactions on Graphics\"}\n"
+"\n"
"MACRO {toms} {\"ACM Transactions on Mathematical Software\"}\n"
+"\n"
"MACRO {toois} {\"ACM Transactions on Office Information Systems\"}\n"
+"\n"
"MACRO {toplas} {\"ACM Transactions on Programming Languages and Systems\"}\n"
+"\n"
"MACRO {tcs} {\"Theoretical Computer Science\"}\n"
"\n"
"READ\n"
@@ -1207,6 +1020,177 @@
" if$\n"
"}\n"
"\n"
+"\n"
+"FUNCTION {format.lab.names}\n"
+"{ 's :=\n"
+" s num.names$ 'numnames :=\n"
+" numnames #1 =\n"
+" { s #1 \"{vv }{ll}\" format.name$ }\n"
+" { numnames #2 =\n"
+" { s #1 \"{vv }{ll }and \" format.name$ s #2 \"{vv }{ll}\" format.name$ * }\n"
+" { s #1 \"{vv }{ll }\" format.name$ \"et~al.\" * }\n"
+" if$\n"
+" }\n"
+" if$\n"
+"}\n"
+"\n"
+"FUNCTION {author.key.label}\n"
+"{ author empty$\n"
+" { key empty$\n"
+" { cite$ #1 #3 substring$ }\n"
+" { key }\n"
+" if$\n"
+" }\n"
+" { author format.lab.names }\n"
+" if$\n"
+"}\n"
+"\n"
+"FUNCTION {author.editor.key.label}\n"
+"{ author empty$\n"
+" { editor empty$\n"
+" { key empty$\n"
+" { cite$ #1 #3 substring$ }\n"
+" { key }\n"
+" if$\n"
+" }\n"
+" { editor format.lab.names }\n"
+" if$\n"
+" }\n"
+" { author format.lab.names }\n"
+" if$\n"
+"}\n"
+"\n"
+"FUNCTION {author.key.organization.label}\n"
+"{ author empty$\n"
+" { key empty$\n"
+" { organization empty$\n"
+" { cite$ #1 #3 substring$ }\n"
+" { \"The \" #4 organization chop.word #3 text.prefix$ }\n"
+" if$\n"
+" }\n"
+" { key }\n"
+" if$\n"
+" }\n"
+" { author format.lab.names }\n"
+" if$\n"
+"}\n"
+"\n"
+"FUNCTION {editor.key.organization.label}\n"
+"{ editor empty$\n"
+" { key empty$\n"
+" { organization empty$\n"
+" { cite$ #1 #3 substring$ }\n"
+" { \"The \" #4 organization chop.word #3 text.prefix$ }\n"
+" if$\n"
+" }\n"
+" { key }\n"
+" if$\n"
+" }\n"
+" { editor format.lab.names }\n"
+" if$\n"
+"}\n"
+"\n"
+"FUNCTION {month.to.int}\n"
+"{\n"
+" \"l\" change.case$ #3 text.prefix$\n"
+" 's :=\n"
+" s \"jan\" = { #1 } {\n"
+" s \"feb\" = { #2 } {\n"
+" s \"mar\" = { #3 } {\n"
+" s \"apr\" = { #4 } {\n"
+" s \"may\" = { #5 } {\n"
+" s \"jun\" = { #6 } {\n"
+" s \"jul\" = { #7 } {\n"
+" s \"aug\" = { #8 } {\n"
+" s \"sep\" = { #9 } {\n"
+" s \"oct\" = { #10 } {\n"
+" s \"nov\" = { #11 } {\n"
+" s \"dec\" = { #12 } { #13 } % 13 if nothing matches\n"
+" if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$}if$\n"
+"}\n"
+"\n"
+"INTEGERS { done c } \n"
+"FUNCTION { get.day }\n"
+"{ month field.or.null 's :=\n"
+" \n"
+" % Strip out month name\n"
+" #0 'done := \n"
+" { s \"\" = not done not and }\n"
+" { s #1 #1 substring$ \" \" = 'done :=\n"
+" s #2 global.max$ substring$ 's :=\n"
+" }\n"
+" while$\n"
+"\n"
+" % Build up first number in t\n"
+" \"0\" 't :=\n"
+" #0 'done :=\n"
+" { s \"\" = not done not and }\n"
+" { s #1 #1 substring$ chr.to.int$ 'c :=\n"
+" c #47 > c #58 < and\n"
+" { t c int.to.chr$ * 't := }\n"
+" { #1 'done := }\n"
+" if$\n"
+" s #2 global.max$ substring$ 's :=\n"
+" }\n"
+" while$\n"
+"\n"
+" t str.to.int\n"
+"}\n"
+"\n"
+"FUNCTION { sortify.fourdigit }\n"
+"{ 's :=\n"
+" s empty$\n"
+" { \"0000\" }\n"
+" { s\n"
+" }\n"
+" if$\n"
+"}\n"
+"\n"
+"FUNCTION { sortify.twodigit }\n"
+"{ 's :=\n"
+" s empty$\n"
+" { \"00\" }\n"
+" { s\n"
+" str.to.int #10 + int.to.str$\n"
+" }\n"
+" if$\n"
+"}\n"
+"\n"
+"FUNCTION {calc.label}\n"
+"{ type$ \"book\" =\n"
+" type$ \"inbook\" =\n"
+" or\n"
+" 'author.editor.key.label\n"
+" { type$ \"proceedings\" =\n"
+" 'editor.key.organization.label\n"
+" { type$ \"manual\" =\n"
+" 'author.key.organization.label\n"
+" 'author.key.label\n"
+" if$\n"
+" }\n"
+" if$\n"
+" }\n"
+" if$\n"
+" duplicate$\n"
+"\n"
+" year empty$\n"
+" 'skip$\n"
+" { \", \" * }\n"
+" if$\n"
+" year field.or.null purify$ * % CHANGED - pfps - 15 Feb 1989\n"
+" 'label :=\n"
+"\n"
+" year field.or.null purify$\n"
+" #-1 #4 substring$ \n"
+" sortify.fourdigit \n"
+" \" \" *\n"
+" month field.or.null month.to.int int.to.str$ sortify.twodigit *\n"
+" \" \" * \n"
+" get.day int.to.str$ sortify.twodigit *\n"
+" \" \" *\n"
+" * sortify 'sort.label :=\n"
+"}\n"
+"\n"
"FUNCTION {sort.format.names}\n"
"{ 's :=\n"
" #1 'nameptr :=\n"
@@ -1220,7 +1204,7 @@
" if$\n"
" s nameptr \"{vv{ } }{ll{ }}{ ff{ }}{ jj{ }}\" format.name$ 't :=\n"
" nameptr numnames = t \"others\" = and\n"
-" { \"et al\" * }\n"
+" { \"et al.\" * }\n"
" { t sortify * }\n"
" if$\n"
" nameptr #1 + 'nameptr :=\n"
@@ -1304,36 +1288,9 @@
" if$\n"
"}\n"
"\n"
-"FUNCTION {presort.by.author}\n"
-"{ type$ \"book\" =\n"
-" type$ \"inbook\" =\n"
-" or\n"
-" 'author.editor.sort\n"
-" { type$ \"proceedings\" =\n"
-" 'editor.organization.sort\n"
-" { type$ \"manual\" =\n"
-" 'author.organization.sort\n"
-" 'author.sort\n"
-" if$\n"
-" }\n"
-" if$\n"
-" }\n"
-" if$\n"
-" \" \"\n"
-" *\n"
-" year field.or.null sortify\n"
-" *\n"
-" \" \"\n"
-" *\n"
-" title field.or.null\n"
-" sort.format.title\n"
-" *\n"
-" #1 entry.max$ substring$\n"
-" 'sort.key$ :=\n"
-"}\n"
-"\n"
-"FUNCTION {presort.by.year}\n"
-"{ year field.or.null sortify\n"
+"FUNCTION {presort}\n"
+"{ calc.label\n"
+" sort.label\n"
" \" \"\n"
" *\n"
" type$ \"book\" =\n"
@@ -1353,6 +1310,10 @@
" *\n"
" \" \"\n"
" *\n"
+" year field.or.null sortify\n"
+" *\n"
+" \" \"\n"
+" *\n"
" title field.or.null\n"
" sort.format.title\n"
" *\n"
@@ -1360,55 +1321,68 @@
" 'sort.key$ :=\n"
"}\n"
"\n"
-"ITERATE {presort.by.author}\n"
+"ITERATE {presort}\n"
"\n"
"SORT\n"
"\n"
-"STRINGS { longest.label }\n"
+"STRINGS { longest.label last.sort.label next.extra }\n"
"\n"
-"INTEGERS { number.label longest.label.width }\n"
+"INTEGERS { longest.label.width last.extra.num }\n"
"\n"
"FUNCTION {initialize.longest.label}\n"
"{ \"\" 'longest.label :=\n"
-" #1 'number.label :=\n"
+" #0 int.to.chr$ 'last.sort.label :=\n"
+" \"\" 'next.extra :=\n"
" #0 'longest.label.width :=\n"
+" #0 'last.extra.num :=\n"
+"}\n"
+"\n"
+"FUNCTION {forward.pass}\n"
+"{ last.sort.label sort.label =\n"
+" { last.extra.num #1 + 'last.extra.num :=\n"
+" last.extra.num int.to.chr$ 'extra.label :=\n"
+" }\n"
+" { \"a\" chr.to.int$ 'last.extra.num :=\n"
+" \"\" 'extra.label :=\n"
+" sort.label 'last.sort.label :=\n"
+" }\n"
+" if$\n"
"}\n"
"\n"
-"FUNCTION {longest.label.pass}\n"
-"{ number.label int.to.str$ 'label :=\n"
-" number.label #1 + 'number.label :=\n"
+"FUNCTION {reverse.pass}\n"
+"{ next.extra \"b\" =\n"
+" { \"a\" 'extra.label := }\n"
+" 'skip$\n"
+" if$\n"
+" label extra.label * 'label :=\n"
" label width$ longest.label.width >\n"
" { label 'longest.label :=\n"
" label width$ 'longest.label.width :=\n"
" }\n"
" 'skip$\n"
" if$\n"
+" extra.label 'next.extra :=\n"
"}\n"
"\n"
"EXECUTE {initialize.longest.label}\n"
"\n"
-"ITERATE {longest.label.pass}\n"
+"ITERATE {forward.pass}\n"
+"\n"
+"REVERSE {reverse.pass}\n"
"\n"
"FUNCTION {begin.bib}\n"
-"{ preamble$ empty$\n"
-" 'skip$\n"
-" { preamble$ write$ newline$ }\n"
-" if$\n"
-" %\"/** \\page bibref References\" write$ newline$\n"
-" newline$\n"
+"{\n"
+" \"# label-style: default\" write$ newline$\n"
"}\n"
"\n"
"EXECUTE {begin.bib}\n"
"\n"
-"EXECUTE {init.urlbst.variables}\n"
"EXECUTE {init.state.consts}\n"
"\n"
"ITERATE {call.type$}\n"
"\n"
"FUNCTION {end.bib}\n"
"{ newline$\n"
-" %\"*/\" write$ newline$\n"
"}\n"
"\n"
"EXECUTE {end.bib}\n"
-"\n"