Fix bug #7682 for branch. Problem was that we were finding the children

using the BufferList, which knows nothing about clones.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/branches/BRANCH_2_0_X@39329 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Richard Heck 2011-07-16 13:50:02 +00:00
parent 11a6156cf3
commit c45d7b69bc
3 changed files with 13 additions and 9 deletions

View File

@ -533,31 +533,34 @@ docstring Encodings::fromLaTeXCommand(docstring const & cmd, docstring & rem,
} }
void Encodings::initUnicodeMath(Buffer const & buffer, bool clear_sets) void Encodings::initUnicodeMath(Buffer const & buffer, bool for_master)
{ {
#ifdef TEX2LYX #ifdef TEX2LYX
// The code below is not needed in tex2lyx and requires additional stuff // The code below is not needed in tex2lyx and requires additional stuff
(void)buffer; (void)buffer;
(void)clear_sets; (void)for_master;
#else #else
if (clear_sets) { if (for_master) {
mathcmd.clear(); mathcmd.clear();
textcmd.clear(); textcmd.clear();
mathsym.clear(); mathsym.clear();
} }
// Check master // Check this buffer
Inset & inset = buffer.inset(); Inset & inset = buffer.inset();
InsetIterator it = inset_iterator_begin(inset); InsetIterator it = inset_iterator_begin(inset);
InsetIterator const end = inset_iterator_end(inset); InsetIterator const end = inset_iterator_end(inset);
for (; it != end; ++it) for (; it != end; ++it)
it->initUnicodeMath(); it->initUnicodeMath();
if (!for_master)
return;
// Check children // Check children
BufferList::iterator bit = theBufferList().begin(); ListOfBuffers blist = buffer.getDescendents();
BufferList::iterator const bend = theBufferList().end(); ListOfBuffers::const_iterator bit = blist.begin();
ListOfBuffers::const_iterator const bend = blist.end();
for (; bit != bend; ++bit) for (; bit != bend; ++bit)
if (buffer.isChild(*bit))
initUnicodeMath(**bit, false); initUnicodeMath(**bit, false);
#endif #endif
} }

View File

@ -220,7 +220,7 @@ public:
/** /**
* Initialize mathcmd, textcmd, and mathsym sets. * Initialize mathcmd, textcmd, and mathsym sets.
*/ */
static void initUnicodeMath(Buffer const & buffer, bool clear_sets = true); static void initUnicodeMath(Buffer const & buffer, bool for_master = true);
/** /**
* If \p c cannot be encoded in the given \p encoding, convert * If \p c cannot be encoded in the given \p encoding, convert
* it to something that LaTeX can understand in mathmode. * it to something that LaTeX can understand in mathmode.

View File

@ -154,6 +154,7 @@ What's new
- Fix output of chapter references when using prettyref. - Fix output of chapter references when using prettyref.
- Fix output of unicode math from within child documents (bug 7682).
* USER INTERFACE * USER INTERFACE