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

This commit is contained in:
Julien Rioux 2013-01-08 16:24:11 +01:00
parent fc42f73866
commit 4c904262b5
3 changed files with 13 additions and 2 deletions

View File

@ -524,8 +524,10 @@ docstring BibTeXInfo::expandFormat(string const & format,
docstring const & BibTeXInfo::getInfo(BibTeXInfo const * const xref, docstring const & BibTeXInfo::getInfo(BibTeXInfo const * const xref,
Buffer const & buf, bool richtext) const Buffer const & buf, bool richtext) const
{ {
if (!info_.empty()) if (!richtext && !info_.empty())
return info_; return info_;
if (richtext && !info_richtext_.empty())
return info_richtext_;
if (!is_bibtex_) { if (!is_bibtex_) {
BibTeXInfo::const_iterator it = find(from_ascii("ref")); BibTeXInfo::const_iterator it = find(from_ascii("ref"));
@ -536,10 +538,15 @@ docstring const & BibTeXInfo::getInfo(BibTeXInfo const * const xref,
DocumentClass const & dc = buf.params().documentClass(); DocumentClass const & dc = buf.params().documentClass();
string const & format = dc.getCiteFormat(to_utf8(entry_type_)); string const & format = dc.getCiteFormat(to_utf8(entry_type_));
int counter = 0; int counter = 0;
info_ = expandFormat(format, xref, counter, buf, richtext); info_ = expandFormat(format, xref, counter, buf, false);
info_richtext_ = expandFormat(format, xref, counter, buf, true);
if (!info_.empty()) if (!info_.empty())
info_ = convertLaTeXCommands(info_); info_ = convertLaTeXCommands(info_);
if (!info_richtext_.empty())
info_richtext_ = convertLaTeXCommands(info_richtext_);
if (richtext)
return info_richtext_;
return info_; return info_;
} }

View File

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

View File

@ -92,6 +92,8 @@ What's new
- In order to avoid NFSS problems with certain font packages, load the needed - In order to avoid NFSS problems with certain font packages, load the needed
font encodings when inserting cyrillic and/or greek characters (bug 8467). font encodings when inserting cyrillic and/or greek characters (bug 8467).
- Fix the output of LyXHTML bibliography with richtext (bug 8486).
* USER INTERFACE * USER INTERFACE