fix parser bug

git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@4856 a592a061-630c-0410-9148-cb99ea01b6c8
This commit is contained in:
André Pönitz 2002-08-05 06:39:33 +00:00
parent 283f8347a8
commit f72aef6cb3

View File

@ -564,13 +564,13 @@ void Parser::parse1(MathGridInset & grid, unsigned flags,
if (flags & FLAG_OPTION) { if (flags & FLAG_OPTION) {
if (t.cat() == catOther && t.character() == '[') { if (t.cat() == catOther && t.character() == '[') {
// skip the bracket and collect everything to the closing bracket MathArray ar;
flags |= FLAG_BRACK_LAST; parse(ar, FLAG_BRACK_LAST, mathmode);
continue; cell->append(ar);
} } else {
// no option found, put back token and we are done // no option found, put back token and we are done
putback(); putback();
}
return; return;
} }
@ -665,8 +665,10 @@ void Parser::parse1(MathGridInset & grid, unsigned flags,
limits = 0; limits = 0;
} }
else if (t.character() == ']' && (flags & FLAG_BRACK_LAST)) else if (t.character() == ']' && (flags & FLAG_BRACK_LAST)) {
lyxerr << "finished reading option\n";
return; return;
}
else if (t.cat() == catOther) else if (t.cat() == catOther)
cell->push_back(MathAtom(new MathCharInset(t.character()))); cell->push_back(MathAtom(new MathCharInset(t.character())));
@ -842,6 +844,8 @@ void Parser::parse1(MathGridInset & grid, unsigned flags,
else if (t.cs() == "sqrt") { else if (t.cs() == "sqrt") {
MathArray ar; MathArray ar;
parse(ar, FLAG_OPTION, mathmode); parse(ar, FLAG_OPTION, mathmode);
lyxerr << "read option: " << ar << endl;
dump();
if (ar.size()) { if (ar.size()) {
cell->push_back(MathAtom(new MathRootInset)); cell->push_back(MathAtom(new MathRootInset));
cell->back()->cell(0) = ar; cell->back()->cell(0) = ar;