From: Juergen Spitzmueller Date: Thu, 22 Mar 2018 22:37:19 +0000 (+0100) Subject: amend 1c623ffe8f2e34e X-Git-Tag: 2.3.1~145 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=99094ca7c477090924ebd9657cfe7ffcae823a27;p=features.git amend 1c623ffe8f2e34e (cherry picked from commit 6415d986ba32373d3c3915ec77473dfa2e2b7ad3) --- diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 6dd1d89e5a..a25f91daa5 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -2467,6 +2467,9 @@ void Buffer::collectBibKeys(FileNameList & checkedFiles) const void Buffer::addBiblioInfo(BiblioInfo const & bin) const { + // We add the biblio info to the master buffer, + // if there is one, but also to every single buffer, + // in case a child is compiled alone. BiblioInfo & bi = d->bibinfo_; bi.mergeBiblioInfo(bin); @@ -2477,12 +2480,18 @@ void Buffer::addBiblioInfo(BiblioInfo const & bin) const } -void Buffer::addBibTeXInfo(docstring const & key, BibTeXInfo const & bi) const +void Buffer::addBibTeXInfo(docstring const & key, BibTeXInfo const & bin) const { - Buffer const * tmp = masterBuffer(); - BiblioInfo & masterbi = (tmp == this) ? - d->bibinfo_ : tmp->d->bibinfo_; - masterbi[key] = bi; + // We add the bibtex info to the master buffer, + // if there is one, but also to every single buffer, + // in case a child is compiled alone. + BiblioInfo & bi = d->bibinfo_; + bi[key] = bin; + + if (parent() != 0) { + BiblioInfo & masterbi = parent()->d->bibinfo_; + masterbi[key] = bin; + } } diff --git a/src/insets/InsetCitation.cpp b/src/insets/InsetCitation.cpp index 6217795ac0..11b8943786 100644 --- a/src/insets/InsetCitation.cpp +++ b/src/insets/InsetCitation.cpp @@ -545,6 +545,8 @@ void InsetCitation::forOutliner(docstring & os, size_t const, bool const) const // engine, e.g. \cite[]{} for the basic engine. void InsetCitation::latex(otexstream & os, OutputParams const & runparams) const { + // When this is a child compiled on its own, we use the childs + // own bibinfo, else the master's BiblioInfo const & bi = runparams.is_child ? buffer().masterBibInfo() : buffer().bibInfo(); docstring const key = getParam("key");