License Header change: Removed the LICENSE_END before beta
[scilab.git] / scilab / modules / atoms / macros / atoms_internals / atomsIsCategory.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2010 - 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 true if the input argument is a listed category
16 //        false otherwise
17
18 // atomsIsCategory(['Modeling and Control Tools' 'Neural networks'])
19
20 function result = atomsIsCategory(categories)
21
22     // Initialize
23     // =========================================================================
24     result = [];
25
26     // Check input parameters
27     // =========================================================================
28
29     rhs  = argn(2);
30
31     if rhs <> 1 then
32         error(msprintf(gettext("%s: Wrong number of input argument: %d expected.\n"),"atomsIsCategory",1));
33     end
34
35     if type(categories) <> 10 then
36         error(msprintf(gettext("%s: Wrong type for input argument #%d: String array expected.\n"),"atomsIsCategory",1));
37     end
38
39     if size(categories(1,:),"*") > 2 then
40         error(msprintf(gettext("%s: Wrong size for input argument #%d: mx1 or mx2 string matrix expected.\n"),"atomsIsCategory",1));
41     end
42
43     if size(categories(1,:),"*") == 2 then
44         categories = categories(:,1)+" - "+categories(:,2);
45     end
46
47     // Official categories
48     // =========================================================================
49
50     officialcategories = atomsCategoryGet();
51     officialcategories = officialcategories(:,1)+" - "+officialcategories(:,2);
52     officialcategories = strsubst(officialcategories,"/ - $/","","r");
53
54     // loop on categories
55     // =========================================================================
56
57     for i=1:size(categories,"*")
58         result(i) = or(categories(i) == officialcategories);
59     end
60
61 endfunction