bug 12968: Cannot save variable named 'temp' 58/13358/2
Antoine ELIAS [Wed, 11 Dec 2013 11:16:16 +0000 (12:16 +0100)]
Change-Id: I8e735b0150ca64440f8f2f9446739bd72ca035ff

scilab/CHANGES_5.5.X
scilab/modules/io/macros/%_save.sci
scilab/modules/io/tests/nonreg_tests/bug_12968.dia.ref [new file with mode: 0644]
scilab/modules/io/tests/nonreg_tests/bug_12968.tst [new file with mode: 0644]

index 5fce95b..b615a38 100644 (file)
@@ -207,6 +207,8 @@ Scilab Bug Fixes
 
 * Bug #12963 fixed - drawaxis did not place the axis correctly.
 
+* Bug #12968 fixed - Cannot save variable named 'temp'.
+
 * Bug #12971 fixed - getURL downloaded file name was wrong.
 
 * Bug #12973 fixed - Exception occuring when clicking on a figure at creation fixed.
index 116b58c..a277ec8 100644 (file)
@@ -981,30 +981,30 @@ function [] = %_save(%__filename__, varargin)
             continue;
         end
 
-        temp = evstr(varargin(%__i__));
+        %__temp__ = evstr(varargin(%__i__));
 
-        if isList(temp) then
+        if isList(%__temp__) then
             //list container
-            value = inspectList(temp);
+            value = inspectList(%__temp__);
             //update
             execstr(varargin(%__i__) + " = value");
-        elseif typeof(temp) == "handle" then
-            if ~is_handle_valid(temp) then // Invalid handle ignored
+        elseif typeof(%__temp__) == "handle" then
+            if ~is_handle_valid(%__temp__) then // Invalid handle ignored
                 warning(oldMode);
                 warning(msprintf(gettext("%s: handle no more valid ignored.\n"), "save"));
                 warning("off");
                 varargin(%__i__) = null();
             else //convert handle to tlist
-                value = extractMatrixHandle(temp);
+                value = extractMatrixHandle(%__temp__);
                 //update
                 execstr(varargin(%__i__) + " = value");
             end
-        elseif isMacro(temp) | isCompiledMacro(temp) then
+        elseif isMacro(%__temp__) | isCompiledMacro(%__temp__) then
             //convert macro to tlist
-            value = extractMacro(temp, varargin(%__i__));
+            value = extractMacro(%__temp__, varargin(%__i__));
             //update
             execstr(varargin(%__i__) + " = value");
-        elseif type(temp) == 14 then //library, must not be save
+        elseif type(%__temp__) == 14 then //library, must not be save
             varargin(%__i__) = null();
         end
     end
diff --git a/scilab/modules/io/tests/nonreg_tests/bug_12968.dia.ref b/scilab/modules/io/tests/nonreg_tests/bug_12968.dia.ref
new file mode 100644 (file)
index 0000000..04e7d72
--- /dev/null
@@ -0,0 +1,39 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS
+// Copyright (C) 2013 - Test case - Luc GABRIEL
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12968 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12968
+//
+// <-- Short Description -->
+//  Cannot save varaible with name "temp"
+temp = 0:10;
+tempRef = temp;
+save(TMPDIR + "/save.bin", "temp");
+clear temp
+load(TMPDIR + "/save.bin");
+assert_checkequal(temp, tempRef);
+temp = 0:10;
+dens = 10:-1:0;
+tempRef = temp;
+densRef = dens;
+save(TMPDIR + "/save.bin", "temp", "dens");
+clear temp dens
+load(TMPDIR + "/save.bin");
+assert_checkequal(temp, tempRef);
+assert_checkequal(dens, densRef);
+temp = 0:10;
+dens = 10:-1:0;
+tempRef = temp;
+densRef = dens;
+save(TMPDIR + "/save.bin", "dens", "temp");
+clear temp dens
+load(TMPDIR + "/save.bin");
+assert_checkequal(temp, tempRef);
+assert_checkequal(dens, densRef);
diff --git a/scilab/modules/io/tests/nonreg_tests/bug_12968.tst b/scilab/modules/io/tests/nonreg_tests/bug_12968.tst
new file mode 100644 (file)
index 0000000..cbf9425
--- /dev/null
@@ -0,0 +1,42 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Antoine ELIAS
+// Copyright (C) 2013 - Test case - Luc GABRIEL
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- Non-regression test for bug 12968 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12968
+//
+// <-- Short Description -->
+//  Cannot save varaible with name "temp"
+
+temp = 0:10;
+tempRef = temp;
+save(TMPDIR + "/save.bin", "temp");
+clear temp
+load(TMPDIR + "/save.bin");
+assert_checkequal(temp, tempRef);
+
+temp = 0:10;
+dens = 10:-1:0;
+tempRef = temp;
+densRef = dens;
+save(TMPDIR + "/save.bin", "temp", "dens");
+clear temp dens
+load(TMPDIR + "/save.bin");
+assert_checkequal(temp, tempRef);
+assert_checkequal(dens, densRef);
+
+temp = 0:10;
+dens = 10:-1:0;
+tempRef = temp;
+densRef = dens;
+save(TMPDIR + "/save.bin", "dens", "temp");
+clear temp dens
+load(TMPDIR + "/save.bin");
+assert_checkequal(temp, tempRef);
+assert_checkequal(dens, densRef);