}
{}
{ label }
+
+STRINGS { doiprefix doiurl }
+FUNCTION {init.doi.variables}
+{
+ "http://dx.doi.org/" 'doiurl := % prefix to make URL from DOI
+ "doi:" 'doiprefix := % text prefix printed before DOI ref
+}
INTEGERS { output.state before.all mid.sentence after.sentence after.block }
FUNCTION {init.state.consts}
{ #0 'before.all :=
{ "" }
FUNCTION {bbl.chapter}
-{ "chap." }
+{ "Chapter" }
FUNCTION {bbl.techrep}
{ "Tech. Rep." }
MACRO {dec} {"Dec."}
-MACRO {acmcs} {"ACM Computing Surveys"}
-
-MACRO {acta} {"Acta Informatica"}
-
-MACRO {cacm} {"Communications of the ACM"}
-
-MACRO {ibmjrd} {"IBM Journal of Research and Development"}
-
-MACRO {ibmsj} {"IBM Systems Journal"}
-
-MACRO {ieeese} {"IEEE Transactions on Software Engineering"}
-
-MACRO {ieeetc} {"IEEE Transactions on Computers"}
-
-MACRO {ieeetcad}
- {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"}
-
-MACRO {ipl} {"Information Processing Letters"}
-
-MACRO {jacm} {"Journal of the ACM"}
-
-MACRO {jcss} {"Journal of Computer and System Sciences"}
-
-MACRO {scp} {"Science of Computer Programming"}
-
-MACRO {sicomp} {"SIAM Journal on Computing"}
-
-MACRO {tocs} {"ACM Transactions on Computer Systems"}
-
-MACRO {tods} {"ACM Transactions on Database Systems"}
-
-MACRO {tog} {"ACM Transactions on Graphics"}
-
-MACRO {toms} {"ACM Transactions on Mathematical Software"}
-
-MACRO {toois} {"ACM Transactions on Office Information Systems"}
-
-MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"}
-
-MACRO {tcs} {"Theoretical Computer Science"}
FUNCTION {bibinfo.check}
{ swap$
duplicate$ missing$
if$
}
+FUNCTION {make.href}
+{ "\href {" swap$ * "} {\path{" * swap$ * "}}" * }
+
FUNCTION {format.doi}
{ doi empty$
{ "" }
- {
- new.block
- "\doi{" doi * "}" *
- }
+ { doiprefix doi * doiurl doi * make.href }
if$
}
FUNCTION {format.note}
FUNCTION {format.vol.num.pages}
{ volume field.or.null
duplicate$ empty$ 'skip$
- {
- bbl.volume swap$ tie.or.space.prefix
+ { % Replaced "vol." with the empty string here.
+ "" swap$ tie.or.space.prefix
"volume" bibinfo.check
* *
}
}
EXECUTE {initialize.longest.label}
ITERATE {longest.label.pass}
+
+% The usual default hbadness is 1000, but bibliography entries tend to
+% have badnesses up around 2000, and I have one example with badness
+% 2302. Here, we try the value 2500 instead to avoid spurious warnings
+% (there's nothing the document author can do about them). Before we
+% end the bibliography, we restore the original value.
FUNCTION {begin.bib}
{ preamble$ empty$
'skip$
if$
"\begin{thebibliography}{" longest.label * "}" *
write$ newline$
+ "\let\originalhbadness\hbadness"
+ write$ newline$
+ "\hbadness=2500"
+ write$ newline$
"\providecommand{\url}[1]{\texttt{#1}}"
write$ newline$
"\providecommand{\urlprefix}{URL }"
write$ newline$
" \providecommand{\doi}{doi:\discretionary{}{}{}\begingroup \urlstyle{rm}\Url}\fi"
write$ newline$
+ "\expandafter\ifx\csname href\endcsname\relax"
+ write$ newline$
+ " \def\href#1#2{#2} \def\path#1{#1}\fi"
+ write$ newline$
}
EXECUTE {begin.bib}
+EXECUTE {init.doi.variables}
EXECUTE {init.state.consts}
ITERATE {call.type$}
FUNCTION {end.bib}
{ newline$
- "\end{thebibliography}" write$ newline$
+ "\hbadness=\originalhbadness"
+ write$ newline$
+ "\end{thebibliography}"
+ write$ newline$
}
EXECUTE {end.bib}
-%% End of customized bst file
-%%
-%% End of file `mjo.bst'.