Fix cache for getInfo() with/without richtext (fixes #8486).

This commit is contained in:
Julien Rioux 2013-01-08 16:20:52 +01:00
parent f6cd5ab863
commit 30f200a7e7
2 changed files with 11 additions and 3 deletions

View File

@ -577,8 +577,10 @@ docstring BibTeXInfo::expandFormat(string const & format,
docstring const & BibTeXInfo::getInfo(BibTeXInfo const * const xref,
Buffer const & buf, bool richtext) const
{
if (!info_.empty())
if (!richtext && !info_.empty())
return info_;
if (richtext && !info_richtext_.empty())
return info_richtext_;
if (!is_bibtex_) {
BibTeXInfo::const_iterator it = find(from_ascii("ref"));
@ -593,8 +595,12 @@ docstring const & BibTeXInfo::getInfo(BibTeXInfo const * const xref,
info_ = expandFormat(format, xref, counter, buf,
docstring(), docstring(), docstring(), false);
if (!info_.empty())
info_ = convertLaTeXCommands(info_);
if (!info_.empty()) {
info_richtext_ = convertLaTeXCommands(processRichtext(info_, true));
info_ = convertLaTeXCommands(processRichtext(info_, false));
if (richtext)
return info_richtext_;
}
return info_;
}

View File

@ -147,6 +147,8 @@ private:
docstring entry_type_;
/// a cache for getInfo()
mutable docstring info_;
/// a cache for getInfo(richtext = true)
mutable docstring info_richtext_;
///
docstring cite_number_;
///