git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@6998 626c5289-ae23-0410-ae9c-e8d60b6d4f22
48 lines
1.1 KiB
OpenEdge ABL
48 lines
1.1 KiB
OpenEdge ABL
/*
|
|
Typemaps for FILE*
|
|
|
|
From the ideas of Luigi
|
|
luigi.ballabio@fastwebnet.it
|
|
*/
|
|
|
|
%types(FILE *);
|
|
|
|
/* defining basic methods */
|
|
%fragment("SWIG_AsValFilePtr","header") {
|
|
SWIGINTERN int
|
|
SWIG_AsValFilePtr(PyObject *obj, FILE **val) {
|
|
static swig_type_info* desc = 0;
|
|
FILE *ptr = 0;
|
|
if (!desc) desc = SWIG_TypeQuery("FILE *");
|
|
if ((SWIG_ConvertPtr(obj,(void **)(&ptr), desc, 0)) != -1) {
|
|
if (val) *val = ptr;
|
|
return 1;
|
|
}
|
|
if (PyFile_Check(obj)) {
|
|
if (val) *val = PyFile_AsFile(obj);
|
|
return 1;
|
|
}
|
|
if (val) PyErr_SetString(PyExc_TypeError, "a FILE* is expected");
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
%fragment("SWIG_AsFilePtr","header",fragment="SWIG_AsValFilePtr") {
|
|
SWIGINTERNINLINE FILE*
|
|
SWIG_AsFilePtr(PyObject *obj) {
|
|
FILE *val = 0;
|
|
SWIG_AsValFilePtr(obj, &val);
|
|
return val;
|
|
}
|
|
}
|
|
|
|
%fragment("SWIG_CheckFilePtr","header",fragment="SWIG_AsValFilePtr") {
|
|
SWIGINTERNINLINE int
|
|
SWIG_CheckFilePtr(PyObject *obj) {
|
|
return SWIG_AsValFilePtr(obj, (FILE **)(0));
|
|
}
|
|
}
|
|
|
|
/* defining the typemaps */
|
|
%typemap_ascheck(SWIG_CCode(POINTER), SWIG_AsFilePtr, SWIG_CheckFilePtr,
|
|
"SWIG_AsFilePtr", "SWIG_CheckFilePtr", FILE*);
|