summaryrefslogtreecommitdiff
path: root/Lib/scilab/scilist.swg
blob: 513f40b642976b2137e697725458c5e2cabe4e05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
/*
 * Scilab list related functions
 *
 */

%fragment("SWIG_ScilabList", "header")
{
SWIGINTERN int
SWIG_GetScilabList(SwigSciObject obj, int **piListAddr)
{
  SciErr sciErr;

  sciErr = getVarAddressFromPosition(pvApiCtx, obj, piListAddr);
  if (sciErr.iErr) {
    printError(&sciErr, 0);
    return SWIG_ERROR;
  }

  return SWIG_OK;
}

SWIGINTERN int
SWIG_GetScilabListSize(SwigSciObject obj, int *piListSize)
{
  SciErr sciErr;
  int *piListAddr;

  sciErr = getVarAddressFromPosition(pvApiCtx, obj, &piListAddr);
  if (sciErr.iErr) {
    printError(&sciErr, 0);
    return SWIG_ERROR;
  }

  sciErr = getListItemNumber(pvApiCtx, piListAddr, piListSize);
  if (sciErr.iErr) {
    printError(&sciErr, 0);
    return SWIG_ERROR;
  }

  return SWIG_OK;
}

SWIGINTERN int
SWIG_GetScilabListAndSize(SwigSciObject obj, int **piListAddr, int *piListSize)
{
  SciErr sciErr;

  sciErr = getVarAddressFromPosition(pvApiCtx, obj, piListAddr);
  if (sciErr.iErr) {
    printError(&sciErr, 0);
    return SWIG_ERROR;
  }

  sciErr = getListItemNumber(pvApiCtx, *piListAddr, piListSize);
  if (sciErr.iErr) {
    printError(&sciErr, 0);
    return SWIG_ERROR;
  }

  return SWIG_OK;
}

SWIGINTERN int
SWIG_CheckScilabList(SwigSciObject obj)
{
  SciErr sciErr;
  int *piListAddr;
  int iType;

  sciErr = getVarAddressFromPosition(pvApiCtx, obj, &piListAddr);
  if (sciErr.iErr) {
    printError(&sciErr, 0);
    return SWIG_ERROR;
  }

  sciErr = getVarType(pvApiCtx, piListAddr, &iType);
  if (sciErr.iErr) {
    printError(&sciErr, 0);
    return SWIG_ERROR;
  }

  if ((iType != sci_list) && (iType != sci_tlist) && (iType != sci_mlist)) {
    Scierror(SCILAB_API_ARGUMENT_ERROR, _("%s: Wrong type for input argument #%d: A list is expected.\n"), SWIG_Scilab_GetFuncName(), obj);
    return SWIG_ERROR;
  }

  return SWIG_OK;
}

}