]> git.lyx.org Git - features.git/commitdiff
DocBook: make empty bibliographies empty.
authorThibaut Cuvelier <tcuvelier@lyx.org>
Thu, 26 Nov 2020 05:52:21 +0000 (06:52 +0100)
committerThibaut Cuvelier <tcuvelier@lyx.org>
Thu, 26 Nov 2020 05:55:49 +0000 (06:55 +0100)
Even though this means that there is no output tag.

src/insets/InsetBibtex.cpp

index 469429d0364ead9f6b4e7cc56dc919e58b3be7e3..1df99286bebc9951e61dca925d710a23ebf30451 100644 (file)
@@ -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 << "<!-- The bibliography is empty! -->";
+               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 << "<!-- No entry in the bibliography. -->";
-               xs << xml::CR();
-       }
-
        for (; vit != ven; ++vit) {
                auto const biit = bibinfo.find(*vit);
                if (biit == bibinfo.end())