From c8a715d855c8dbe9e511d37be37df6c6a9125983 Mon Sep 17 00:00:00 2001 From: Georg Baum Date: Sat, 12 Nov 2011 18:41:44 +0000 Subject: [PATCH] Fix "stray '}' in text" warnings: When parsing with FLAG_ITEM the braces need to occur in pairs. If you change something in tex2lyx please don't commit without running the tests and ensuring that no warnings or errors are written on stderr. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@40177 a592a061-630c-0410-9148-cb99ea01b6c8 --- src/tex2lyx/text.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index 9aec03e949..7b3baf52ea 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -897,6 +897,13 @@ void parse_box(Parser & p, ostream & os, unsigned outer_flags, // the inner env if (!inner_type.empty() && (inner_flags & FLAG_END)) active_environments.pop_back(); + + // Ensure that the end of the outer box is parsed correctly: + // The opening brace has been eaten by parse_outer_box() + if (!outer_type.empty() && (outer_flags & FLAG_ITEM)) { + outer_flags &= ~FLAG_ITEM; + outer_flags |= FLAG_BRACE_LAST; + } parse_text(p, os, outer_flags, outer, parent_context); if (outer_flags & FLAG_END) handle_ert(os, "\\end{" + outer_type + '}', @@ -3558,14 +3565,18 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, } //\makebox() is part of the picture environment and different from \makebox{} - //\makebox{} will be parsed by parse_box when bug 2956 is fixed + //\makebox{} will be parsed by parse_box else if (t.cs() == "makebox") { string arg = t.asInput(); if (p.next_token().character() == '(') { //the syntax is: \makebox(x,y)[position]{content} arg += p.getFullParentheseArg(); arg += p.getFullOpt(); - handle_ert(os, arg + p.get_token().asInput(), context); + eat_whitespace(p, os, context, false); + handle_ert(os, arg + '{', context); + eat_whitespace(p, os, context, false); + parse_text(p, os, FLAG_ITEM, outer, context); + handle_ert(os, "}", context); } else //the syntax is: \makebox[width][position]{content} parse_box(p, os, 0, FLAG_ITEM, outer, context, -- 2.39.5