add function libraryinfo and librarieslist
[scilab.git] / scilab / modules / functions / sci_gateway / cpp / sci_librarieslist.cpp
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
4 *
5 * This file must be used under the terms of the CeCILL.
6 * This source file is licensed as described in the file COPYING, which
7 * you should have received as part of this distribution.  The terms
8 * are also available at
9 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10 *
11 */
12
13 #include <string.h>
14 #include "funcmanager.hxx"
15 #include "context.hxx"
16 #include "functions_gw.hxx"
17 #include "string.hxx"
18
19 extern "C"
20 {
21 #include "localization.h"
22 #include "Scierror.h"
23 }
24
25 using namespace types;
26 /*--------------------------------------------------------------------------*/
27 Function::ReturnValue sci_librarieslist(types::typed_list &in, int _iRetCount, types::typed_list &out)
28 {
29     if (in.size() != 0)
30     {
31         Scierror(999, _("%s: Wrong number of input argument(s): %d expected.\n"), "librarieslist", 0);
32         return Function::Error;
33     }
34
35     std::list<std::wstring>* lst = symbol::Context::getInstance()->getLibrariesList();
36
37     String* pOut = new String(static_cast<int>(lst->size()), 1);
38     int i = 0;
39     for (auto l : *lst)
40     {
41         pOut->set(i++, l.c_str());
42     }
43
44     delete lst;
45     out.push_back(pOut);
46     return Function::OK;
47 }
48 /*--------------------------------------------------------------------------*/