Since I have made several changes to SWIG over the years to accomodate
special cases and other things in wxPython, and since I plan on making several more, I've decided to put the SWIG sources in wxPython's CVS instead of relying on maintaining patches. This effectivly becomes a fork of an obsolete version of SWIG, :-( but since SWIG 1.3 still doesn't have some things I rely on in 1.1, not to mention that my custom patches would all have to be redone, I felt that this is the easier road to take. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@15307 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
172
wxPython/wxSWIG/swig_lib/config/swigptr.swg
Normal file
172
wxPython/wxSWIG/swig_lib/config/swigptr.swg
Normal file
@@ -0,0 +1,172 @@
|
||||
/* swigptr.cfg
|
||||
* $Header$
|
||||
*
|
||||
* This file contains two functions :
|
||||
*
|
||||
* void _swig_make_hex(char *_c, void *_ptr, char *type)
|
||||
* char *_swig_get_hex(char *_c, void **ptr, char *type)
|
||||
*
|
||||
* These are used to convert pointers to and from pointer strings
|
||||
* and to perform type checking.
|
||||
*
|
||||
* You can remap these functions by making a file called "swigptr.cfg" in
|
||||
* your the same directory as the interface file you are wrapping.
|
||||
*
|
||||
* IMPORTANT !!! the function _swig_get_hex returns a non-null char pointer
|
||||
* in the event of a type error (this is used to generate an error message).
|
||||
* If a type is successfully parsed, a NULL pointer is returned.
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.1 2002/04/29 19:56:50 RD
|
||||
* Since I have made several changes to SWIG over the years to accomodate
|
||||
* special cases and other things in wxPython, and since I plan on making
|
||||
* several more, I've decided to put the SWIG sources in wxPython's CVS
|
||||
* instead of relying on maintaining patches. This effectivly becomes a
|
||||
* fork of an obsolete version of SWIG, :-( but since SWIG 1.3 still
|
||||
* doesn't have some things I rely on in 1.1, not to mention that my
|
||||
* custom patches would all have to be redone, I felt that this is the
|
||||
* easier road to take.
|
||||
*
|
||||
* Revision 1.1.1.1 1999/02/28 02:00:53 beazley
|
||||
* Swig1.1
|
||||
*
|
||||
* Revision 1.5 1996/08/01 16:28:56 dmb
|
||||
* Took out unused "dt" variable.
|
||||
*
|
||||
* Revision 1.4 1996/07/23 14:38:42 dmb
|
||||
* Minor change to handling of NULL pointers.
|
||||
*
|
||||
* Revision 1.3 1996/07/17 15:26:08 dmb
|
||||
* Made a minor bug fix so pointers of form _0_Type could be used
|
||||
* (as described in the manual). Disable by compiling with -DNO_ZERO.
|
||||
*
|
||||
* Revision 1.2 1996/06/10 23:42:10 beazley
|
||||
* Added const qualifier.
|
||||
*
|
||||
# Revision 1.1 1996/05/22 17:17:47 beazley
|
||||
# Initial revision
|
||||
#
|
||||
*/
|
||||
|
||||
static void
|
||||
_swig_make_hex (char *_c, const void *_ptr, char *type)
|
||||
{
|
||||
static char _hex[16] =
|
||||
{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
|
||||
'a', 'b', 'c', 'd', 'e', 'f'};
|
||||
unsigned long _p, _s;
|
||||
char _result[128], *_r;
|
||||
_r = _result;
|
||||
_p = (unsigned long) _ptr;
|
||||
if (_p > 0)
|
||||
{
|
||||
while (_p > 0)
|
||||
{
|
||||
_s = _p & 0xf;
|
||||
*(_r++) = _hex[_s];
|
||||
_p = _p >> 4;
|
||||
}
|
||||
*_r = '_';
|
||||
while (_r >= _result)
|
||||
*(_c++) = *(_r--);
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy (_c, "NULL");
|
||||
}
|
||||
if (_ptr)
|
||||
strcpy (_c, type);
|
||||
}
|
||||
|
||||
/* A forward reference; */
|
||||
|
||||
static char ***swig_ptr_derived = 0;
|
||||
|
||||
static char *
|
||||
_swig_get_hex (char *_c, void **ptr, char *_t)
|
||||
{
|
||||
unsigned long _p;
|
||||
char temp_type[256];
|
||||
char *_tt;
|
||||
char **eq;
|
||||
int i, j, n;
|
||||
_p = 0;
|
||||
if (*_c == '_')
|
||||
{
|
||||
_c++;
|
||||
while (*_c)
|
||||
{
|
||||
if ((*_c >= '0') && (*_c <= '9'))
|
||||
_p = (_p << 4) + (*_c - '0');
|
||||
else if ((*_c >= 'a') && (*_c <= 'f'))
|
||||
_p = (_p << 4) + ((*_c - 'a') + 10);
|
||||
else
|
||||
break;
|
||||
_c++;
|
||||
}
|
||||
#ifdef NO_ZERO
|
||||
if (_p == 0)
|
||||
{
|
||||
return (char *) _c;
|
||||
}
|
||||
#endif
|
||||
_tt = _c;
|
||||
if (_t)
|
||||
{
|
||||
if (strcmp (_c, _t))
|
||||
{
|
||||
/* Have a type mismatch, we're going to have to do some
|
||||
searching here */
|
||||
i = 0;
|
||||
if (swig_ptr_derived)
|
||||
{
|
||||
while (swig_ptr_derived[i])
|
||||
{
|
||||
eq = swig_ptr_derived[i];
|
||||
/* Check type */
|
||||
if (strncmp (_t, eq[0], strlen (eq[0])) == 0)
|
||||
{
|
||||
/* Found derived type list for this. */
|
||||
n = strlen (eq[0]);
|
||||
j = 1;
|
||||
while (eq[j])
|
||||
{
|
||||
sprintf (temp_type, "%s%s", eq[j], _t + n);
|
||||
if (strcmp (_c, temp_type) == 0)
|
||||
{
|
||||
*ptr = (void *) _p;
|
||||
return (char *) 0;
|
||||
}
|
||||
j++;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
}
|
||||
*ptr = (void *) _p;
|
||||
return _tt;
|
||||
}
|
||||
else
|
||||
{
|
||||
*ptr = (void *) _p;
|
||||
return (char *) 0;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
*ptr = (void *) _p;
|
||||
return (char *) 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
#ifdef ALLOW_NULL
|
||||
if (strcmp (_c, "NULL") == 0)
|
||||
{
|
||||
*ptr = (void *) 0;
|
||||
return (char *) 0;
|
||||
}
|
||||
#endif
|
||||
*ptr = (void *) 0;
|
||||
return _c;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user