* Bug 12719 fixed: now A(%s) raises an invalid index error 21/21521/4
mottelet [Thu, 2 Jul 2020 09:44:10 +0000 (11:44 +0200)]
http://bugzilla.scilab.org/show_bug.cgi?id=12719

Change-Id: If67e74911d449584fbb67854fc975cf9408c3254

scilab/CHANGES.md
scilab/modules/ast/src/cpp/types/types_tools.cpp
scilab/modules/ast/tests/nonreg_tests/bug_12719.tst [new file with mode: 0644]

index 3a5896b..b1c808c 100644 (file)
@@ -280,6 +280,7 @@ Bug Fixes
 * [#10476](https://bugzilla.scilab.org/10476): From `browsevar`, displaying the content of lists, structures, cells, or other custom tlists or mlists was not possible.
 * [#12516](https://bugzilla.scilab.org/12516): From `browsevar`, clicking on any graphical handle did not edit its figure with `ged`.
 * [#12532](https://bugzilla.scilab.org/12532): From `browsevar`, clicking on any function did not edit it with `edit`. The content of libraries could not be displayed either.
+* [#12719](https://bugzilla.scilab.org/12719): `A(%s)` gave the same result as `A($)`.
 * [#12889](https://bugzilla.scilab.org/12889): In the help browser, add a menu allowing to select the language of help pages, regardless of the language of the session.
 * [#13593](https://bugzilla.scilab.org/13593): `csvRead()` did not take the `range` into account when `header` is provided. `[]` could not be used as default `range`.
 * [#14873](https://bugzilla.scilab.org/14873): `setfield` page: The output and the 6.0 history were documented only on the en_US version. The input was wrongly restricted to matrices, while any Scilab object is acceptable. The specific role of `setfield` for mlists was not really described nor illustrated. The example did not include any call to setfield.
index cff2747..bd53ea0 100644 (file)
@@ -681,7 +681,7 @@ int checkIndexesArguments(InternalType* _pRef, typed_list* _pArgsIn, typed_list*
             {
             }
         }
-        else if (pIT->isPoly())
+        else if (pIT->isPoly() && pIT->getAs<types::Polynom>()->getVariableName() == L"$")
         {
             //$
             Polynom* pMP = pIT->getAs<types::Polynom>();
diff --git a/scilab/modules/ast/tests/nonreg_tests/bug_12719.tst b/scilab/modules/ast/tests/nonreg_tests/bug_12719.tst
new file mode 100644 (file)
index 0000000..821182f
--- /dev/null
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2020 - St├ęphane MOTTELET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 12719 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/12719
+//
+// <-- Short Description -->
+//A(%s) gives the same result as A($)
+
+A = [1 2;3 4];
+assert_checkerror("A(%s)",msprintf(_("Invalid index.\n")))