* Bug #10305 fixed - Compare lists with empty items returned an error message. 82/11982/2
Charlotte HECQUET [Tue, 9 Jul 2013 08:56:55 +0000 (10:56 +0200)]
Change-Id: I342c196fcbf88c199dabb8e5d8fbd1db98931861

scilab/CHANGES_5.5.X
scilab/modules/overloading/macros/%l_o_l.sci
scilab/modules/overloading/tests/nonreg_tests/bug_10305.dia.ref [new file with mode: 0644]
scilab/modules/overloading/tests/nonreg_tests/bug_10305.tst [new file with mode: 0644]

index 6e6384f..f4d3b3a 100644 (file)
@@ -327,6 +327,8 @@ Bug fixes
 
 * Bug #10287 fixed - Added an error message for complex expression as input argument of integrate function.
 
+* Bug #10305 fixed - Comparison of lists with empty items returned an error message.
+
 * Bug #10596 fixed - exit(xxx) from Scilab was failing.
 
 * Bug #10818 fixed - The following help pages have been added: hom, %e, %t, %f, %z and %s.
index 8c0604f..6e3dd0a 100644 (file)
@@ -21,7 +21,13 @@ function [r]=%l_o_l(l1,l2)
         k1=definedfields(l1)
         k2=definedfields(l2)
         for i=intersect(k1,k2),
-            if and(getfield(i,l1)==getfield(i,l2)) then r(i)= %t,end
+            a=getfield(i, l1);
+            b=getfield(i, l2);
+            if exists("a") == 0 | exists("b") == 0 then //case list(1,,2)
+                r(i) = %f;
+            else
+                if and(getfield(i,l1)==getfield(i,l2)) then r(i)= %t,end
+            end
         end
         s1=1:n1;s1(k1)=[];
         s2=1:n1;s2(k2)=[];
diff --git a/scilab/modules/overloading/tests/nonreg_tests/bug_10305.dia.ref b/scilab/modules/overloading/tests/nonreg_tests/bug_10305.dia.ref
new file mode 100644 (file)
index 0000000..d7a702f
--- /dev/null
@@ -0,0 +1,16 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- Non-regression test for bug 10305 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=10305
+//
+// <-- Short Description -->
+// Compare lists with empty items is impossible
+l1 = list(1,,2);
+l2=l1;
+assert_checkequal(l1==l2, [%t %f %t]);
diff --git a/scilab/modules/overloading/tests/nonreg_tests/bug_10305.tst b/scilab/modules/overloading/tests/nonreg_tests/bug_10305.tst
new file mode 100644 (file)
index 0000000..e279a25
--- /dev/null
@@ -0,0 +1,19 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Charlotte HECQUET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+
+// <-- Non-regression test for bug 10305 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=10305
+//
+// <-- Short Description -->
+// Compare lists with empty items is impossible
+
+l1 = list(1,,2);
+l2=l1;
+assert_checkequal(l1==l2, [%t %f %t]);