License Header change: Removed the LICENSE_END before beta
[scilab.git] / scilab / modules / atoms / macros / atomsQuit.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2012 - DIGITEO - Allan CORNET
3 //
4 // Copyright (C) 2012 - 2016 - Scilab Enterprises
5 //
6 // This file is hereby licensed under the terms of the GNU GPL v2.0,
7 // pursuant to article 5.3.4 of the CeCILL v.2.1.
8 // This file was originally licensed under the terms of the CeCILL v2.1,
9 // and continues to be available under such terms.
10 // For more information, see the COPYING file which you should have received
11 // along with this program.
12
13 // Call .quit file of loaded modules
14
15 function result = atomsQuit()
16
17     result = %T;
18
19     // Load Atoms Internals lib if it's not already loaded
20     // =========================================================================
21     if ~ exists("atomsinternalslib") then
22         load("SCI/modules/atoms/macros/atoms_internals/lib");
23     end
24
25     // If the autoload system is disabled, no need to continue
26     // =========================================================================
27     if atomsGetConfig("autoload") == "False" then
28         return;
29     end
30
31     atomsModulesLoaded = atomsGetLoaded();
32     sizeLoaded = size(atomsModulesLoaded);
33     for i = 1:sizeLoaded(1)
34
35         this_package_name = atomsModulesLoaded(i, 1);
36         this_package_path = atomsModulesLoaded(i, 4);
37         this_package_version = atomsModulesLoaded(i, 2);
38
39         if ~isempty(this_package_path) then
40             if isdir(this_package_path) then
41                 moduleLoadedFullFilename = fullfile(this_package_path, "unloader.sce");
42                 if isfile(moduleLoadedFullFilename) then
43                     if exec(moduleLoadedFullFilename, "errcatch") <> 0 then
44                         txt = msprintf(gettext("%s: An error occurred while unloading ''%s-%s'':\n"), "atomsQuit", this_package_name, this_package_version);
45                         warning(txt);
46                         result = %F;
47                     end
48                 end
49             end
50         end
51     end
52 endfunction