License Header change: Removed the LICENSE_END before beta
[scilab.git] / scilab / modules / atoms / macros / atoms_internals / atomsIsDirectChild.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 // Returns True if the package named "child_name" (version doesn't matter)
16 // is directy needed by the package whose name is "parent_name" and version is
17 // "parent_version". No matter whether if "parent_name - parent_version" is
18 // installed or not
19
20 // Input arguments :
21 //
22 //   parent_name : . String Array
23 //                 . mandatory
24 //
25 //   parent_version : . String Array
26 //                    . mandatory
27 //
28 //   child_name     : . Single String
29 //                    . mandatory
30
31 // Output arguments :
32 //
33 //   result : . Boolean Array
34
35 function result = atomsIsDirectChild(parent_packages,child_name)
36
37     rhs    = argn(2);
38     result = [];
39
40     // Check number of input arguments
41     // =========================================================================
42     if rhs <> 2 then
43         error(msprintf(gettext("%s: Wrong number of input argument: %d expected.\n"),"atomsIsDirectChild",2));
44     end
45
46     // Check input parameter type
47     // =========================================================================
48
49     if type(parent_packages) <> 10 then
50         error(msprintf(gettext("%s: Wrong type for input argument #%d: String array expected.\n"),"atomsIsDirectChild",1));
51     end
52
53     if size(parent_packages(1,:),"*") <> 2 then
54         error(msprintf(gettext("%s: Wrong size for input argument #%d: mx2 string matrix expected.\n"),"atomsIsDirectChild",1));
55     end
56
57     if type(child_name) <> 10 then
58         error(msprintf(gettext("%s: Wrong type for input argument #%d: string expected.\n"),"atomsIsDirectChild",2));
59     end
60
61     if size(child_name,"*") <> 1 then
62         error(msprintf(gettext("%s: Wrong size for input argument #%d: string expected.\n"),"atomsIsDirectChild",3));
63     end
64
65     // Loop on parents
66     // =========================================================================
67
68     for i=1:size(parent_packages(:,1),"*")
69         parent_deps = atomsToolboxDetails([parent_packages(i,:)],"Depends");
70         result = [ result ; grep(parent_deps,"/\s"+child_name+"\s/","r") <> [] ];
71     end
72
73 endfunction