* Bug 16228 fixed: cla() missing in bode() & nyquist() demos 10/21110/7
Samuel GOUGEON [Thu, 31 Oct 2019 13:41:46 +0000 (14:41 +0100)]
  http://bugzilla.scilab.org/16228

Change-Id: I2a456ce51cb58dbdb25ee22e0e9f7709a4407328

scilab/CHANGES.md
scilab/modules/cacsd/macros/bode.sci
scilab/modules/cacsd/macros/nyquist.sci
scilab/modules/cacsd/tests/nonreg_tests/bug_16228.tst [new file with mode: 0644]

index 284b4c6..9026b72 100644 (file)
@@ -474,6 +474,7 @@ Bug Fixes
 * [#16210](https://bugzilla.scilab.org/16210): The uicontrol.units = "normalized" property was not described.
 * [#16215](https://bugzilla.scilab.org/16215): `mfile2sci` badly converted the colon `:` into `mtlb(:)`
 * [#16227](https://bugzilla.scilab.org/16227): `WSCI` was not defined as environment variable and could not be used as `%WSCI%` in commands sent with `host` or `unix_*`.
+* [#16228](https://bugzilla.scilab.org/16228): `bode` and `nyquist` inline demos did not clear and reset the current axes where to draw, what could yield an error.
 * [#16229](https://bugzilla.scilab.org/16229): Some outdated parts of the `help scilab` page were misleading.
 * [#16230](https://bugzilla.scilab.org/16230): `MSWin>scilab --help` missed displaying some options like `-args..`, `-noatomsautoload`, etc.
 * [#16232](https://bugzilla.scilab.org/16232): `colorbar` did not support `$` in `colminmax`, standing for the number of colors in the current color map.
index b16c1f6..712d749 100644 (file)
@@ -20,6 +20,12 @@ function bode(varargin)
         den = 22952.25+4117.77*s+490.63*s^2+33.06*s^3+s^4;
         h2 = syslin("c", num/den);
 
+        // Clears and resets the current axes where to draw the example
+        ab = gca().axes_bounds
+        delete(gca())
+        xsetech(ab)
+
+        // Drawing
         bode([h1; h2], 0.01, 100, ["h1"; "h2"]);
         return;
     end
index 8eb4e2b..0794387 100644 (file)
@@ -15,6 +15,11 @@ function nyquist(varargin)
     rhs=size(varargin);
 
     if rhs == 0 then
+        // Clears and resets the current axes where to draw the example
+        ab = gca().axes_bounds
+        delete(gca())
+        xsetech(ab)
+
         //Hall chart as a grid for nyquist
         s=poly(0,"s");
         Plant=syslin("c",16000/((s+1)*(s+10)*(s+100)));
diff --git a/scilab/modules/cacsd/tests/nonreg_tests/bug_16228.tst b/scilab/modules/cacsd/tests/nonreg_tests/bug_16228.tst
new file mode 100644 (file)
index 0000000..be9cffc
--- /dev/null
@@ -0,0 +1,38 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2019 - Samuel GOUGEON
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- TEST WITH GRAPHIC -->
+// <-- INTERACTIVE TEST -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 16228 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/16228
+//
+// <-- Short Description -->
+// --> clf, bode, nyquist yielded an error
+// bode() and nyquist() inline demos did not clear and reset the current axes
+// area where to draw
+
+// Run all the following lines. This must yield no error
+clf
+subplot(1,2,1)
+plot2d
+bode
+
+// EXPECTED DISPLAY:
+// The plot2d example must have been cleared.
+// The bode() example must be displayed on the left half of the figure
+
+subplot(1,2,2)
+plot2d
+nyquist
+// EXPECTED DISPLAY:
+// The plot2d example must have been cleared on the right.
+// The nyquist() example must be displayed instead.
+// The bode example is still displayed on the left side.