This commit is contained in:
Juergen Spitzmueller 2018-03-22 23:37:19 +01:00
parent 1c623ffe8f
commit 6415d986ba
2 changed files with 19 additions and 5 deletions

View File

@ -2350,6 +2350,9 @@ BiblioInfo const & Buffer::bibInfo() const
void Buffer::registerBibfiles(FileNamePairList const & bf) 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(); Buffer const * const tmp = masterBuffer();
if (tmp != this) if (tmp != this)
tmp->registerBibfiles(bf); tmp->registerBibfiles(bf);
@ -2423,6 +2426,9 @@ void Buffer::collectBibKeys(FileNameList & checkedFiles) const
void Buffer::addBiblioInfo(BiblioInfo const & bin) 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_; BiblioInfo & bi = d->bibinfo_;
bi.mergeBiblioInfo(bin); 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(); // We add the bibtex info to the master buffer,
BiblioInfo & masterbi = (tmp == this) ? // if there is one, but also to every single buffer,
d->bibinfo_ : tmp->d->bibinfo_; // in case a child is compiled alone.
masterbi[key] = bi; BiblioInfo & bi = d->bibinfo_;
bi[key] = bin;
if (parent() != 0) {
BiblioInfo & masterbi = parent()->d->bibinfo_;
masterbi[key] = bin;
}
} }

View File

@ -552,6 +552,8 @@ void InsetCitation::forOutliner(docstring & os, size_t const, bool const) const
// engine, e.g. \cite[]{} for the basic engine. // engine, e.g. \cite[]{} for the basic engine.
void InsetCitation::latex(otexstream & os, OutputParams const & runparams) const 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 BiblioInfo const & bi = runparams.is_child
? buffer().masterBibInfo() : buffer().bibInfo(); ? buffer().masterBibInfo() : buffer().bibInfo();
docstring const key = getParam("key"); docstring const key = getParam("key");