* Bug 16215 fixed [m2sci]: mfile2sci converted ':' into mtlb(:) 04/21104/4
Samuel GOUGEON [Tue, 8 Oct 2019 23:26:16 +0000 (01:26 +0200)]
  http://bugzilla.scilab.org/16215

  Requirement: https://codereview.scilab.org/21087 must be merged first
  (to support a(3:end) in this test)

Change-Id: I3fa458f75af2c57a86a32d1b31714572cbfeecd9

scilab/CHANGES.md
scilab/modules/m2sci/macros/kernel/m2sci.sci
scilab/modules/m2sci/tests/nonreg_tests/bug_16215.tst [new file with mode: 0644]

index ef6a151..a0d30bd 100644 (file)
@@ -310,6 +310,7 @@ Bug Fixes
 * [#16208](http://bugzilla.scilab.org/show_bug.cgi?id=16208): Using 3D string matrix with old C-api gateways may crash Scilab.
 * [#16209](http://bugzilla.scilab.org/show_bug.cgi?id=16209): `grand` causes a freeze after several consecutive calls when using default base generator.
 * [#16210](http://bugzilla.scilab.org/show_bug.cgi?id=16210): The uicontrol.units = "normalized" property was not described.
+* [#16215](http://bugzilla.scilab.org/show_bug.cgi?id=16215): `mfile2sci` badly converted the colon `:` into `mtlb(:)`
 * [#16227](http://bugzilla.scilab.org/show_bug.cgi?id=16227): `WSCI` was not defined as environment variable and could not be used as `%WSCI%` in commands sent with `host()` or `unix_*()`.
 * [#16230](http://bugzilla.scilab.org/show_bug.cgi?id=16230): `MSWin>scilab --help` missed displaying some options like `-args..`, `-noatomsautoload`, etc.
 * [#16234](http://bugzilla.scilab.org/show_bug.cgi?id=16234): Airy functions were not available.
index 8fd3b28..be97479 100644 (file)
@@ -88,6 +88,8 @@ function [scitree,trad,txt,crp]=m2sci(mtlbtree,nam,Recmode,prettyprintoutput)
     varslist($+1)=M2scivar("%inf","inf",Infer(list(1,1),Type(Double,Real)))
     varslist($+1)=M2scivar("%pi","pi",Infer(list(1,1),Type(Double,Real)))
     varslist($+1)=M2scivar("%eps","eps",Infer(list(1,1),Type(Double,Real)))
+    varslist($+1)=M2scivar(":", ":", Infer(list(1,Unknown),Type(Unknown,Unknown)))
+    varslist($+1)=M2scivar("$", "$", Infer(list(1,1),Type(Double,Real)))
     varslist($+1)=M2scivar("varargout","%varargout",Infer(list(Unknown,Unknown),Type(Cell,Unknown)))
     varslist($+1)=M2scivar("%shortcircuit","%shortcircuit",Infer(list(1,1),Type(Double,Real))) // Used for short circuiting operators
 
diff --git a/scilab/modules/m2sci/tests/nonreg_tests/bug_16215.tst b/scilab/modules/m2sci/tests/nonreg_tests/bug_16215.tst
new file mode 100644 (file)
index 0000000..29cac39
--- /dev/null
@@ -0,0 +1,54 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2019 - Samuel GOUGEON
+//
+// This file is hereby licensed under the terms of the GNU GPL v2.0,
+// pursuant to article 5.3.4 of the CeCILL v.2.1.
+// This file was originally licensed under the terms of the CeCILL v2.1,
+// and continues to be available under such terms.
+// For more information, see the COPYING file which you should have received
+// along with this program.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+// <-- ENGLISH IMPOSED -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 16215 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/16215
+//
+// <-- Short Description -->
+// `mfile2sci` badly converted the colon `:` into `mtlb(:)`
+m = [
+"a = rand(3,5);"
+"a(1,:) = 6"
+"b = a(:,3)"
+"c = a(:)"
+"d(:) = 2"
+"e = 1:4"
+"f = 1:-2:10"
+"g = a(3:end)"
+];
+mfile = TMPDIR+"/bug_16215.m";
+mputl(m, mfile);
+mfile2sci(mfile, TMPDIR);
+ref = [
+""
+"// Display mode"
+"mode(0);"
+""
+"// Display warning for floating point exception"
+"ieee(1);"
+""
+"a = rand(3,5);"
+"a(1,:) = 6"
+"b = a(:,3)"
+"c = a(:)"
+"d(1,:) = 2"
+"e = 1:4"
+"f = 1:-2:10"
+"g = a(3:$)"
+]
+assert_checkequal(mgetl(TMPDIR+"/bug_16215.sci"), ref);