X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetCitation.cpp;h=0335b9c771d9b21a3b8231803cdedebae657e232;hb=a6b07608d8e9de24383d3ebaec20b6b265ed9314;hp=3fa824522417bb651abc0e9002b721db5feaa4d7;hpb=a1da60642c0541b6ebac85dd8b64de8ff993c256;p=features.git
diff --git a/src/insets/InsetCitation.cpp b/src/insets/InsetCitation.cpp
index 3fa8245224..0335b9c771 100644
--- a/src/insets/InsetCitation.cpp
+++ b/src/insets/InsetCitation.cpp
@@ -322,8 +322,8 @@ inline docstring wrapCitation(docstring const & key,
return content;
// we have to do the escaping here, because we will ultimately
// write this as a raw string, so as not to escape the tags.
- return "" +
- html::htmlize(content, XHTMLStream::ESCAPE_ALL) + "";
+ return "" +
+ xml::xmlize(content, XMLStream::ESCAPE_ALL) + "";
}
} // anonymous namespace
@@ -369,17 +369,28 @@ docstring InsetCitation::complexLabel(bool for_xhtml) const
BiblioInfo const & biblist = buf.masterBibInfo();
// mark broken citations
- if (biblist.empty() || biblist.find(key) == biblist.end())
- setBroken(true);
- else
- setBroken(false);
+ setBroken(false);
- if (biblist.empty())
+ if (biblist.empty()) {
+ setBroken(true);
return docstring();
+ }
if (key.empty())
return _("No citations selected!");
+ // check all citations
+ // we only really want the last 'false', to suppress trimming, but
+ // we need to give the other defaults, too, to set it.
+ vector keys =
+ getVectorFromString(key, from_ascii(","), false, false);
+ for (auto const & k : keys) {
+ if (biblist.find(k) == biblist.end()) {
+ setBroken(true);
+ break;
+ }
+ }
+
string cite_type = getCmdName();
bool const uppercase = isUpperCase(cite_type[0]);
if (uppercase)
@@ -399,10 +410,6 @@ docstring InsetCitation::complexLabel(bool for_xhtml) const
buffer().params().documentClass().addCiteMacro("!textafter", to_utf8(after));
*/
docstring label;
- // we only really want the last 'false', to suppress trimming, but
- // we need to give the other defaults, too, to set it.
- vector keys =
- getVectorFromString(key, from_ascii(","), false, false);
CitationStyle cs = getCitationStyle(buffer().masterParams(),
cite_type, buffer().masterParams().citeStyles());
bool const qualified = cs.hasQualifiedList
@@ -547,14 +554,14 @@ int InsetCitation::docbook(odocstream & os, OutputParams const &) const
}
-docstring InsetCitation::xhtml(XHTMLStream & xs, OutputParams const &) const
+docstring InsetCitation::xhtml(XMLStream & xs, OutputParams const &) const
{
string const & cmd = getCmdName();
if (cmd == "nocite")
return docstring();
// have to output this raw, because generateLabel() will include tags
- xs << XHTMLStream::ESCAPE_NONE << generateLabel(true);
+ xs << XMLStream::ESCAPE_NONE << generateLabel(true);
return docstring();
}