]> git.lyx.org Git - lyx.git/blobdiff - src/insets/insetcite.C
* BufferParams:
[lyx.git] / src / insets / insetcite.C
index 103e44160fef0a4d0d8e28a7c69339e16e24da76..90d83728c7364aa92380545f2a1ba8b639a33840 100644 (file)
@@ -96,7 +96,7 @@ docstring const getNatbibLabel(Buffer const & buffer,
        }
 
        // build the keylist only if the bibfiles have been changed
-       if (cached_keys.empty() || bibfileStatus.empty() || changed) {
+       if (cached_keys[&buffer].empty() || bibfileStatus.empty() || changed) {
                typedef vector<std::pair<string, docstring> > InfoType;
                InfoType bibkeys;
                buffer.fillWithBibKeys(bibkeys);
@@ -317,7 +317,7 @@ docstring const InsetCitation::generateLabel(Buffer const & buffer) const
        docstring const after  = getParam("after");
 
        docstring label;
-       biblio::CiteEngine const engine = buffer.params().cite_engine;
+       biblio::CiteEngine const engine = buffer.params().getEngine();
        if (engine != biblio::ENGINE_BASIC) {
                // FIXME UNICODE
                label = getNatbibLabel(buffer, getCmdName(), to_utf8(getParam("key")),
@@ -335,7 +335,7 @@ docstring const InsetCitation::generateLabel(Buffer const & buffer) const
 
 docstring const InsetCitation::getScreenLabel(Buffer const & buffer) const
 {
-       biblio::CiteEngine const engine = biblio::getEngine(buffer);
+       biblio::CiteEngine const engine = buffer.params().getEngine();
        if (cache.params == params() && cache.engine == engine)
                return cache.screen_label;
 
@@ -365,12 +365,16 @@ docstring const InsetCitation::getScreenLabel(Buffer const & buffer) const
 int InsetCitation::plaintext(Buffer const & buffer, odocstream & os,
                              OutputParams const &) const
 {
+       docstring str;
+
        if (cache.params == params() &&
-           cache.engine == biblio::getEngine(buffer))
-               os << cache.generated_label;
+           cache.engine == buffer.params().getEngine())
+               str = cache.generated_label;
        else
-               os << generateLabel(buffer);
-       return 0;
+               str = generateLabel(buffer);
+
+       os << str;
+       return str.size();
 }
 
 
@@ -396,7 +400,8 @@ docstring const cleanupWhitespace(docstring const & citelist)
 // end anon namyspace
 }
 
-int InsetCitation::docbook(Buffer const &, odocstream & os, OutputParams const &) const
+int InsetCitation::docbook(Buffer const &, odocstream & os,
+                           OutputParams const &) const
 {
        os << "<citation>"
            << cleanupWhitespace(getParam("key"))
@@ -417,9 +422,9 @@ int InsetCitation::textString(Buffer const & buf, odocstream & os,
 // citations and then changes his mind, turning natbib support off. The output
 // should revert to \cite[]{}
 int InsetCitation::latex(Buffer const & buffer, odocstream & os,
-                        OutputParams const &) const
+                         OutputParams const &) const
 {
-       biblio::CiteEngine const cite_engine = buffer.params().cite_engine;
+       biblio::CiteEngine cite_engine = buffer.params().getEngine();
        // FIXME UNICODE
        docstring const cite_str = from_utf8(
                biblio::asValidLatexCommand(getCmdName(), cite_engine));
@@ -441,7 +446,7 @@ int InsetCitation::latex(Buffer const & buffer, odocstream & os,
 
 void InsetCitation::validate(LaTeXFeatures & features) const
 {
-       switch (features.bufferParams().cite_engine) {
+       switch (features.bufferParams().getEngine()) {
        case biblio::ENGINE_BASIC:
                break;
        case biblio::ENGINE_NATBIB_AUTHORYEAR: