* Bug #12998 fixed - 'ans' was not ignored on the context results. 47/12947/4
Clément DAVID [Thu, 17 Oct 2013 15:46:37 +0000 (17:46 +0200)]
Change-Id: I758ecfdf5797245d62f491f028b469932703c247

scilab/CHANGES_5.5.X
scilab/modules/scicos/macros/scicos_scicos/do_eval.sci
scilab/modules/scicos/macros/scicos_scicos/script2var.sci
scilab/modules/xcos/tests/nonreg_tests/bug_12998.dia.ref [new file with mode: 0644]
scilab/modules/xcos/tests/nonreg_tests/bug_12998.tst [new file with mode: 0644]
scilab/modules/xcos/tests/nonreg_tests/bug_12998.zcos [new file with mode: 0644]

index a99035d..76e56f2 100644 (file)
@@ -60,6 +60,8 @@ Xcos Bug Fixes
 
 * Bug #12423 fixed - Data types of SWITCH2_m were not documented.
 
+* Bug #12998 fixed - 'ans' was not ignored in the context results.
+
 * Bug #13006 fixed - Selection to Super block (in_f and out_f) was failing.
 
 
index 37bfe63..bfe2811 100644 (file)
@@ -131,7 +131,7 @@ function [scs_m,cpr,needcompile,ok]=do_eval(scs_m,cpr,%scicos_context)
                 end
 
                 %scicos_prob=%f
-                ier=execstr("o="+o.gui+"(''set'',o)","errcatch")
+                ier=execstr("o="+o.gui+"(''set'',o)","errcatch", "m")
                 if ier==0& %scicos_prob==%f then
                     needcompile1=max(needcompile1,needcompile) // for scifunc_block
                     model_n=o.model
@@ -192,6 +192,7 @@ function [scs_m,cpr,needcompile,ok]=do_eval(scs_m,cpr,%scicos_context)
 
                     scs_m.objs(%kk)=o
                 else
+                    error(msprintf(gettext("%s: Error while calling block %s [uid=''%s'']: invalid parameter (ier=%f, \%scicos_prob=%f).\n"), "do_eval", o.gui, o.model.uid, ier, %scicos_prob));
                     ok=%f
                     return
                 end
index 5e4db55..635ffbe 100644 (file)
@@ -65,16 +65,25 @@ function [%ll,%ierr]=getvardef(%txt,%ll)
     %mm=%mm(1:size(%mm,"*")-%nww)
     //%mm contains the list of the variables defined by execstr(%txt,'errcatch')
     for %mi=%mm(:)'
+        if %mi=="scs_m" then
+            mprintf(_("The variable name %s cannot be used as block parameter: ignored"),"scs_m");
+            continue
+        elseif %mi=="ans" then
+            continue
+        end
+
         clear %v
         %v=evstr(%mi);
 
-        if %mi=="scs_m" | typeof(%v)=="scs_m" then
+        if typeof(%v)=="scs_m" then
             mprintf(_("The variable name %s cannot be used as block parameter: ignored"),"scs_m")
+            continue
         elseif or(type(%v)==[11 13 14]) then
             continue
-        else
-            %ll(%mi)=%v;
         end
+
+        %ll(%mi)=%v;
+        clear %v
     end
 endfunction
 
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_12998.dia.ref b/scilab/modules/xcos/tests/nonreg_tests/bug_12998.dia.ref
new file mode 100644 (file)
index 0000000..50d850e
--- /dev/null
@@ -0,0 +1,17 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Clément DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- XCOS TEST -->
+//
+// <-- Non-regression test for bug 12998 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12998
+//
+// <-- Short Description -->
+// 'ans' variable should be ignored while evaluating the context
+assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/nonreg_tests/bug_12998.zcos"));
+scicos_simulate(scs_m);
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_12998.tst b/scilab/modules/xcos/tests/nonreg_tests/bug_12998.tst
new file mode 100644 (file)
index 0000000..cef17fe
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Clément DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- XCOS TEST -->
+//
+// <-- Non-regression test for bug 12998 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=12998
+//
+// <-- Short Description -->
+// 'ans' variable should be ignored while evaluating the context
+
+assert_checktrue(importXcosDiagram(SCI + "/modules/xcos/tests/nonreg_tests/bug_12998.zcos"));
+scicos_simulate(scs_m);
+
diff --git a/scilab/modules/xcos/tests/nonreg_tests/bug_12998.zcos b/scilab/modules/xcos/tests/nonreg_tests/bug_12998.zcos
new file mode 100644 (file)
index 0000000..75cc76f
Binary files /dev/null and b/scilab/modules/xcos/tests/nonreg_tests/bug_12998.zcos differ