cosmetic, rename functions
[scilab.git] / scilab / modules / functions / sci_gateway / cpp / sci_functionlist.cpp
1 /*
2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) 2006 - INRIA - 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 using namespace types;
20 /*--------------------------------------------------------------------------*/
21 Function::ReturnValue sci_funclist(types::typed_list &in, int _iRetCount, types::typed_list &out)
22 {
23     symbol::Context* pContext = symbol::Context::getInstance();
24
25     wchar_t* pstLibName = NULL;
26     if (in.size() > 1)
27     {
28         return Function::Error;
29     }
30
31     if (in.size() == 1)
32     {
33         InternalType* pIT = in[0];
34
35         if (pIT->isString() == false)
36         {
37             return Function::Error;
38         }
39
40         String *pS = pIT->getAs<types::String>();
41
42         if (pS->getSize() != 1)
43         {
44             return Function::Error;
45         }
46
47         pstLibName = pS->get(0);
48     }
49     else
50     {
51         pstLibName = L"";
52     }
53
54     wstring libName(pstLibName);
55     std::list<symbol::Symbol> FuncList = pContext->getFunctionList(libName, false);
56
57     String *pS = new String((int)FuncList.size(), 1);
58
59     std::list<symbol::Symbol>::iterator it;
60     int i = 0;
61     for (it = FuncList.begin() ; it != FuncList.end() ; it++)
62     {
63         pS->set(i++, 0, it->name_get().c_str());
64     }
65
66     out.push_back(pS);
67     return Function::OK;
68 }
69 /*--------------------------------------------------------------------------*/