]> git.lyx.org Git - features.git/commitdiff
Reintroduce workaround due to nested math hulls as it is not
authorEnrico Forestieri <forenr@lyx.org>
Tue, 16 Jun 2009 21:22:32 +0000 (21:22 +0000)
committerEnrico Forestieri <forenr@lyx.org>
Tue, 16 Jun 2009 21:22:32 +0000 (21:22 +0000)
guaranteed that LyX is always able to replace $...$ constructs
with \ensuremath{...}.

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@30145 a592a061-630c-0410-9148-cb99ea01b6c8

src/mathed/InsetMathHull.cpp

index b773b088c637a25884c938f94f35685ebe8ebc78..259152000d950abd9ca11ff41c558ba5ac53f872 100644 (file)
@@ -450,7 +450,14 @@ void InsetMathHull::drawT(TextPainter & pain, int x, int y) const
 static docstring latexString(InsetMathHull const & inset)
 {
        odocstringstream ls;
-       Encoding const * encoding = &(inset.buffer().params().encoding());
+       // This has to be static, because a preview snippet or a math
+       // macro containing math in text mode (such as $\text{$\phi$}$ or
+       // \newcommand{\xxx}{\text{$\phi$}}) gets processed twice. The
+       // first time as a whole, and the second time only the inner math.
+       // In this last case inset.buffer() would be invalid.
+       static Encoding const * encoding = 0;
+       if (inset.isBufferValid())
+               encoding = &(inset.buffer().params().encoding());
        WriteStream wi(ls, false, true, false, encoding);
        inset.write(wi);
        return ls.str();