From 5484edda2203efe19d39b1ce95aa99528b2cb6da Mon Sep 17 00:00:00 2001 From: Enrico Forestieri Date: Mon, 19 Oct 2009 23:11:36 +0000 Subject: [PATCH] Fix bug #6284: missing space between # and text in math mode when using \mbox git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@31680 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/mathed/MathParser.cpp | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/mathed/MathParser.cpp b/src/mathed/MathParser.cpp index d259a19332..91baa45cd7 100644 --- a/src/mathed/MathParser.cpp +++ b/src/mathed/MathParser.cpp @@ -1777,8 +1777,15 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags, if (mode == InsetMath::TEXT_MODE) { int num_tokens = 0; docstring cmd = prevToken().asInput(); - skipSpaces(); + // Check whether we have a macro + // argument, taking into account that + // it may come after some spaces. CatCode cat = nextToken().cat(); + while (cat == catSpace) { + getToken(); + ++num_tokens; + cat = nextToken().cat(); + } if (cat == catBegin) { int count = 0; while (good() && (count || cat != catEnd)) { @@ -1790,6 +1797,12 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags, else if (cat == catEnd) --count; } + } else { + // No macro argument is present, + // so put back the spaces that + // we may have read. + for (; num_tokens; --num_tokens) + putback(); } bool is_combining; char_type c =