| 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*); |