]> git.lyx.org Git - features.git/commitdiff
Fix LFUN_MATH_AMS_MATRIX: it was possible to generate corrupt documents (part of...
authorJuergen Spitzmueller <spitz@lyx.org>
Mon, 10 Feb 2014 08:23:17 +0000 (09:23 +0100)
committerJuergen Spitzmueller <spitz@lyx.org>
Mon, 10 Feb 2014 08:23:17 +0000 (09:23 +0100)
src/LyXAction.cpp
src/mathed/InsetMathNest.cpp

index a214cfe7bc4e41189de9b32ba1842dc452842ee9..d100905f6852c8679628e58ad063520eb7b4c03e 100644 (file)
@@ -1732,10 +1732,12 @@ void LyXAction::init()
                { LFUN_MATH_MATRIX, "math-matrix", Noop, Math },
 /*!
  * \var lyx::FuncCode lyx::LFUN_MATH_AMS_MATRIX
- * \li Action: Inserts a matrix.
+ * \li Action: Inserts an extended matrix as provided by the amsmath package.
  * \li Syntax: math-matrix <COLS> <ROWS> [<DECORATION>]
  * \li Params: <DECORATION>: Decoration determines the LaTeX name of the matrix
-                             that should be created.
+                             that should be created. Possible values include
+                             pmatrix, bmatrix, Bmatrix, vmatrix, Vmatrix and
+                             matrix. The default is 'matrix'.
  * \li Sample: math-ams-matrix 3 3 bmatrix
  * \endvar
  */
index b9a2ed4098be91bf59c34b537ad41fc19fe64927..3d31b9ac79930aa5e3d3e220bf73a536113352a1 100644 (file)
@@ -1079,13 +1079,19 @@ void InsetMathNest::doDispatch(Cursor & cur, FuncRequest & cmd)
                cur.recordUndo();
                unsigned int m = 1;
                unsigned int n = 1;
-               docstring name;
+               docstring name = from_ascii("matrix");
                idocstringstream is(cmd.argument());
                is >> m >> n >> name;
                if (m < 1)
                        m = 1;
                if (n < 1)
                        n = 1;
+               // check if we have a valid decoration
+               if (name != "pmatrix" && name != "bmatrix"
+                       && name != "Bmatrix" && name != "vmatrix"
+                       && name != "Vmatrix" && name != "matrix")
+                       name = from_ascii("matrix");
+               
                cur.niceInsert(
                        MathAtom(new InsetMathAMSArray(buffer_, name, m, n)));
                break;