scilab: refactor runtime code
This commit is contained in:
parent
0fdbd6b7a4
commit
e9d36b6bc2
2 changed files with 247 additions and 237 deletions
|
|
@ -1,4 +1,40 @@
|
||||||
/* Scilab function name management */
|
/* -----------------------------------------------------------------------------
|
||||||
|
* Scilab support runtime
|
||||||
|
* -----------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
/* Scilab version macro */
|
||||||
|
|
||||||
|
#ifndef SWIG_SCILAB_VERSION_MIN
|
||||||
|
#define SWIG_SCILAB_VERSION_MIN(major, minor, maintenance) \
|
||||||
|
((SCI_VERSION_MAJOR << 16) + (SCI_VERSION_MINOR << 8) + SCI_VERSION_MAINTENANCE \
|
||||||
|
>= ((major) << 16) + ((minor) << 8) + maintenance)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
/* Scilab standard headers */
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
#if !SWIG_SCILAB_VERSION_MIN(5, 4, 0)
|
||||||
|
#define __USE_DEPRECATED_STACK_FUNCTIONS__
|
||||||
|
#endif
|
||||||
|
#include "MALLOC.h"
|
||||||
|
#include "sciprint.h"
|
||||||
|
#include "Scierror.h"
|
||||||
|
#include "api_scilab.h"
|
||||||
|
#include "localization.h"
|
||||||
|
#include "freeArrayOfString.h"
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#undef Max
|
||||||
|
#undef Min
|
||||||
|
|
||||||
|
|
||||||
|
/* Function name management functions */
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
static char* fname = NULL;
|
static char* fname = NULL;
|
||||||
static char* SWIG_Scilab_GetFname(void) {
|
static char* SWIG_Scilab_GetFname(void) {
|
||||||
|
|
@ -10,7 +46,24 @@ static void SWIG_Scilab_SetFname(char* _fname) {
|
||||||
}
|
}
|
||||||
fname = strdup(_fname);
|
fname = strdup(_fname);
|
||||||
}
|
}
|
||||||
/* Scilab output argument management */
|
|
||||||
|
|
||||||
|
/* Argument management functions */
|
||||||
|
|
||||||
|
#if SWIG_SCILAB_VERSION_MIN(5, 4, 0)
|
||||||
|
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument)
|
||||||
|
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument)
|
||||||
|
#define SWIG_NbInputArgument(pvApiCtx) nbInputArgument(pvApiCtx)
|
||||||
|
#define SWIG_AssignOutputArgument(pvApiCtx, outputArgumentPos, argumentPos) AssignOutputVariable(pvApiCtx, outputArgumentPos) = argumentPos
|
||||||
|
#else
|
||||||
|
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckRhs(minInputArgument, maxInputArgument)
|
||||||
|
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckLhs(minOutputArgument, maxOutputArgument)
|
||||||
|
#define SWIG_NbInputArgument(pvApiCtx) Rhs
|
||||||
|
#define SWIG_AssignOutputArgument(pvApiCtx, outputArgumentPos, argumentPos) LhsVar(outputArgumentPos) = argumentPos
|
||||||
|
#endif
|
||||||
|
|
||||||
|
typedef int SwigSciObject;
|
||||||
|
|
||||||
static int outputPosition = -1;
|
static int outputPosition = -1;
|
||||||
static int SWIG_Scilab_GetOutputPosition(void) {
|
static int SWIG_Scilab_GetOutputPosition(void) {
|
||||||
return outputPosition;
|
return outputPosition;
|
||||||
|
|
@ -24,6 +77,197 @@ static void SWIG_Scilab_SetOutputPosition(int _outputPosition) {
|
||||||
outputPosition = _outputPosition;
|
outputPosition = _outputPosition;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SWIGRUNTIME int
|
||||||
|
SWIG_Scilab_SetOutput(void *_pvApiCtx, SwigSciObject _output) {
|
||||||
|
int outputPosition = SWIG_Scilab_GetOutputPositionAndReset();
|
||||||
|
if (outputPosition < 0 || _output < 0) {
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
SWIG_AssignOutputArgument(_pvApiCtx, outputPosition, _output);
|
||||||
|
return SWIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Error functions */
|
||||||
|
|
||||||
|
SWIGINTERN int
|
||||||
|
SwigScilabPtrToObject(void *_pvApiCtx, int _iVar, void **_pObjValue, swig_type_info *_descriptor, int _flags, char *_fname) {
|
||||||
|
SciErr sciErr;
|
||||||
|
int iType = 0;
|
||||||
|
int *piAddrVar = NULL;
|
||||||
|
|
||||||
|
sciErr = getVarAddressFromPosition(_pvApiCtx, _iVar, &piAddrVar);
|
||||||
|
if (sciErr.iErr) {
|
||||||
|
printError(&sciErr, 0);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
sciErr = getVarType(_pvApiCtx, piAddrVar, &iType);
|
||||||
|
if (sciErr.iErr) {
|
||||||
|
printError(&sciErr, 0);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
if (iType != sci_pointer) {
|
||||||
|
//Scierror(999, _("%s: Wrong type for input argument #%d: A pointer expected.\n"), _fname, _iVar);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
sciErr = getPointer(_pvApiCtx, piAddrVar, _pObjValue);
|
||||||
|
if (sciErr.iErr) {
|
||||||
|
printError(&sciErr, 0);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SWIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pointer conversion functions */
|
||||||
|
|
||||||
|
SWIGRUNTIMEINLINE int
|
||||||
|
SwigScilabPtrFromObject(void *_pvApiCtx, int _iVarOut, void *_object, swig_type_info *_descriptor, int _flags) {
|
||||||
|
SciErr sciErr;
|
||||||
|
|
||||||
|
sciErr = createPointer(pvApiCtx, SWIG_NbInputArgument(_pvApiCtx) + _iVarOut, (void *)_object);
|
||||||
|
if (sciErr.iErr) {
|
||||||
|
printError(&sciErr, 0);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SWIG_NbInputArgument(_pvApiCtx) + _iVarOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
SWIGRUNTIME int
|
||||||
|
SWIG_Scilab_ConvertPacked(void *_pvApiCtx, int _iVar, void *_ptr, int sz, swig_type_info *ty, char *_fname) {
|
||||||
|
swig_cast_info *tc;
|
||||||
|
|
||||||
|
SciErr sciErr;
|
||||||
|
int iRows = 0;
|
||||||
|
int iCols = 0;
|
||||||
|
int iType = 0;
|
||||||
|
int *piAddrVar = NULL;
|
||||||
|
char *pstStrings = NULL;
|
||||||
|
int piLength = 0;
|
||||||
|
|
||||||
|
sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddrVar);
|
||||||
|
if (sciErr.iErr) {
|
||||||
|
printError(&sciErr, 0);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
sciErr = getVarType(pvApiCtx, piAddrVar, &iType);
|
||||||
|
if (sciErr.iErr) {
|
||||||
|
printError(&sciErr, 0);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
if (iType != sci_strings) {
|
||||||
|
Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), _fname, _iVar);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
sciErr = getMatrixOfString(pvApiCtx, piAddrVar, &iRows, &iCols, &piLength, NULL);
|
||||||
|
if (sciErr.iErr) {
|
||||||
|
printError(&sciErr, 0);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
if (iRows * iCols != 1) {
|
||||||
|
Scierror(999, _("%s: Wrong size for input argument #%d: A string expected.\n"), _fname, _iVar);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
pstStrings = (char *)MALLOC(sizeof(char) * (piLength + 1));
|
||||||
|
sciErr = getMatrixOfString(pvApiCtx, piAddrVar, &iRows, &iCols, &piLength, (char **)&pstStrings);
|
||||||
|
if (sciErr.iErr) {
|
||||||
|
printError(&sciErr, 0);
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Pointer values must start with leading underscore */
|
||||||
|
if (*pstStrings != '_') {
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
pstStrings++;
|
||||||
|
pstStrings = (char*)SWIG_UnpackData(pstStrings, _ptr, sz);
|
||||||
|
if (ty) {
|
||||||
|
tc = SWIG_TypeCheck(pstStrings, ty);
|
||||||
|
if (!tc) {
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
FREE(pstStrings);
|
||||||
|
return SWIG_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
SWIGRUNTIME int
|
||||||
|
SWIG_Scilab_NewMemberObj(void *_pvApiCtx, int _iVarOut, void *_ptr, int _sz, swig_type_info *_type) {
|
||||||
|
char result[1024];
|
||||||
|
char *r = result;
|
||||||
|
|
||||||
|
if ((2*_sz + 1 + strlen(_type->name)) > 1000) {
|
||||||
|
return SWIG_ERROR;
|
||||||
|
}
|
||||||
|
*(r++) = '_';
|
||||||
|
r = SWIG_PackData(r, _ptr, _sz);
|
||||||
|
strcpy(r, _type->name);
|
||||||
|
|
||||||
|
if (createSingleString(_pvApiCtx, SWIG_NbInputArgument(_pvApiCtx) + _iVarOut, r))
|
||||||
|
return SWIG_ERROR;
|
||||||
|
|
||||||
|
return SWIG_NbInputArgument(_pvApiCtx) + _iVarOut;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* Error functions */
|
||||||
|
|
||||||
|
SWIGINTERN const char*
|
||||||
|
SWIG_Scilab_ErrorType(int code) {
|
||||||
|
switch(code) {
|
||||||
|
case SWIG_MemoryError:
|
||||||
|
return "MemoryError";
|
||||||
|
case SWIG_IOError:
|
||||||
|
return "IOError";
|
||||||
|
case SWIG_RuntimeError:
|
||||||
|
return "RuntimeError";
|
||||||
|
case SWIG_IndexError:
|
||||||
|
return "IndexError";
|
||||||
|
case SWIG_TypeError:
|
||||||
|
return "TypeError";
|
||||||
|
case SWIG_DivisionByZero:
|
||||||
|
return "ZeroDivisionError";
|
||||||
|
case SWIG_OverflowError:
|
||||||
|
return "OverflowError";
|
||||||
|
case SWIG_SyntaxError:
|
||||||
|
return "SyntaxError";
|
||||||
|
case SWIG_ValueError:
|
||||||
|
return "ValueError";
|
||||||
|
case SWIG_SystemError:
|
||||||
|
return "SystemError";
|
||||||
|
case SWIG_AttributeError:
|
||||||
|
return "AttributeError";
|
||||||
|
default:
|
||||||
|
return "RuntimeError";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SWIGINTERN void
|
||||||
|
SWIG_Scilab_ErrorMsg(int code, const char *mesg)
|
||||||
|
{
|
||||||
|
sciprint(_("SWIG/Scilab Error : %s\n%s"),SWIG_Scilab_ErrorType(code),mesg);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define SWIG_fail return SWIG_ERROR;
|
||||||
|
#define SWIG_ErrorType(code) SWIG_Scilab_ErrorType(code)
|
||||||
|
#define SWIG_Error(code, msg) SWIG_Scilab_ErrorMsg(code,msg)
|
||||||
|
|
||||||
|
#define SWIG_Scilab_Raise(obj, type, desc) SwigScilabRaise(type)
|
||||||
|
|
||||||
|
SWIGRUNTIME int
|
||||||
|
SwigScilabRaise(const char *type) {
|
||||||
|
Scierror(999, "An exception of type %s has been thrown.\n", type);
|
||||||
|
#ifdef __cplusplus
|
||||||
|
throw;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
#define Scilab_Error_Occurred() 0
|
#define Scilab_Error_Occurred() 0
|
||||||
#define SWIG_Scilab_AddErrorMsg(msg) {;}
|
#define SWIG_Scilab_AddErrorMsg(msg) {;}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,243 +1,9 @@
|
||||||
%insert(runtime) "swigrun.swg";
|
%insert(runtime) "swigrun.swg";
|
||||||
%insert(runtime) "swigerrors.swg";
|
%insert(runtime) "swigerrors.swg";
|
||||||
%insert(runtime) "scirun.swg";
|
|
||||||
|
|
||||||
#define %scilabcode %insert("scilab")
|
#define %scilabcode %insert("scilab")
|
||||||
|
|
||||||
|
%insert(runtime) "scirun.swg";
|
||||||
%insert(runtime) %{
|
|
||||||
|
|
||||||
/* Macro to get version of Scilab */
|
|
||||||
#ifndef SWIG_SCILAB_VERSION_MIN
|
|
||||||
#define SWIG_SCILAB_VERSION_MIN(major, minor, maintenance) \
|
|
||||||
((SCI_VERSION_MAJOR << 16) + (SCI_VERSION_MINOR << 8) + SCI_VERSION_MAINTENANCE \
|
|
||||||
>= ((major) << 16) + ((minor) << 8) + maintenance)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Scilab standard headers */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
#if !SWIG_SCILAB_VERSION_MIN(5, 4, 0)
|
|
||||||
#define __USE_DEPRECATED_STACK_FUNCTIONS__
|
|
||||||
#endif
|
|
||||||
#include "MALLOC.h"
|
|
||||||
#include "sciprint.h"
|
|
||||||
#include "Scierror.h"
|
|
||||||
#include "api_scilab.h"
|
|
||||||
#include "localization.h"
|
|
||||||
#include "freeArrayOfString.h"
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef Max
|
|
||||||
#undef Min
|
|
||||||
|
|
||||||
typedef int SwigSciObject;
|
|
||||||
|
|
||||||
|
|
||||||
/* -----------------------------------------------------------------------------
|
|
||||||
* error manipulation
|
|
||||||
* ----------------------------------------------------------------------------- */
|
|
||||||
|
|
||||||
SWIGINTERN const char*
|
|
||||||
SWIG_Scilab_ErrorType(int code) {
|
|
||||||
switch(code) {
|
|
||||||
case SWIG_MemoryError:
|
|
||||||
return "MemoryError";
|
|
||||||
case SWIG_IOError:
|
|
||||||
return "IOError";
|
|
||||||
case SWIG_RuntimeError:
|
|
||||||
return "RuntimeError";
|
|
||||||
case SWIG_IndexError:
|
|
||||||
return "IndexError";
|
|
||||||
case SWIG_TypeError:
|
|
||||||
return "TypeError";
|
|
||||||
case SWIG_DivisionByZero:
|
|
||||||
return "ZeroDivisionError";
|
|
||||||
case SWIG_OverflowError:
|
|
||||||
return "OverflowError";
|
|
||||||
case SWIG_SyntaxError:
|
|
||||||
return "SyntaxError";
|
|
||||||
case SWIG_ValueError:
|
|
||||||
return "ValueError";
|
|
||||||
case SWIG_SystemError:
|
|
||||||
return "SystemError";
|
|
||||||
case SWIG_AttributeError:
|
|
||||||
return "AttributeError";
|
|
||||||
default:
|
|
||||||
return "RuntimeError";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SWIGINTERN void
|
|
||||||
SWIG_Scilab_ErrorMsg(int code, const char *mesg)
|
|
||||||
{
|
|
||||||
sciprint(_("SWIG/Scilab Error : %s\n%s"),SWIG_Scilab_ErrorType(code),mesg);
|
|
||||||
}
|
|
||||||
|
|
||||||
#define SWIG_fail return SWIG_ERROR;
|
|
||||||
#define SWIG_ErrorType(code) SWIG_Scilab_ErrorType(code)
|
|
||||||
#define SWIG_Error(code, msg) SWIG_Scilab_ErrorMsg(code,msg)
|
|
||||||
|
|
||||||
#if SWIG_SCILAB_VERSION_MIN(5, 4, 0)
|
|
||||||
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument)
|
|
||||||
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument)
|
|
||||||
#define SWIG_NbInputArgument(pvApiCtx) nbInputArgument(pvApiCtx)
|
|
||||||
#define SWIG_AssignOutputArgument(pvApiCtx, outputArgumentPos, argumentPos) AssignOutputVariable(pvApiCtx, outputArgumentPos) = argumentPos
|
|
||||||
#else
|
|
||||||
#define SWIG_CheckInputArgument(pvApiCtx, minInputArgument, maxInputArgument) CheckRhs(minInputArgument, maxInputArgument)
|
|
||||||
#define SWIG_CheckOutputArgument(pvApiCtx, minOutputArgument, maxOutputArgument) CheckLhs(minOutputArgument, maxOutputArgument)
|
|
||||||
#define SWIG_NbInputArgument(pvApiCtx) Rhs
|
|
||||||
#define SWIG_AssignOutputArgument(pvApiCtx, outputArgumentPos, argumentPos) LhsVar(outputArgumentPos) = argumentPos
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
SWIGINTERN int
|
|
||||||
SwigScilabPtrToObject(void *_pvApiCtx, int _iVar, void **_pObjValue, swig_type_info *_descriptor, int _flags, char *_fname) {
|
|
||||||
SciErr sciErr;
|
|
||||||
int iType = 0;
|
|
||||||
int *piAddrVar = NULL;
|
|
||||||
|
|
||||||
sciErr = getVarAddressFromPosition(_pvApiCtx, _iVar, &piAddrVar);
|
|
||||||
if (sciErr.iErr) {
|
|
||||||
printError(&sciErr, 0);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
sciErr = getVarType(_pvApiCtx, piAddrVar, &iType);
|
|
||||||
if (sciErr.iErr) {
|
|
||||||
printError(&sciErr, 0);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
if (iType != sci_pointer) {
|
|
||||||
//Scierror(999, _("%s: Wrong type for input argument #%d: A pointer expected.\n"), _fname, _iVar);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
sciErr = getPointer(_pvApiCtx, piAddrVar, _pObjValue);
|
|
||||||
if (sciErr.iErr) {
|
|
||||||
printError(&sciErr, 0);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
return SWIG_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
SWIGRUNTIMEINLINE int
|
|
||||||
SwigScilabPtrFromObject(void *_pvApiCtx, int _iVarOut, void *_object, swig_type_info *_descriptor, int _flags) {
|
|
||||||
SciErr sciErr;
|
|
||||||
|
|
||||||
sciErr = createPointer(pvApiCtx, SWIG_NbInputArgument(_pvApiCtx) + _iVarOut, (void *)_object);
|
|
||||||
if (sciErr.iErr) {
|
|
||||||
printError(&sciErr, 0);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
return SWIG_NbInputArgument(_pvApiCtx) + _iVarOut;
|
|
||||||
}
|
|
||||||
|
|
||||||
SWIGRUNTIME int
|
|
||||||
SWIG_Scilab_ConvertPacked(void *_pvApiCtx, int _iVar, void *_ptr, int sz, swig_type_info *ty, char *_fname) {
|
|
||||||
swig_cast_info *tc;
|
|
||||||
|
|
||||||
SciErr sciErr;
|
|
||||||
int iRows = 0;
|
|
||||||
int iCols = 0;
|
|
||||||
int iType = 0;
|
|
||||||
int *piAddrVar = NULL;
|
|
||||||
char *pstStrings = NULL;
|
|
||||||
int piLength = 0;
|
|
||||||
|
|
||||||
sciErr = getVarAddressFromPosition(pvApiCtx, _iVar, &piAddrVar);
|
|
||||||
if (sciErr.iErr) {
|
|
||||||
printError(&sciErr, 0);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
sciErr = getVarType(pvApiCtx, piAddrVar, &iType);
|
|
||||||
if (sciErr.iErr) {
|
|
||||||
printError(&sciErr, 0);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
if (iType != sci_strings) {
|
|
||||||
Scierror(999, _("%s: Wrong type for input argument #%d: A string expected.\n"), _fname, _iVar);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
sciErr = getMatrixOfString(pvApiCtx, piAddrVar, &iRows, &iCols, &piLength, NULL);
|
|
||||||
if (sciErr.iErr) {
|
|
||||||
printError(&sciErr, 0);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
if (iRows * iCols != 1) {
|
|
||||||
Scierror(999, _("%s: Wrong size for input argument #%d: A string expected.\n"), _fname, _iVar);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
pstStrings = (char *)MALLOC(sizeof(char) * (piLength + 1));
|
|
||||||
sciErr = getMatrixOfString(pvApiCtx, piAddrVar, &iRows, &iCols, &piLength, (char **)&pstStrings);
|
|
||||||
if (sciErr.iErr) {
|
|
||||||
printError(&sciErr, 0);
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Pointer values must start with leading underscore */
|
|
||||||
if (*pstStrings != '_') {
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
pstStrings++;
|
|
||||||
pstStrings = (char*)SWIG_UnpackData(pstStrings, _ptr, sz);
|
|
||||||
if (ty) {
|
|
||||||
tc = SWIG_TypeCheck(pstStrings, ty);
|
|
||||||
if (!tc) {
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
FREE(pstStrings);
|
|
||||||
return SWIG_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
SWIGRUNTIME int
|
|
||||||
SWIG_Scilab_NewMemberObj(void *_pvApiCtx, int _iVarOut, void *_ptr, int _sz, swig_type_info *_type) {
|
|
||||||
char result[1024];
|
|
||||||
char *r = result;
|
|
||||||
|
|
||||||
if ((2*_sz + 1 + strlen(_type->name)) > 1000) {
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
*(r++) = '_';
|
|
||||||
r = SWIG_PackData(r, _ptr, _sz);
|
|
||||||
strcpy(r, _type->name);
|
|
||||||
|
|
||||||
if (createSingleString(_pvApiCtx, SWIG_NbInputArgument(_pvApiCtx) + _iVarOut, r))
|
|
||||||
return SWIG_ERROR;
|
|
||||||
|
|
||||||
return SWIG_NbInputArgument(_pvApiCtx) + _iVarOut;
|
|
||||||
}
|
|
||||||
|
|
||||||
SWIGRUNTIME int
|
|
||||||
SWIG_Scilab_SetOutput(void *_pvApiCtx, SwigSciObject _output) {
|
|
||||||
int outputPosition = SWIG_Scilab_GetOutputPositionAndReset();
|
|
||||||
if (outputPosition < 0 || _output < 0) {
|
|
||||||
return SWIG_ERROR;
|
|
||||||
}
|
|
||||||
SWIG_AssignOutputArgument(_pvApiCtx, outputPosition, _output);
|
|
||||||
return SWIG_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
#define SWIG_Scilab_Raise(obj, type, desc) SwigScilabRaise(type)
|
|
||||||
|
|
||||||
SWIGRUNTIME int
|
|
||||||
SwigScilabRaise(const char *type) {
|
|
||||||
Scierror(999, "An exception of type %s has been thrown.\n", type);
|
|
||||||
#ifdef __cplusplus
|
|
||||||
throw;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
%}
|
|
||||||
|
|
||||||
%init %{
|
%init %{
|
||||||
#define SWIG_GetModule(clientdata) SWIG_Scilab_GetModule()
|
#define SWIG_GetModule(clientdata) SWIG_Scilab_GetModule()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue