* Bug 16046 fixed [cacsd]: sysLin +/- [] yielded warnings 25/20925/5
Samuel GOUGEON [Fri, 5 Apr 2019 22:46:23 +0000 (00:46 +0200)]
  http://bugzilla.scilab.org/16046

  This proposed patch is conservative wrt Scilab 5.5.2 behavior:
  With it, we still have
   * [] + sys == sys + [] == sys - [] == sys
   * [] - sys == 0 - sys  (that's not -sys)

  But we alternatively could get an empty syslin
  (provided that an empty syslin is clearly defined...
   not sure this is the case in 5.5.2).

Change-Id: I5808aca8f0f2d78961de4ef8fe5411d8e1daa0f1

scilab/CHANGES.md
scilab/modules/overloading/macros/%lss_a_s.sci
scilab/modules/overloading/macros/%lss_s_s.sci
scilab/modules/overloading/macros/%s_a_lss.sci
scilab/modules/overloading/macros/%s_s_lss.sci

index e3562cc..87f305b 100644 (file)
@@ -331,6 +331,7 @@ Bug Fixes
 * [#16019](http://bugzilla.scilab.org/show_bug.cgi?id=16019): `polarplot(x,Z)` yielded an error when x is a vector and Z a matrix.
 * [#16021](http://bugzilla.scilab.org/show_bug.cgi?id=16021): `tand([-90 90])` answered [Nan Nan] instead of [-Inf, Inf]. `cotd([-90 90])` answered [Nan Nan] instead of [0 0]. `1 ./cosd([-90 90])` answered [Inf -Inf] instead of [Inf Inf].
 * [#16026](http://bugzilla.scilab.org/show_bug.cgi?id=16026): For `atanh`, neither the documentation pages nor the `m2sci` converter were up to date.
+* [#16046](http://bugzilla.scilab.org/show_bug.cgi?id=16046): After `w=ssrand(2,3,4)`, `[]+w`, `[]-w`, `w+[]` and `w-[]` yielded an "operation +/- []" warning.
 * [#16051](http://bugzilla.scilab.org/show_bug.cgi?id=16051): undefined list elements could be of 2 distinct typeof "void" or "listundefined" according to the way they are created.
 * [#16053](http://bugzilla.scilab.org/show_bug.cgi?id=16053): `plot(,"color",c)` no longer supported standard abbreviated color names c like "k" for black.
 * [#16067](http://bugzilla.scilab.org/show_bug.cgi?id=16067): The display of matrices of signed integers was misaligned (regression of 6.0.0 vs 5.5.2)
index 520bdbb..236334f 100644 (file)
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function s1=%lss_a_s(s1,d2)
+function s1 = %lss_a_s(s1,d2)
     //s=%lss_a_s(s1,d2)  iff s=s1+d2
     //!
-
-    s1(5)=s1(5)+d2
+    if d2 <> []
+        s1(5) = s1(5) + d2
+    end
 endfunction
index 325f0d8..1a02740 100644 (file)
@@ -10,8 +10,9 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function s1=%lss_s_s(s1,d2)
-    //s=s1-d2
-
-    s1(5)=s1(5)-d2
+function s1 = %lss_s_s(s1,d2)
+    //s = s1 - d2
+    if d2 <> []
+        s1(5) = s1(5) - d2
+    end
 endfunction
index d5de092..663b124 100644 (file)
@@ -9,8 +9,10 @@
 // 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 s2=%s_a_lss(d1,s2)
-    // s=d1+s2
+function s2 = %s_a_lss(d1,s2)
+    // s = d1 + s2
     //!
-    s2(5)=s2(5)+d1
+    if d1 <> []
+        s2(5) = s2(5) + d1
+    end
 endfunction
index 854d3d1..897ff37 100644 (file)
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function s=%s_s_lss(d1,s2)
+function s = %s_s_lss(d1,s2)
     //s=d1-s2
-    [a2,b2,c2,d2,x2,dom2]=s2(2:7),
-    s=tlist(["lss","A","B","C","D","X0","dt"],a2,-b2,c2,d1-d2,x2,dom2),
+    [a2,b2,c2,d2,x2,dom2] = s2(2:7),
+    if d1==[]
+        d1 = zeros(d2)
+    end
+    s = tlist(["lss","A","B","C","D","X0","dt"],a2,-b2,c2,d1-d2,x2,dom2),
 endfunction