From c45d7b69bc9340202da1c8d32d5fa8f076d8388f Mon Sep 17 00:00:00 2001 From: Richard Heck Date: Sat, 16 Jul 2011 13:50:02 +0000 Subject: [PATCH] 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 --- src/Encoding.cpp | 19 +++++++++++-------- src/Encoding.h | 2 +- status.20x | 1 + 3 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/Encoding.cpp b/src/Encoding.cpp index 7900aed06f..a9c845b28d 100644 --- a/src/Encoding.cpp +++ b/src/Encoding.cpp @@ -533,32 +533,35 @@ 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 // The code below is not needed in tex2lyx and requires additional stuff (void)buffer; - (void)clear_sets; + (void)for_master; #else - if (clear_sets) { + if (for_master) { mathcmd.clear(); textcmd.clear(); mathsym.clear(); } - // Check master + // Check this buffer Inset & inset = buffer.inset(); InsetIterator it = inset_iterator_begin(inset); InsetIterator const end = inset_iterator_end(inset); for (; it != end; ++it) it->initUnicodeMath(); + if (!for_master) + return; + // Check children - BufferList::iterator bit = theBufferList().begin(); - BufferList::iterator const bend = theBufferList().end(); + ListOfBuffers blist = buffer.getDescendents(); + ListOfBuffers::const_iterator bit = blist.begin(); + ListOfBuffers::const_iterator const bend = blist.end(); for (; bit != bend; ++bit) - if (buffer.isChild(*bit)) - initUnicodeMath(**bit, false); + initUnicodeMath(**bit, false); #endif } diff --git a/src/Encoding.h b/src/Encoding.h index 1f367366a8..bed6aa3810 100644 --- a/src/Encoding.h +++ b/src/Encoding.h @@ -220,7 +220,7 @@ public: /** * 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 * it to something that LaTeX can understand in mathmode. diff --git a/status.20x b/status.20x index 3d2d0a6f5a..3c86fa10f4 100644 --- a/status.20x +++ b/status.20x @@ -154,6 +154,7 @@ What's new - Fix output of chapter references when using prettyref. +- Fix output of unicode math from within child documents (bug 7682). * USER INTERFACE -- 2.39.5