diff --git a/src/insets/InsetBibtex.cpp b/src/insets/InsetBibtex.cpp index 469429d036..1df99286be 100644 --- a/src/insets/InsetBibtex.cpp +++ b/src/insets/InsetBibtex.cpp @@ -1089,6 +1089,13 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const docstring const reflabel = buffer().B_("References"); + // Check that the bibliography is not empty, to ensure that the document is valid. + if (cites.empty()) { + xs << XMLStream::ESCAPE_NONE << ""; + xs << xml::CR(); + return; + } + // Tell BiblioInfo our purpose (i.e. generate HTML rich text). CiteItem ci; ci.context = CiteItem::Export; @@ -1100,7 +1107,8 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const xs << xml::CR(); xs << xml::StartTag("title"); xs << reflabel; - xs << xml::EndTag("title") << xml::CR(); + xs << xml::EndTag("title"); + xs << xml::CR(); // Translation between keys in each entry and DocBook tags. // IDs for publications; list: http://tdg.docbook.org/tdg/5.2/biblioid.html. @@ -1156,11 +1164,6 @@ void InsetBibtex::docbook(XMLStream & xs, OutputParams const &) const auto vit = cites.begin(); auto ven = cites.end(); - if (vit == ven) { - xs << XMLStream::ESCAPE_NONE << ""; - xs << xml::CR(); - } - for (; vit != ven; ++vit) { auto const biit = bibinfo.find(*vit); if (biit == bibinfo.end())