e9e6a988dc0e2518fcb8bcda2da44514a77dd0bc
[scilab.git] / scilab / modules / preferences / sci_gateway / cpp / sci_removeToolboxInfos.cpp
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2011 - DIGITEO - Calixte DENIZET
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 "ScilabPreferences.hxx"
14 #include "GiwsException.hxx"
15
16 extern "C"
17 {
18 #include "gw_preferences.h"
19 #include "stack-c.h"
20 #include "Scierror.h"
21 #include "api_scilab.h"
22 #include "localization.h"
23 #include "getScilabJavaVM.h"
24 }
25
26 using namespace org_scilab_modules_preferences;
27
28 /*--------------------------------------------------------------------------*/
29 int sci_removeToolboxInfos(char * fname, unsigned long fname_len)
30 {
31     SciErr err;
32     int * addr = 0;
33     char * tbxName = 0;
34     bool error = false;
35
36     CheckLhs(1, 1);
37     CheckRhs(1, 1);
38
39     err = getVarAddressFromPosition(pvApiCtx, 1, &addr);
40     if (err.iErr)
41     {
42         printError(&err, 0);
43         return 0;
44     }
45
46     if (!isEmptyMatrix(pvApiCtx, addr))
47     {
48         if (!isStringType(pvApiCtx, addr))
49         {
50             Scierror(999, gettext("%s: Wrong type for input argument #%i: A string expected.\n"), fname, 1);
51         }
52         getAllocatedSingleString(pvApiCtx, addr, &tbxName);
53     }
54
55     try
56     {
57         ScilabPreferences::removeToolboxInfos(getScilabJavaVM(), tbxName);
58     }
59     catch (const GiwsException::JniException & e)
60     {
61         Scierror(999, _("%s: A Java exception arised:\n%s"), fname, e.what());
62         error = true;
63     }
64
65     if (tbxName)
66     {
67         freeAllocatedSingleString(tbxName);
68     }
69
70     if (!error)
71     {
72         LhsVar(1) = 0;
73         PutLhsVar();
74     }
75
76     return 0;
77 }
78 /*--------------------------------------------------------------------------*/