Commit | Line | Data |
---|---|---|
920dae64 AT |
1 | /* |
2 | Typemaps for FILE* | |
3 | ||
4 | From the ideas of Luigi | |
5 | luigi.ballabio@fastwebnet.it | |
6 | */ | |
7 | ||
8 | %types(FILE *); | |
9 | ||
10 | /* defining basic methods */ | |
11 | %fragment("SWIG_AsValFilePtr","header") { | |
12 | SWIGINTERN int | |
13 | SWIG_AsValFilePtr(PyObject *obj, FILE **val) { | |
14 | static swig_type_info* desc = 0; | |
15 | FILE *ptr = 0; | |
16 | if (!desc) desc = SWIG_TypeQuery("FILE *"); | |
17 | if ((SWIG_ConvertPtr(obj,(void **)(&ptr), desc, 0)) != -1) { | |
18 | if (val) *val = ptr; | |
19 | return 1; | |
20 | } | |
21 | if (PyFile_Check(obj)) { | |
22 | if (val) *val = PyFile_AsFile(obj); | |
23 | return 1; | |
24 | } | |
25 | if (val) PyErr_SetString(PyExc_TypeError, "a FILE* is expected"); | |
26 | return 0; | |
27 | } | |
28 | } | |
29 | ||
30 | %fragment("SWIG_AsFilePtr","header",fragment="SWIG_AsValFilePtr") { | |
31 | SWIGINTERNINLINE FILE* | |
32 | SWIG_AsFilePtr(PyObject *obj) { | |
33 | FILE *val = 0; | |
34 | SWIG_AsValFilePtr(obj, &val); | |
35 | return val; | |
36 | } | |
37 | } | |
38 | ||
39 | %fragment("SWIG_CheckFilePtr","header",fragment="SWIG_AsValFilePtr") { | |
40 | SWIGINTERNINLINE int | |
41 | SWIG_CheckFilePtr(PyObject *obj) { | |
42 | return SWIG_AsValFilePtr(obj, (FILE **)(0)); | |
43 | } | |
44 | } | |
45 | ||
46 | /* defining the typemaps */ | |
47 | %typemap_ascheck(SWIG_CCode(POINTER), SWIG_AsFilePtr, SWIG_CheckFilePtr, | |
48 | "SWIG_AsFilePtr", "SWIG_CheckFilePtr", FILE*); |