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

Reply via email to