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