bug 4753 + 4796
Allan CORNET [Thu, 17 Sep 2009 13:14:30 +0000 (15:14 +0200)]
scilab/CHANGES_5.2.X
scilab/modules/core/macros/toolboxes.sci
scilab/modules/core/tests/nonreg_tests/bug_4753.tst [new file with mode: 0644]

index ba31f8c..cecd112 100644 (file)
@@ -430,6 +430,8 @@ Bug fixes:
 
 * bug 4744 fixed - whereis, librairieslist, libraryinfo primitives should be moved in "functions" modules.
 
+* bug 4753 fixed - if you have a toolbox and you launch scilab-cli, you have a error message at startup. 
+
 * bug 4789 fixed - number of input arguments is not checked in ilib_functions (dynamic_link module)
 
 * bug 4795 fixed - CallScilab.h renamed call_scilab.h
index f0c8241..a96be12 100644 (file)
@@ -1,5 +1,6 @@
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 // Copyright (C) INRIA
+// Copyright (C) DIGITEO - 2009 - Allan CORNET
 // 
 // This file must be used under the terms of the CeCILL.
 // This source file is licensed as described in the file COPYING, which
 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
 
 //===========================================================
-function [y]=toolboxes(path,flag,force) 
-// toolboxes loading or compiling 
-// if flag == %t then contribs are recompiled 
-// if a loader.sce is not found or if force == %t 
+function [y] = toolboxes(path,flag,force)
+// INTERNAL macro should NOT used by users
+// toolboxes loading
 // path is a directory to explore for contribs
-  global %toolboxes
-  global %toolboxes_dir
-//===========================================================
-// functions build, distrib_clean, distrib_zip only used 
-// by toolboxes macro
+// flag & force removed never managed
 //===========================================================
-function y = build(i)
   global %toolboxes
   global %toolboxes_dir
-  y = 'p=pwd();chdir("""+%toolboxes_dir+%toolboxes(i)+""");exec(""builder.sce"");chdir(p)';
-endfunction
 //===========================================================
-function distrib_clean ()
-  global %toolboxes; 
-  global %toolboxes_dir;
-  // 
-  if %toolboxes == [] then 
-    find_contribs('./');
-  end
-  contribs = %toolboxes;
-  for k = 1:size(contribs,'*') 
-    flag = fileinfo(contribs(k)+'/loader.sce')<>[] ;
-    flag = flag & fileinfo(contribs(k)+'/Makefile')<>[] ;
-    if flag then 
-      chdir(contribs(k)) ;
-      mprintf('Cleaning %s\n',contribs(k))
-      execstr('unix_s(''make distclean'')','errcatch');
-      chdir('../');
-    end
-  end
-endfunction
-//===========================================================  
-function [] = distrib_zip (op,name)
-  global %toolboxes; 
-  global %toolboxes_dir;
-  // 
-  [lhs,rhs]=argn(0) 
-  if rhs <= 1 then 
-    name = 'win' 
-  end 
-  if rhs <= 0 then 
-    op = 'zip' 
-  end 
-  if %toolboxes == [] then 
-    find_contribs('./');
-  end
-  contribs = %toolboxes;
-  for k = 1:size(contribs,'*') 
-    flag = fileinfo(contribs(k)+'/loader.sce')<>[] ;
-    job = "find . \( -name ''*.o'' -o -name ''*.la'' -o -name ''*.lo'' -o"+ ..
-         " -name ''*.obj'' -name ''*.a'' \) -exec \rm -f {} \;" 
-    if flag then 
-      write(%io(2),'build archive for '+ contribs(k));
-      chdir(contribs(k)) ;
-      execstr('unix_s("""+job+""")','errcatch');
-      chdir('../');
-      select op 
-       case 'tar' then 
-       unix_s('tar cfz '+contribs(k)+'-bin-'+name+'-`date -I`'+'.tgz '+ ..
-              contribs(k));
-       case 'zip' then 
-       unix_s('zip -r '+contribs(k)+' '+contribs(k)+'-bin-'+name+'-`date -I`'+'.zip');
-      end
-    end
-  end
-endfunction
-//===========================================================
-  
   [lhs,rhs] = argn(0) 
   y = [];
