* Bug 16365 fixed: median(m,'r'|'c') was wrong after 5dc990
[scilab.git] / scilab / modules / atoms / macros / atoms_internals / atomsCompatibleVersions.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2009 - DIGITEO - Pierre MARECHAL <pierre.marechal@scilab.org>
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 // Internal function
14
15 // Return the sorted list of the versions compatible with this version of Scilab
16
17 function versions = atomsCompatibleVersions(name)
18
19     // Initialize
20     versions = [];
21
22     // Check input parameters
23     // =========================================================================
24
25     rhs  = argn(2);
26
27     if rhs <> 1  then
28         error(msprintf(gettext("%s: Wrong number of input argument: %d to %d expected.\n"),"atomsCompatibleVersions",1));
29     end
30
31     if type(name) <> 10 then
32         error(msprintf(gettext("%s: Wrong type for input argument #%d: String expected.\n"),"atomsCompatibleVersions",1));
33     end
34
35     // Get all package description
36     // =========================================================================
37     allpackages = atomsDESCRIPTIONget();
38
39     // Check if it's a Atoms package
40     // =========================================================================
41     if ~ isfield(allpackages,name) then
42         error(msprintf(gettext("%s: Wrong value for input argument #%d: Must be an atoms package name.\n"),"atomsCompatibleVersions",1));
43     end
44
45     // Get versions
46     // =========================================================================
47     package_versions          = allpackages(name);
48     package_versions_tab      = getfield(1,package_versions);
49     package_versions_tab(1:2) = [];
50
51     // Loop on package_versions_tab
52     // =========================================================================
53
54     for i=1:size(package_versions_tab,"*")
55         this_version = package_versions(package_versions_tab(i));
56         versions = [ versions ; package_versions_tab(i) ];
57     end
58
59     // Sort the version matrix
60     // =========================================================================
61     versions = atomsVersionSort(versions,"DESC");
62
63 endfunction