]> git.lyx.org Git - features.git/blobdiff - src/insets/InsetCitation.cpp
s/updateLabels/updateBuffer/g, per a suggestion of Abdel's.
[features.git] / src / insets / InsetCitation.cpp
index 8ea7da606d359c0ad206a260125e788ce8717bd2..3a8ae931b84c7c0572240c76cee59d90a8bc81dc 100644 (file)
@@ -456,7 +456,7 @@ docstring InsetCitation::screenLabel() const
 }
 
 
-void InsetCitation::updateLabels(ParIterator const &, UpdateType)
+void InsetCitation::updateBuffer(ParIterator const &, UpdateType)
 {
        CiteEngine const engine = buffer().params().citeEngine();
        if (cache.params == params() && cache.engine == engine)
@@ -469,7 +469,7 @@ void InsetCitation::updateLabels(ParIterator const &, UpdateType)
 
        docstring label = glabel;
        if (label.size() > maxLabelChars) {
-               label.erase(maxLabelChars-3);
+               label.erase(maxLabelChars - 3);
                label += "...";
        }
 
@@ -547,6 +547,7 @@ void InsetCitation::tocString(odocstream & os) const
 int InsetCitation::latex(odocstream & os, OutputParams const & runparams) const
 {
        CiteEngine cite_engine = buffer().params().citeEngine();
+       BiblioInfo const & bi = buffer().masterBibInfo();
        // FIXME UNICODE
        docstring const cite_str = from_utf8(
                asValidLatexCommand(getCmdName(), cite_engine));
@@ -563,7 +564,11 @@ int InsetCitation::latex(odocstream & os, OutputParams const & runparams) const
        else if (!after.empty())
                os << '[' << after << ']';
 
-       os << '{' << cleanupWhitespace(getParam("key")) << '}';
+       if (!bi.isBibtex(getParam("key")))
+               // escape chars with bibitems
+               os << '{' << escape(cleanupWhitespace(getParam("key"))) << '}';
+       else
+               os << '{' << cleanupWhitespace(getParam("key")) << '}';
 
        if (runparams.inulemcmd)
                os << "}";