From: Juergen Spitzmueller Date: Thu, 22 Mar 2018 22:37:19 +0000 (+0100) Subject: amend 1c623ffe8f2e34e X-Git-Tag: lyx-2.4.0dev-acb2ca7b~3667 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=6415d986ba32373d3c3915ec77473dfa2e2b7ad3;p=features.git amend 1c623ffe8f2e34e --- diff --git a/src/Buffer.cpp b/src/Buffer.cpp index 248826efe3..7024f974d5 100644 --- a/src/Buffer.cpp +++ b/src/Buffer.cpp @@ -2350,6 +2350,9 @@ BiblioInfo const & Buffer::bibInfo() const void Buffer::registerBibfiles(FileNamePairList const & bf) const { + // We register the bib files in the master buffer, + // if there is one, but also in every single buffer, + // in case a child is compiled alone. Buffer const * const tmp = masterBuffer(); if (tmp != this) tmp->registerBibfiles(bf); @@ -2423,6 +2426,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); @@ -2433,12 +2439,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 0e67483c99..ba45f691a3 100644 --- a/src/insets/InsetCitation.cpp +++ b/src/insets/InsetCitation.cpp @@ -552,6 +552,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");