On Thu, Oct 19, 2006 at 08:54:37PM +0200, Georg Baum wrote: > Am Donnerstag, 19. Oktober 2006 20:33 schrieb Enrico Forestieri: > > If you do not use the GUI and write in mathed \bigl<space>abc > > then you get a red "bigl" followed by "abc". The file is correctly > > saved, but then it is not correctly reread, as the "a" gets swallowed. > > Now, the construct "\bigl a" gives an error in latex (only an allowed > > delimiter can follow \bigl), so you get an error when trying to latex > > the file in any case (either if it was correctly reread or not). > > > > If you feel uncomfortable with this, I will try to catch where the > problem > > is occurring. Should not be difficult. > > Yes, please fix that, because this causes data loss. The error is probably > in the else branch in this code in MathParser.C: > > if (l->inset == "big") { > skipSpaces(); > string const delim = getToken().asInput(); > if (InsetMathBig::isBigInsetDelim(delim)) > cell->push_back(MathAtom( > new InsetMathBig(t.cs(), delim))); > else { > cell->push_back(createInsetMath(t.cs())); > cell->push_back(createInsetMath(delim.substr(1))); > } > } > > > The substr(1) was meant to remove a backslash. I don't know why I did not > think of non-commands here.
Yes, I found that it is the culprit. However, I solved it by replacing the second cell->push_back() call in the else branch with putback(), simply. I tested it and it seems to work. -- Enrico