summaryrefslogtreecommitdiff
path: root/Lib/scilab/sciexception.swg
blob: 9b842cf2f4685dd6f156dd8dbd341d87f130b174 (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
/*
 * Exception typemaps (throws)
 */

%include <exception.i>

%typemap(throws, noblock=1) int, unsigned int, signed int,
                            int&,unsigned int&, signed int&,
                            long, unsigned long, signed long,
                            short, unsigned short,signed short,
                            long long, unsigned long long,
                            unsigned char, signed char,
                            long&, unsigned long&, signed long&,
                            short&, unsigned short&, signed short&,
                            long long&, unsigned long long&,
                            unsigned char&, signed char&,
                            size_t, size_t&,
                            ptrdiff_t, ptrdiff_t& {
  char obj[20];
  SWIG_snprintf(obj, sizeof(obj), "%d", (int)$1);
  SWIG_Scilab_Raise_Ex(obj, "$type", $descriptor);
}

%typemap(throws, noblock=1) enum SWIGTYPE {
  char obj[20];
  SWIG_snprintf(obj, sizeof(obj), "%d", (int)$1);
  SWIG_Scilab_Raise_Ex(obj, "$type", $descriptor);
}

%typemap(throws, noblock=1) float, double,
                            float&, double& {
  char obj[20];
  SWIG_snprintf(obj, sizeof(obj), "%5.3f", (double)$1);
  SWIG_Scilab_Raise_Ex(obj, "$type", $descriptor);
}

%typemap(throws, noblock=1) bool, bool& {
  SWIG_Scilab_Raise_Ex($1 ? "true" : "false", "$type", $descriptor);
}

%typemap(throws, noblock=1) char*, char[ANY] {
  SWIG_Scilab_Raise_Ex($1, "$type", $descriptor);
}

%typemap(throws, noblock=1) char, char& {
  char obj[2];
  obj[0] = (char)$1;
  obj[1] = 0;
  SWIG_Scilab_Raise_Ex(obj, "$type", $descriptor);
}

%typemap(throws, noblock=1) SWIGTYPE,
                            SWIGTYPE*,
                            SWIGTYPE [ANY],
                            SWIGTYPE & {
  SWIG_Scilab_Raise_Ex((char*)NULL, "$type", $descriptor);
}

%typemap(throws, noblock=1) (...) {
  SWIG_exception(SWIG_RuntimeError, "unknown exception");
}