]> git.lyx.org Git - lyx.git/blobdiff - src/mathed/MathParser.cpp
Preserve \inputencoding value when switching to non-TeX fonts.
[lyx.git] / src / mathed / MathParser.cpp
index c41a6cfbd7b9ceab923d0b59badf7a868d755fe1..3449cff5ac426fe85eb8f5750a716e68a6314878 100644 (file)
@@ -946,21 +946,6 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags,
                        parse(ar, FLAG_BRACE_LAST, mode);
                        // do not create a BraceInset if they were written by LyX
                        // this helps to keep the annoyance of  "a choose b"  to a minimum
-                       InsetMathBrace const * mb;
-                       InsetMathChar const * mc;
-                       for (size_type i = 0; i < ar.size(); ++i) {
-                               mb = ar[i]->asBraceInset();
-                               mc = mb && mb->cell(0).size() > 1 && mb->cell(0)[0]->asMacro()
-                                       ? mb->cell(0)[1]->asCharInset(): 0;
-                               if (mc && mc->getChar() == '[') {
-                                       // Remove the BraceInset around a macro
-                                       // with optional arguments. It will be
-                                       // automatically reinserted on write.
-                                       MathData md = mb->cell(0);
-                                       ar.erase(i);
-                                       ar.insert(i,md);
-                               }
-                       }
                        if (ar.size() == 1 && ar[0]->extraBraces())
                                cell->append(ar);
                        else
@@ -1619,7 +1604,7 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags,
                                docstring const halign = parse_verbatim_item();
                                cell->push_back(MathAtom(new InsetMathArray(buf, name,
                                        InsetMathGrid::guessColumns(halign), 1, (char)valign[0], halign)));
-                               parse2(cell->back(), FLAG_END, mode, false);
+                               parse2(cell->back(), FLAG_END, InsetMath::MATH_MODE, false);
                        }
 
                        else if (name == "tabular") {
@@ -2096,7 +2081,7 @@ bool Parser::parse1(InsetMathGrid & grid, unsigned flags,
                                                        Encodings::MATH_CMD | Encodings::TEXT_CMD,
                                                        is_combining, termination);
                                        }
-                                       if (c) {
+                                       if (c && buf->params().encoding().encodable(c)) {
                                                if (termination) {
                                                        if (nextToken().cat() == catBegin) {
                                                                getToken();