fix for bug 13816 28/18128/2
serge.steer [Thu, 28 Apr 2016 09:09:29 +0000 (11:09 +0200)]
Change-Id: I9110a9315288d4681c0a8602c881cfcbd9c787b7

scilab/CHANGES
scilab/modules/cacsd/macros/show_margins.sci
scilab/modules/cacsd/tests/nonreg_tests/bug_13816.dia.ref [new file with mode: 0644]
scilab/modules/cacsd/tests/nonreg_tests/bug_13816.tst [new file with mode: 0644]

index e082e50..4db4a66 100644 (file)
@@ -365,6 +365,8 @@ In 6.0.0:
 
 * Bug #13810 fixed - householder(v, k*v) returned column of %nan. Input parameters were not checked. The Householder matrix could not be returned. Help pages were inaccurate and without examples. There was no householder() demo.
 
+* Bug #13816 fixed - show_margins caused a scilab crash
+
 * Bug #13839 fixed - sign() could not be used with sparse matrices
 
 * Bug #13869 fixed - bench_run with option nb_run=10 did not override the NB RUN tags
index ec9178f..fa04d41 100644 (file)
@@ -38,7 +38,7 @@ function show_margins(h,typ)
         sca(axp);
         xpoly([fmin;fmax],[-180;-180])
         e=gce();e.foreground=color("red");e.line_style=4;
-        if fr<>[] then
+        if fr<>[]&fr>0 then
             xpoly([fr;fr],[pmin;pmax])
             e=gce();e.foreground=color("red");e.line_style=4;
             sca(axg);
@@ -52,7 +52,7 @@ function show_margins(h,typ)
         sca(axg);
         xpoly([fmin;fmax],[0;0])
         e=gce();e.foreground=color("blue");e.line_style=4;
-        if fr<>[] then
+        if fr<>[]&fr>0 then
             xpoly([fr;fr],[gmin;gmax])
             e=gce();e.foreground=color("blue");e.line_style=4;
             sca(axp);
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_13816.dia.ref b/scilab/modules/cacsd/tests/nonreg_tests/bug_13816.dia.ref
new file mode 100644 (file)
index 0000000..51fe7bd
--- /dev/null
@@ -0,0 +1,15 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Clement DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+// <-- TEST WITH GRAPHIC -->
+s=poly(0,'s')
+ s  = 
+    
+   s
+num=10*s+20;
+den=s^3+14*s^2+35*s-50;
+h=syslin('c',num/den);
+show_margins(h,'bode');
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_13816.tst b/scilab/modules/cacsd/tests/nonreg_tests/bug_13816.tst
new file mode 100644 (file)
index 0000000..1a14b62
--- /dev/null
@@ -0,0 +1,15 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2016 - Scilab Enterprises - Clement DAVID
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- TEST WITH GRAPHIC -->
+
+s=poly(0,"s")
+num=10*s+20;
+den=s^3+14*s^2+35*s-50;
+h=syslin("c",num/den);
+show_margins(h,"bode");
+