* src/mathed/MathParser.C

(Parser::parse1): Fix special handling of {}-bases to not destroy
	\xxx{\vec{H}}_0 where \xxx is an unknown command


git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@15712 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
Georg Baum 2006-11-03 15:05:14 +00:00
parent 13ce016c72
commit 4689b5eea3

View File

@ -816,9 +816,13 @@ void Parser::parse1(InsetMathGrid & grid, unsigned flags,
cell->back() = MathAtom(new InsetMathScript(cell->back(), up));
InsetMathScript * p = cell->back().nucleus()->asScriptInset();
// special handling of {}-bases
// Test for empty brace inset, otherwise \xxx{\vec{H}}_{0}
// where \xxx is an unknown command gets misparsed to
// \xxx\vec{H}_{0}, and that is invalid LaTeX.
// is this always correct?
if (p->nuc().size() == 1
&& p->nuc().back()->asBraceInset())
if (p->nuc().size() == 1 &&
p->nuc().back()->asBraceInset() &&
p->nuc().back()->asBraceInset()->cell(0).empty())
p->nuc() = p->nuc().back()->asNestInset()->cell(0);
parse(p->cell(p->idxOfScript(up)), FLAG_ITEM, mode);
if (limits) {