2 * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 * Copyright (C) INRIA - Allan CORNET
4 * Copyright (C) DIGITEO - 2011 - Bruno JOFRET
6 * This file must be used under the terms of the CeCILL.
7 * This source file is licensed as described in the file COPYING, which
8 * you should have received as part of this distribution. The terms
9 * are also available at
10 * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
14 /*--------------------------------------------------------------------------*/
18 #include "addToClasspath.h"
19 #include "getClasspath.h"
20 #include "localization.h"
21 #include "freeArrayOfString.h"
22 #include "api_scilab.h"
23 /*--------------------------------------------------------------------------*/
24 int sci_javaclasspath(char *fname, void* pvApiCtx)
26 int *piAddressVarOne = NULL;
40 Strings = getClasspath(&nbRow);
41 createMatrixOfString(pvApiCtx, Rhs+1, nbRow, nbCol, Strings);
45 freeArrayOfString(Strings, nbRow * nbCol);
49 sciErr = getVarAddressFromPosition(pvApiCtx, 1, &piAddressVarOne);
52 printError(&sciErr, 0);
53 Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
57 sciErr = getVarType(pvApiCtx, piAddressVarOne, &iType);
60 printError(&sciErr, 0);
61 Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
65 if ( iType == sci_strings )
67 char **pStVarOne = NULL;
68 int *lenStVarOne = NULL;
69 static int n1 = 0,m1 = 0;
73 sciErr = getMatrixOfString(pvApiCtx, piAddressVarOne, &m1, &n1, lenStVarOne, pStVarOne);
76 printError(&sciErr, 0);
77 Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
81 lenStVarOne = (int*)MALLOC(sizeof(int)*(m1 * n1));
82 if (lenStVarOne == NULL)
84 Scierror(999,_("%s: No more memory.\n"), fname);
89 sciErr = getMatrixOfString(pvApiCtx, piAddressVarOne, &m1, &n1, lenStVarOne, pStVarOne);
92 if (lenStVarOne) { FREE(lenStVarOne); lenStVarOne = NULL;}
93 printError(&sciErr, 0);
94 Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
98 pStVarOne = (char **)MALLOC(sizeof(char*)*(m1*n1));
99 if (pStVarOne == NULL)
101 if (lenStVarOne) { FREE(lenStVarOne); lenStVarOne = NULL;}
102 Scierror(999,_("%s: No more memory.\n"), fname);
105 for(i = 0; i < m1 * n1; i++)
107 pStVarOne[i] = (char*)MALLOC(sizeof(char*) * (lenStVarOne[i] + 1));
111 sciErr = getMatrixOfString(pvApiCtx, piAddressVarOne, &m1, &n1, lenStVarOne, pStVarOne);
114 freeArrayOfString(pStVarOne, m1 * n1);
115 if (lenStVarOne) { FREE(lenStVarOne); lenStVarOne = NULL;}
116 printError(&sciErr, 0);
117 Scierror(999, _("%s: Can not read input argument #%d.\n"), fname, 1);
121 for (i = 0; i<m1*n1 ;i++)
123 if (!addToClasspath(pStVarOne[i],STARTUP))
125 Scierror(999,_("%s: Could not add URL to system classloader : %s.\n"),fname,pStVarOne[i]);
126 freeArrayOfString(pStVarOne, m1 * n1);
132 freeArrayOfString(pStVarOne, m1 * n1);
136 Scierror(999,_("%s: Wrong type for input argument #%d: String expected.\n"),fname,1);
142 /*--------------------------------------------------------------------------*/