commit 99094ca7c477090924ebd9657cfe7ffcae823a27
Author: Juergen Spitzmueller <[email protected]>
Date: Thu Mar 22 23:37:19 2018 +0100
amend 1c623ffe8f2e34e
(cherry picked from commit 6415d986ba32373d3c3915ec77473dfa2e2b7ad3)
---
src/Buffer.cpp | 19 ++++++++++++++-----
src/insets/InsetCitation.cpp | 2 ++
2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/src/Buffer.cpp b/src/Buffer.cpp
index 6dd1d89..a25f91d 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 6217795..11b8943 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");