* Bug 15249 fixed: findobj('toto') yielded an error instead of [] 80/19380/3
Samuel GOUGEON [Wed, 16 Aug 2017 19:19:21 +0000 (21:19 +0200)]
  http://bugzilla.scilab.org/15249

Change-Id: I6472eb67301c5b7473c54a64188201ffaa9ee980

scilab/CHANGES.md
scilab/modules/gui/macros/findobj.sci
scilab/modules/gui/tests/nonreg_tests/bug_15249.tst [new file with mode: 0644]

index f57b1a6..ce13b58 100644 (file)
@@ -410,6 +410,7 @@ the [development mailing list](dev@lists.scilab.org) for a particular toolbox.
 * [#15228](http://bugzilla.scilab.org/show_bug.cgi?id=15228): `get` error message fixed
 * [#15239](http://bugzilla.scilab.org/show_bug.cgi?id=15239): The console's properties .tag and .userdata were not displayed nor documented.
 * [#15236](http://bugzilla.scilab.org/show_bug.cgi?id=15236): The `isglobal` help page was inaccurate. Examples were erroneous.
+* [#15249](http://bugzilla.scilab.org/show_bug.cgi?id=15249): `findobj("toto")` yielded an error instead of returning [].
 * [#15260](http://bugzilla.scilab.org/show_bug.cgi?id=15260): `sci2exp` was broken for cells, structures, and all types of hypermatrix.
 * [#15266](http://bugzilla.scilab.org/show_bug.cgi?id=15266): Wrong default out_mode in `linear_interpn`.
 * [#15273](http://bugzilla.scilab.org/show_bug.cgi?id=15273): The documented order of `eval_cshep2d` second derivatives was wrong.
index e860351..6398e4d 100644 (file)
 // and continues to be available under such terms.
 // For more information, see the COPYING file which you should have received
 // along with this program.
+
 function h =  findobj(propertyName, propertyValue)
 
     rhs = argn(2);
     if rhs<> [1 2] then
-        error(msprintf(gettext("%s: Wrong number of input arguments: %d or %d expected.\n"), "findobj", 1, 2));
+        msg = gettext("%s: Wrong number of input arguments: %d or %d expected.\n");
+        error(msprintf(msg, "findobj", 1, 2));
         return;
     end
 
     if rhs == 1 then
         h = get(propertyName);
-        if h <> [] then
-            return;
-        end
-    elseif strcmp(propertyName, "tag", "i") == 0 then
+        return
+    end
+    if strcmp(propertyName, "tag", "i") == 0 then
         h = get(propertyValue);
-        if h <> [] then
-            return;
-        end
+        return
     end
 
     // Return value
diff --git a/scilab/modules/gui/tests/nonreg_tests/bug_15249.tst b/scilab/modules/gui/tests/nonreg_tests/bug_15249.tst
new file mode 100644 (file)
index 0000000..8dcbfda
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2017 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- TEST WITH GRAPHIC -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 15249 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/15249
+//
+// <-- Short Description -->
+// findobj("toto") yielded an error instead of returning []
+
+clf
+assert_checkequal(findobj("toto"), []);