-  if rhs == 1 & typeof(path)=="constant" then 
-    // execute the toolbox loader
-    y='exec("""+%toolboxes_dir+%toolboxes(path)+filesep()+"loader.sce"+""");';
+  if (rhs == 1) & typeof(path)=="constant" then 
+    // return string to exec
+    y = 'exec(""" + %toolboxes_dir + %toolboxes(path) + filesep() + "loader.sce" + """);';
     return 
   end
     
   if rhs == 0 then 
-    path = SCI+'/contrib' 
-  end
-  if rhs <= 1 then 
-    flag = %f 
+    path = SCI + filesep() + 'contrib';
   end
   
-  if rhs <= 2 then 
-    force = %f 
+  if rhs > 1 then
+    // Remove flag & force input arguments
+    warnobsolete("toolboxes", "5.3")
   end
-  
+
   cur_wd = pwd();
   chdir(path);
   files = listfiles('.');
   contribs = [];
   for k = 1:size(files,'*') 
-    if fileinfo(files(k)+'/loader.sce')<>[] then 
-      contribs = [contribs;files(k)];
-    end
-  end
-  if flag then 
-    // recompilation if no loader.sce 
-    for k = 1:size(contribs,'*') 
-      if fileinfo(contribs(k)+'/loader.sce')==[] | force 
-             chdir(contribs(k)) ; 
-             exec('builder.sce');
-             chdir('../');
-      else
-             write(%io(2),contribs(k)+gettext(" is already compiled.\n"));
-      end
+    if fileinfo(files(k)+'/loader.sce') <> [] then 
+      contribs = [contribs ; files(k)];
     end
   end
 
-  if contribs<>[] & grep(sciargs(),"-nw")==[] then 
-       if ( ~fromjava() & ~fromc() ) then
-       delmenu(gettext("&Toolboxes"));
-       h = uimenu("parent", 0, "label", gettext("&Toolboxes"));
-       for k=1:size(contribs,'*')
-        m = uimenu(h,'label', string(contribs(k)), 'callback','execstr(toolboxes('+string(k)+'))');
-       end
-       unsetmenu(gettext("&Toolboxes"));
+  if (contribs <> []) & (getscilabmode() == 'STD') then 
+    delmenu(gettext("&Toolboxes"));
+    h = uimenu("parent", 0, "label", gettext("&Toolboxes"));
+    for k=1:size(contribs,'*')
+      m = uimenu(h,'label', string(contribs(k)), 'callback','execstr(toolboxes('+string(k)+'))');
     end
+    unsetmenu(gettext("&Toolboxes"));
   end
   
   %toolboxes = contribs;
   %toolboxes_dir = pathconvert(path);
   chdir(cur_wd);
+  
 endfunction
 //===========================================================
-
diff --git a/scilab/modules/core/tests/nonreg_tests/bug_4753.tst b/scilab/modules/core/tests/nonreg_tests/bug_4753.tst
new file mode 100644 (file)
index 0000000..b57374d
--- /dev/null
@@ -0,0 +1,26 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2009 - DIGITEO - Allan CORNET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+
+// <-- INTERACTIVE TEST -->
+
+// <-- Non-regression test for bug 4753 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=4753
+//
+// <-- Short Description -->
+// 
+// if you have a toolbox in SCI/contrib/ and you launch scilab-cli,
+// you have a error message at startup of scilab 
+
+// please be sure that you have a builded toolbox in SCI/contrib/
+// launch scilab by scilab-cli
+// and check that you do NOT have error message as :
+// !--error 999 
+// Le module 'GUI' de Scilab n'est pas install√©.
+
\ No newline at end of file