fix non reg test 11997 after https://codereview.scilab.org/#/c/12404/ 88/12588/2
Antoine ELIAS [Wed, 18 Sep 2013 15:03:17 +0000 (17:03 +0200)]
Change-Id: I79afd5c8a8cab051baa2ce03e4ff084b3e86ff9e

scilab/modules/io/sci_gateway/c/sci_save.c
scilab/modules/io/tests/nonreg_tests/bug_11997.dia.ref
scilab/modules/io/tests/nonreg_tests/bug_11997.tst

index 515b3c9..3ef4046 100644 (file)
@@ -105,19 +105,12 @@ int sci_save(char *fname, unsigned long fname_len)
                 {
                     //try to get variable by name
                     sciErr = getVarAddressFromName(pvApiCtx, pstVarI, &piAddrI2);
-                    if (sciErr.iErr)
+                    if (sciErr.iErr || piAddrI2 == NULL)
                     {
                         // Try old save because here the input variable can be of type "string" but not a variable name
                         // Ex: a=""; save(filename, a);
                         iOldSave = TRUE;
                         bWarning = FALSE;
-                        iErrorRhs = i;
-                        break;
-                    }
-
-                    if (piAddrI2 == 0)
-                    {
-                        iOldSave = TRUE;
                         break;
                     }
                 }
@@ -142,28 +135,17 @@ int sci_save(char *fname, unsigned long fname_len)
         //call "overload" to prepare data to export_to_hdf5 function.
         C2F(overload) (&lw, "save", (unsigned long)strlen("save"));
     }
-
-    //old save
-
-    if (iOldSave)
+    else
     {
-        if (bWarning)
+        //show warning only for variable save, not for environment
+        if (bWarning && getWarningMode() && Rhs > 1)
         {
-            //show warning only for variable save, not for environment
-            if (getWarningMode() && Rhs > 1)
-            {
-                sciprint(_("%s: Scilab 6 will not support the file format used.\n"), _("Warning"));
-                sciprint(_("%s: Please quote the variable declaration. Example, save('myData.sod',a) becomes save('myData.sod','a').\n"), _("Warning"));
-                sciprint(_("%s: See help('save') for the rational.\n"), _("Warning"));
-            }
-
-            C2F(intsave)();
-        }
-        else
-        {
-            Scierror(248, _("Wrong value for argument #%d: Valid variable name expected.\n"), iErrorRhs);
-            return 0;
+            sciprint(_("%s: Scilab 6 will not support the file format used.\n"), _("Warning"));
+            sciprint(_("%s: Please quote the variable declaration. Example, save('myData.sod',a) becomes save('myData.sod','a').\n"), _("Warning"));
+            sciprint(_("%s: See help('save') for the rational.\n"), _("Warning"));
         }
+
+        C2F(intsave)();
     }
 
     return 0;
index 68c0361..85e069c 100644 (file)
@@ -13,5 +13,6 @@
 // <-- Short Description -->
 // save function show compatibility warning for non existing variable instead of error
 clear a;
-errmsg = msprintf(_("Wrong value for argument #%d: Valid variable name expected.\n"), 2);
+//3 instead of 2 because of call through execstr
+errmsg = msprintf(_("Wrong value for argument #%d: Valid variable name expected.\n"), 3);
 assert_checkerror("save(TMPDIR + ""/myData.sod"", ""a"")", errmsg);
index e8573aa..9a5d262 100644 (file)
@@ -14,6 +14,7 @@
 // save function show compatibility warning for non existing variable instead of error
 
 clear a;
-errmsg = msprintf(_("Wrong value for argument #%d: Valid variable name expected.\n"), 2);
+//3 instead of 2 because of call through execstr
+errmsg = msprintf(_("Wrong value for argument #%d: Valid variable name expected.\n"), 3);
 assert_checkerror("save(TMPDIR + ""/myData.sod"", ""a"")", errmsg);