1/* ----------------------------------------------------------------------------- 2 * See the LICENSE file for information on copyright, usage and redistribution 3 * of SWIG, and the README file for authors - http://www.swig.org/release.html. 4 * 5 * file.i 6 * 7 * Typemaps for FILE* 8 * From the ideas of Luigi Ballabio 9 * ----------------------------------------------------------------------------- */ 10 11%types(FILE *); 12 13/* defining basic methods */ 14%fragment("SWIG_AsValFilePtr","header") { 15SWIGINTERN int 16SWIG_AsValFilePtr(PyObject *obj, FILE **val) { 17 static swig_type_info* desc = 0; 18 void *vptr = 0; 19 if (!desc) desc = SWIG_TypeQuery("FILE *"); 20 if ((SWIG_ConvertPtr(obj, &vptr, desc, 0)) == SWIG_OK) { 21 if (val) *val = (FILE *)vptr; 22 return SWIG_OK; 23 } 24%#if PY_VERSION_HEX < 0x03000000 25 if (PyFile_Check(obj)) { 26 if (val) *val = PyFile_AsFile(obj); 27 return SWIG_OK; 28 } 29%#endif 30 return SWIG_TypeError; 31} 32} 33 34 35%fragment("SWIG_AsFilePtr","header",fragment="SWIG_AsValFilePtr") { 36SWIGINTERNINLINE FILE* 37SWIG_AsFilePtr(PyObject *obj) { 38 FILE *val = 0; 39 SWIG_AsValFilePtr(obj, &val); 40 return val; 41} 42} 43 44/* defining the typemaps */ 45%typemaps_asval(%checkcode(POINTER), SWIG_AsValFilePtr, "SWIG_AsValFilePtr", FILE*); 46