* Bug 16677 fixed: offline, atomsInstall() was flashing the console 40/21740/2
Samuel GOUGEON [Thu, 22 Apr 2021 18:17:13 +0000 (20:17 +0200)]
   http://bugzilla.scilab.org/16677

   // Interactive test:
   om = atomsGetConfig("offline");
   atomsSetConfig offline True
   atomsInstall(WSCI+"\modules\atoms\tests\unit_tests\toolbox_7V6_1.0-1.bin.zip", "user");
   // The installation must succeed without flashing the console
   atomsRemove toolbox_7V6
   atomsSetConfig("offline", om);

Change-Id: I68e68673bc1919790062aa5fed345ca86698760d

scilab/CHANGES.md
scilab/modules/atoms/macros/atoms_internals/atomsDESCRIPTIONread.sci
scilab/modules/atoms/macros/atoms_internals/atomsUpdateProgressBar.sci

index 0b9480d..c20922b 100644 (file)
@@ -465,6 +465,7 @@ Bug Fixes
 * [#16654](https://bugzilla.scilab.org/16654): `interp` was leaking memory.
 * [#16661](https://bugzilla.scilab.org/16661): `x=spzeros(1e10,1e10)` yielded an incorrect error message.
 * [#16665](https://bugzilla.scilab.org/16665): `help echo` could not redirect to `help mode` when preferred, for new users coming from Octave.
+* [#16677](https://bugzilla.scilab.org/16677): In offline mode, `atomsInstall` was flashing many times the console.
 * [#16679](https://bugzilla.scilab.org/16679): `get_function_path("acosh")` yielded an error (regression from Scilab 6.0.0).
 
 
index 08ee4a5..c03a185 100644 (file)
@@ -116,7 +116,13 @@ function description_out = atomsDESCRIPTIONread(file_in,additional)
         file_in));
     end
 
-    winId = atomsOpenProgressBar(_("Updating Atoms modules database..."), %t)
+    if size(lines_in,1)>1000 then
+        winId = atomsOpenProgressBar(_("Updating Atoms modules database..."), %t)
+    else
+        // No progression bar required when the DESCRIPTION file is so short that
+        // its processing will be very fast:
+        winId = []
+    end
     for i=1:(size(lines_in,"*")+1)
 
         atomsUpdateProgressBar(winId, i / size(lines_in,"*"));
index d6a08dc..33bd81b 100644 (file)
@@ -14,7 +14,7 @@
 //
 
 function atomsUpdateProgressBar(winId, value)
-    if (getscilabmode() <> "NWNI" & winId.type == "Waitbar")
+    if (getscilabmode() <> "NWNI" & winId <> [] & winId.type == "Waitbar")
         waitbar(value, winId);
     end
-endfunction
\ No newline at end of file
+endfunction