]> git.saurik.com Git - wxWidgets.git/blame - wxPython/contrib/stc/msw/stc_wrap.cpp
move the nodefault option into _defs.i too.
[wxWidgets.git] / wxPython / contrib / stc / msw / stc_wrap.cpp
CommitLineData
cfe5e918
RD
1/* ----------------------------------------------------------------------------
2 * This file was automatically generated by SWIG (http://www.swig.org).
7449af73 3 * Version 1.3.27
cfe5e918
RD
4 *
5 * This file is not intended to be easily readable and contains a number of
6 * coding conventions designed to improve portability and efficiency. Do not make
7 * changes to this file unless you know what you are doing--modify the SWIG
8 * interface file instead.
9 * ----------------------------------------------------------------------------- */
10
11#define SWIGPYTHON
cfe5e918
RD
12
13#ifdef __cplusplus
14template<class T> class SwigValueWrapper {
15 T *tt;
16public:
17 SwigValueWrapper() : tt(0) { }
18 SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
19 SwigValueWrapper(const T& t) : tt(new T(t)) { }
20 ~SwigValueWrapper() { delete tt; }
21 SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
22 operator T&() const { return *tt; }
23 T *operator&() { return tt; }
24private:
25 SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
093d3ff1 26};
cfe5e918
RD
27#endif
28
7449af73
RD
29/***********************************************************************
30 *
31 * This section contains generic SWIG labels for method/variable
32 * declarations/attributes, and other compiler dependent labels.
33 *
34 ************************************************************************/
cfe5e918 35
7449af73
RD
36/* template workaround for compilers that cannot correctly implement the C++ standard */
37#ifndef SWIGTEMPLATEDISAMBIGUATOR
38# if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
39# define SWIGTEMPLATEDISAMBIGUATOR template
093d3ff1 40# else
7449af73 41# define SWIGTEMPLATEDISAMBIGUATOR
093d3ff1
RD
42# endif
43#endif
cfe5e918 44
7449af73
RD
45/* inline attribute */
46#ifndef SWIGINLINE
47# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
48# define SWIGINLINE inline
49# else
50# define SWIGINLINE
51# endif
52#endif
53
54/* attribute recognised by some compilers to avoid 'unused' warnings */
55#ifndef SWIGUNUSED
56# if defined(__GNUC__) || defined(__ICC)
57# define SWIGUNUSED __attribute__ ((unused))
58# else
59# define SWIGUNUSED
60# endif
61#endif
62
63/* internal SWIG method */
64#ifndef SWIGINTERN
65# define SWIGINTERN static SWIGUNUSED
66#endif
67
68/* internal inline SWIG method */
69#ifndef SWIGINTERNINLINE
70# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
71#endif
72
73/* exporting methods for Windows DLLs */
74#ifndef SWIGEXPORT
75# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
76# if defined(STATIC_LINKED)
77# define SWIGEXPORT
78# else
79# define SWIGEXPORT __declspec(dllexport)
80# endif
81# else
82# define SWIGEXPORT
83# endif
84#endif
85
86/* calling conventions for Windows */
87#ifndef SWIGSTDCALL
88# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
89# define SWIGSTDCALL __stdcall
90# else
91# define SWIGSTDCALL
92# endif
93#endif
94
95
cfe5e918 96
093d3ff1 97#include <Python.h>
cfe5e918
RD
98
99/***********************************************************************
093d3ff1 100 * swigrun.swg
cfe5e918 101 *
093d3ff1
RD
102 * This file contains generic CAPI SWIG runtime support for pointer
103 * type checking.
cfe5e918
RD
104 *
105 ************************************************************************/
106
093d3ff1
RD
107/* This should only be incremented when either the layout of swig_type_info changes,
108 or for whatever reason, the runtime changes incompatibly */
7449af73 109#define SWIG_RUNTIME_VERSION "2"
cfe5e918 110
093d3ff1
RD
111/* define SWIG_TYPE_TABLE_NAME as "SWIG_TYPE_TABLE" */
112#ifdef SWIG_TYPE_TABLE
7449af73
RD
113# define SWIG_QUOTE_STRING(x) #x
114# define SWIG_EXPAND_AND_QUOTE_STRING(x) SWIG_QUOTE_STRING(x)
115# define SWIG_TYPE_TABLE_NAME SWIG_EXPAND_AND_QUOTE_STRING(SWIG_TYPE_TABLE)
cfe5e918 116#else
7449af73 117# define SWIG_TYPE_TABLE_NAME
093d3ff1
RD
118#endif
119
120/*
121 You can use the SWIGRUNTIME and SWIGRUNTIMEINLINE macros for
122 creating a static or dynamic library from the swig runtime code.
123 In 99.9% of the cases, swig just needs to declare them as 'static'.
124
125 But only do this if is strictly necessary, ie, if you have problems
126 with your compiler or so.
127*/
7449af73 128
093d3ff1 129#ifndef SWIGRUNTIME
7449af73 130# define SWIGRUNTIME SWIGINTERN
093d3ff1 131#endif
7449af73 132
093d3ff1 133#ifndef SWIGRUNTIMEINLINE
7449af73 134# define SWIGRUNTIMEINLINE SWIGRUNTIME SWIGINLINE
cfe5e918
RD
135#endif
136
7449af73
RD
137#include <string.h>
138
cfe5e918
RD
139#ifdef __cplusplus
140extern "C" {
141#endif
142
143typedef void *(*swig_converter_func)(void *);
144typedef struct swig_type_info *(*swig_dycast_func)(void **);
145
7449af73 146/* Structure to store inforomation on one type */
cfe5e918 147typedef struct swig_type_info {
7449af73
RD
148 const char *name; /* mangled name of this type */
149 const char *str; /* human readable name of this type */
150 swig_dycast_func dcast; /* dynamic cast function down a hierarchy */
151 struct swig_cast_info *cast; /* linked list of types that can cast into this type */
152 void *clientdata; /* language specific type data */
cfe5e918
RD
153} swig_type_info;
154
7449af73
RD
155/* Structure to store a type and conversion function used for casting */
156typedef struct swig_cast_info {
157 swig_type_info *type; /* pointer to type that is equivalent to this type */
158 swig_converter_func converter; /* function to cast the void pointers */
159 struct swig_cast_info *next; /* pointer to next cast in linked list */
160 struct swig_cast_info *prev; /* pointer to the previous cast */
161} swig_cast_info;
162
163/* Structure used to store module information
164 * Each module generates one structure like this, and the runtime collects
165 * all of these structures and stores them in a circularly linked list.*/
166typedef struct swig_module_info {
167 swig_type_info **types; /* Array of pointers to swig_type_info structures that are in this module */
168 size_t size; /* Number of types in this module */
169 struct swig_module_info *next; /* Pointer to next element in circularly linked list */
170 swig_type_info **type_initial; /* Array of initially generated type structures */
171 swig_cast_info **cast_initial; /* Array of initially generated casting structures */
172 void *clientdata; /* Language specific module data */
173} swig_module_info;
174
175
093d3ff1
RD
176/*
177 Compare two type names skipping the space characters, therefore
178 "char*" == "char *" and "Class<int>" == "Class<int >", etc.
179
180 Return 0 when the two name types are equivalent, as in
181 strncmp, but skipping ' '.
182*/
183SWIGRUNTIME int
184SWIG_TypeNameComp(const char *f1, const char *l1,
185 const char *f2, const char *l2) {
186 for (;(f1 != l1) && (f2 != l2); ++f1, ++f2) {
187 while ((*f1 == ' ') && (f1 != l1)) ++f1;
188 while ((*f2 == ' ') && (f2 != l2)) ++f2;
7449af73 189 if (*f1 != *f2) return (int)(*f1 - *f2);
093d3ff1
RD
190 }
191 return (l1 - f1) - (l2 - f2);
192}
193
194/*
195 Check type equivalence in a name list like <name1>|<name2>|...
7449af73 196 Return 0 if not equal, 1 if equal
093d3ff1
RD
197*/
198SWIGRUNTIME int
199SWIG_TypeEquiv(const char *nb, const char *tb) {
200 int equiv = 0;
201 const char* te = tb + strlen(tb);
202 const char* ne = nb;
203 while (!equiv && *ne) {
204 for (nb = ne; *ne; ++ne) {
205 if (*ne == '|') break;
206 }
7449af73 207 equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
093d3ff1
RD
208 if (*ne) ++ne;
209 }
210 return equiv;
211}
212
213/*
7449af73
RD
214 Check type equivalence in a name list like <name1>|<name2>|...
215 Return 0 if equal, -1 if nb < tb, 1 if nb > tb
093d3ff1 216*/
7449af73
RD
217SWIGRUNTIME int
218SWIG_TypeCompare(const char *nb, const char *tb) {
219 int equiv = 0;
220 const char* te = tb + strlen(tb);
221 const char* ne = nb;
222 while (!equiv && *ne) {
223 for (nb = ne; *ne; ++ne) {
224 if (*ne == '|') break;
093d3ff1 225 }
7449af73
RD
226 equiv = (SWIG_TypeNameComp(nb, ne, tb, te) == 0) ? 1 : 0;
227 if (*ne) ++ne;
093d3ff1 228 }
7449af73
RD
229 return equiv;
230}
093d3ff1 231
093d3ff1 232
7449af73
RD
233/* think of this as a c++ template<> or a scheme macro */
234#define SWIG_TypeCheck_Template(comparison, ty) \
235 if (ty) { \
236 swig_cast_info *iter = ty->cast; \
237 while (iter) { \
238 if (comparison) { \
239 if (iter == ty->cast) return iter; \
240 /* Move iter to the top of the linked list */ \
241 iter->prev->next = iter->next; \
242 if (iter->next) \
243 iter->next->prev = iter->prev; \
244 iter->next = ty->cast; \
245 iter->prev = 0; \
246 if (ty->cast) ty->cast->prev = iter; \
247 ty->cast = iter; \
248 return iter; \
249 } \
250 iter = iter->next; \
251 } \
252 } \
253 return 0
093d3ff1
RD
254
255/*
256 Check the typename
257*/
7449af73 258SWIGRUNTIME swig_cast_info *
093d3ff1 259SWIG_TypeCheck(const char *c, swig_type_info *ty) {
7449af73
RD
260 SWIG_TypeCheck_Template(strcmp(iter->type->name, c) == 0, ty);
261}
262
263/* Same as previous function, except strcmp is replaced with a pointer comparison */
264SWIGRUNTIME swig_cast_info *
265SWIG_TypeCheckStruct(swig_type_info *from, swig_type_info *into) {
266 SWIG_TypeCheck_Template(iter->type == from, into);
093d3ff1
RD
267}
268
269/*
270 Cast a pointer up an inheritance hierarchy
271*/
272SWIGRUNTIMEINLINE void *
7449af73 273SWIG_TypeCast(swig_cast_info *ty, void *ptr) {
093d3ff1
RD
274 return ((!ty) || (!ty->converter)) ? ptr : (*ty->converter)(ptr);
275}
276
277/*
278 Dynamic pointer casting. Down an inheritance hierarchy
279*/
280SWIGRUNTIME swig_type_info *
281SWIG_TypeDynamicCast(swig_type_info *ty, void **ptr) {
282 swig_type_info *lastty = ty;
283 if (!ty || !ty->dcast) return ty;
284 while (ty && (ty->dcast)) {
285 ty = (*ty->dcast)(ptr);
286 if (ty) lastty = ty;
287 }
288 return lastty;
289}
290
291/*
292 Return the name associated with this type
293*/
294SWIGRUNTIMEINLINE const char *
295SWIG_TypeName(const swig_type_info *ty) {
296 return ty->name;
297}
298
299/*
300 Return the pretty name associated with this type,
301 that is an unmangled type name in a form presentable to the user.
302*/
303SWIGRUNTIME const char *
304SWIG_TypePrettyName(const swig_type_info *type) {
305 /* The "str" field contains the equivalent pretty names of the
306 type, separated by vertical-bar characters. We choose
307 to print the last name, as it is often (?) the most
308 specific. */
309 if (type->str != NULL) {
310 const char *last_name = type->str;
311 const char *s;
312 for (s = type->str; *s; s++)
313 if (*s == '|') last_name = s+1;
314 return last_name;
315 }
316 else
317 return type->name;
318}
319
093d3ff1
RD
320/*
321 Set the clientdata field for a type
322*/
323SWIGRUNTIME void
7449af73
RD
324SWIG_TypeClientData(swig_type_info *ti, void *clientdata) {
325 swig_cast_info *cast = ti->cast;
093d3ff1
RD
326 /* if (ti->clientdata == clientdata) return; */
327 ti->clientdata = clientdata;
7449af73
RD
328
329 while (cast) {
330 if (!cast->converter) {
331 swig_type_info *tc = cast->type;
332 if (!tc->clientdata) {
333 SWIG_TypeClientData(tc, clientdata);
093d3ff1 334 }
7449af73
RD
335 }
336 cast = cast->next;
337 }
338}
339
340/*
341 Search for a swig_type_info structure only by mangled name
342 Search is a O(log #types)
343
344 We start searching at module start, and finish searching when start == end.
345 Note: if start == end at the beginning of the function, we go all the way around
346 the circular list.
347*/
348SWIGRUNTIME swig_type_info *
349SWIG_MangledTypeQueryModule(swig_module_info *start,
350 swig_module_info *end,
351 const char *name) {
352 swig_module_info *iter = start;
353 do {
354 if (iter->size) {
355 register size_t l = 0;
356 register size_t r = iter->size - 1;
357 do {
358 /* since l+r >= 0, we can (>> 1) instead (/ 2) */
359 register size_t i = (l + r) >> 1;
360 const char *iname = iter->types[i]->name;
361 if (iname) {
362 register int compare = strcmp(name, iname);
363 if (compare == 0) {
364 return iter->types[i];
365 } else if (compare < 0) {
366 if (i) {
367 r = i - 1;
368 } else {
369 break;
370 }
371 } else if (compare > 0) {
372 l = i + 1;
373 }
374 } else {
375 break; /* should never happen */
376 }
377 } while (l <= r);
093d3ff1 378 }
7449af73
RD
379 iter = iter->next;
380 } while (iter != end);
381 return 0;
382}
383
384/*
385 Search for a swig_type_info structure for either a mangled name or a human readable name.
386 It first searches the mangled names of the types, which is a O(log #types)
387 If a type is not found it then searches the human readable names, which is O(#types).
388
389 We start searching at module start, and finish searching when start == end.
390 Note: if start == end at the beginning of the function, we go all the way around
391 the circular list.
392*/
393SWIGRUNTIME swig_type_info *
394SWIG_TypeQueryModule(swig_module_info *start,
395 swig_module_info *end,
396 const char *name) {
397 /* STEP 1: Search the name field using binary search */
398 swig_type_info *ret = SWIG_MangledTypeQueryModule(start, end, name);
399 if (ret) {
400 return ret;
401 } else {
402 /* STEP 2: If the type hasn't been found, do a complete search
403 of the str field (the human readable name) */
404 swig_module_info *iter = start;
405 do {
406 register size_t i = 0;
407 for (; i < iter->size; ++i) {
408 if (iter->types[i]->str && (SWIG_TypeEquiv(iter->types[i]->str, name)))
409 return iter->types[i];
410 }
411 iter = iter->next;
412 } while (iter != end);
093d3ff1 413 }
7449af73
RD
414
415 /* neither found a match */
416 return 0;
093d3ff1
RD
417}
418
7449af73 419
093d3ff1
RD
420/*
421 Pack binary data into a string
422*/
423SWIGRUNTIME char *
424SWIG_PackData(char *c, void *ptr, size_t sz) {
7449af73
RD
425 static const char hex[17] = "0123456789abcdef";
426 register const unsigned char *u = (unsigned char *) ptr;
427 register const unsigned char *eu = u + sz;
093d3ff1 428 for (; u != eu; ++u) {
7449af73 429 register unsigned char uu = *u;
093d3ff1
RD
430 *(c++) = hex[(uu & 0xf0) >> 4];
431 *(c++) = hex[uu & 0xf];
432 }
433 return c;
434}
435
436/*
437 Unpack binary data from a string
438*/
439SWIGRUNTIME const char *
440SWIG_UnpackData(const char *c, void *ptr, size_t sz) {
441 register unsigned char *u = (unsigned char *) ptr;
7449af73 442 register const unsigned char *eu = u + sz;
093d3ff1 443 for (; u != eu; ++u) {
7449af73 444 register char d = *(c++);
093d3ff1
RD
445 register unsigned char uu = 0;
446 if ((d >= '0') && (d <= '9'))
447 uu = ((d - '0') << 4);
448 else if ((d >= 'a') && (d <= 'f'))
449 uu = ((d - ('a'-10)) << 4);
450 else
451 return (char *) 0;
452 d = *(c++);
453 if ((d >= '0') && (d <= '9'))
454 uu |= (d - '0');
455 else if ((d >= 'a') && (d <= 'f'))
456 uu |= (d - ('a'-10));
457 else
458 return (char *) 0;
459 *u = uu;
460 }
461 return c;
462}
463
093d3ff1
RD
464/*
465 Pack 'void *' into a string buffer.
466*/
467SWIGRUNTIME char *
468SWIG_PackVoidPtr(char *buff, void *ptr, const char *name, size_t bsz) {
469 char *r = buff;
470 if ((2*sizeof(void *) + 2) > bsz) return 0;
471 *(r++) = '_';
472 r = SWIG_PackData(r,&ptr,sizeof(void *));
473 if (strlen(name) + 1 > (bsz - (r - buff))) return 0;
474 strcpy(r,name);
475 return buff;
476}
477
478SWIGRUNTIME const char *
479SWIG_UnpackVoidPtr(const char *c, void **ptr, const char *name) {
480 if (*c != '_') {
481 if (strcmp(c,"NULL") == 0) {
482 *ptr = (void *) 0;
483 return name;
484 } else {
485 return 0;
486 }
487 }
488 return SWIG_UnpackData(++c,ptr,sizeof(void *));
489}
490
491SWIGRUNTIME char *
492SWIG_PackDataName(char *buff, void *ptr, size_t sz, const char *name, size_t bsz) {
493 char *r = buff;
494 size_t lname = (name ? strlen(name) : 0);
495 if ((2*sz + 2 + lname) > bsz) return 0;
496 *(r++) = '_';
497 r = SWIG_PackData(r,ptr,sz);
498 if (lname) {
499 strncpy(r,name,lname+1);
500 } else {
501 *r = 0;
502 }
503 return buff;
504}
cfe5e918 505
093d3ff1
RD
506SWIGRUNTIME const char *
507SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
508 if (*c != '_') {
509 if (strcmp(c,"NULL") == 0) {
510 memset(ptr,0,sz);
511 return name;
512 } else {
513 return 0;
514 }
515 }
516 return SWIG_UnpackData(++c,ptr,sz);
517}
cfe5e918
RD
518
519#ifdef __cplusplus
520}
521#endif
522
093d3ff1
RD
523/* -----------------------------------------------------------------------------
524 * SWIG API. Portion that goes into the runtime
525 * ----------------------------------------------------------------------------- */
cfe5e918 526
093d3ff1
RD
527#ifdef __cplusplus
528extern "C" {
529#endif
c32bde28 530
093d3ff1
RD
531/* -----------------------------------------------------------------------------
532 * for internal method declarations
533 * ----------------------------------------------------------------------------- */
cfe5e918 534
093d3ff1 535#ifndef SWIGINTERN
7449af73 536# define SWIGINTERN static SWIGUNUSED
093d3ff1 537#endif
cfe5e918 538
7449af73
RD
539#ifndef SWIGINTERNINLINE
540# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
093d3ff1 541#endif
cfe5e918 542
093d3ff1
RD
543/*
544 Exception handling in wrappers
545*/
546#define SWIG_fail goto fail
547#define SWIG_arg_fail(arg) SWIG_Python_ArgFail(arg)
548#define SWIG_append_errmsg(msg) SWIG_Python_AddErrMesg(msg,0)
549#define SWIG_preppend_errmsg(msg) SWIG_Python_AddErrMesg(msg,1)
550#define SWIG_type_error(type,obj) SWIG_Python_TypeError(type,obj)
551#define SWIG_null_ref(type) SWIG_Python_NullRef(type)
552
553/*
554 Contract support
555*/
556#define SWIG_contract_assert(expr, msg) \
557 if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else
558
559/* -----------------------------------------------------------------------------
560 * Constant declarations
561 * ----------------------------------------------------------------------------- */
cfe5e918 562
093d3ff1
RD
563/* Constant Types */
564#define SWIG_PY_INT 1
565#define SWIG_PY_FLOAT 2
566#define SWIG_PY_STRING 3
567#define SWIG_PY_POINTER 4
568#define SWIG_PY_BINARY 5
569
570/* Constant information structure */
571typedef struct swig_const_info {
572 int type;
573 char *name;
574 long lvalue;
575 double dvalue;
576 void *pvalue;
577 swig_type_info **ptype;
578} swig_const_info;
cfe5e918 579
c32bde28 580
093d3ff1
RD
581/* -----------------------------------------------------------------------------
582 * Alloc. memory flags
583 * ----------------------------------------------------------------------------- */
c32bde28
RD
584#define SWIG_OLDOBJ 1
585#define SWIG_NEWOBJ SWIG_OLDOBJ + 1
586#define SWIG_PYSTR SWIG_NEWOBJ + 1
cfe5e918
RD
587
588#ifdef __cplusplus
093d3ff1
RD
589}
590#endif
cfe5e918 591
cfe5e918 592
093d3ff1
RD
593/***********************************************************************
594 * pyrun.swg
595 *
596 * This file contains the runtime support for Python modules
597 * and includes code for managing global variables and pointer
598 * type checking.
599 *
600 * Author : David Beazley (beazley@cs.uchicago.edu)
601 ************************************************************************/
cfe5e918 602
093d3ff1
RD
603/* Common SWIG API */
604#define SWIG_ConvertPtr(obj, pp, type, flags) SWIG_Python_ConvertPtr(obj, pp, type, flags)
605#define SWIG_NewPointerObj(p, type, flags) SWIG_Python_NewPointerObj(p, type, flags)
606#define SWIG_MustGetPtr(p, type, argnum, flags) SWIG_Python_MustGetPtr(p, type, argnum, flags)
9d7dfdff 607
cfe5e918 608
093d3ff1
RD
609/* Python-specific SWIG API */
610#define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) SWIG_Python_ConvertPacked(obj, ptr, sz, ty, flags)
611#define SWIG_NewPackedObj(ptr, sz, type) SWIG_Python_NewPackedObj(ptr, sz, type)
cfe5e918 612
7449af73
RD
613/* Runtime API */
614#define SWIG_GetModule(clientdata) SWIG_Python_GetModule()
615#define SWIG_SetModule(clientdata, pointer) SWIG_Python_SetModule(pointer)
cfe5e918 616
093d3ff1
RD
617/* -----------------------------------------------------------------------------
618 * Pointer declarations
619 * ----------------------------------------------------------------------------- */
620/*
621 Use SWIG_NO_COBJECT_TYPES to force the use of strings to represent
622 C/C++ pointers in the python side. Very useful for debugging, but
623 not always safe.
624*/
625#if !defined(SWIG_NO_COBJECT_TYPES) && !defined(SWIG_COBJECT_TYPES)
626# define SWIG_COBJECT_TYPES
627#endif
cfe5e918 628
093d3ff1
RD
629/* Flags for pointer conversion */
630#define SWIG_POINTER_EXCEPTION 0x1
631#define SWIG_POINTER_DISOWN 0x2
cfe5e918 632
cfe5e918 633
7449af73
RD
634/* Add PyOS_snprintf for old Pythons */
635#if PY_VERSION_HEX < 0x02020000
636#define PyOS_snprintf snprintf
637#endif
638
093d3ff1
RD
639#ifdef __cplusplus
640extern "C" {
641#endif
cfe5e918 642
093d3ff1
RD
643/* -----------------------------------------------------------------------------
644 * Create a new pointer string
645 * ----------------------------------------------------------------------------- */
093d3ff1
RD
646#ifndef SWIG_BUFFER_SIZE
647#define SWIG_BUFFER_SIZE 1024
648#endif
cfe5e918 649
7449af73
RD
650/* A crude PyString_FromFormat implementation for old Pythons */
651#if PY_VERSION_HEX < 0x02020000
652static PyObject *
653PyString_FromFormat(const char *fmt, ...) {
654 va_list ap;
655 char buf[SWIG_BUFFER_SIZE * 2];
656 int res;
657 va_start(ap, fmt);
658 res = vsnprintf(buf, sizeof(buf), fmt, ap);
659 va_end(ap);
660 return (res < 0 || res >= sizeof(buf)) ? 0 : PyString_FromString(buf);
661}
662#endif
663
664#if PY_VERSION_HEX < 0x01060000
665#define PyObject_Del(op) PyMem_DEL((op))
666#endif
667
093d3ff1
RD
668#if defined(SWIG_COBJECT_TYPES)
669#if !defined(SWIG_COBJECT_PYTHON)
670/* -----------------------------------------------------------------------------
671 * Implements a simple Swig Object type, and use it instead of PyCObject
672 * ----------------------------------------------------------------------------- */
cfe5e918 673
093d3ff1
RD
674typedef struct {
675 PyObject_HEAD
676 void *ptr;
677 const char *desc;
678} PySwigObject;
cfe5e918 679
093d3ff1 680/* Declarations for objects of type PySwigObject */
cfe5e918 681
093d3ff1
RD
682SWIGRUNTIME int
683PySwigObject_print(PySwigObject *v, FILE *fp, int flags)
684{
685 char result[SWIG_BUFFER_SIZE];
7449af73 686 flags = flags;
093d3ff1
RD
687 if (SWIG_PackVoidPtr(result, v->ptr, v->desc, sizeof(result))) {
688 fputs("<Swig Object at ", fp); fputs(result, fp); fputs(">", fp);
689 return 0;
c32bde28 690 } else {
093d3ff1 691 return 1;
c32bde28 692 }
cfe5e918 693}
9d7dfdff 694
093d3ff1
RD
695SWIGRUNTIME PyObject *
696PySwigObject_repr(PySwigObject *v)
c32bde28 697{
093d3ff1
RD
698 char result[SWIG_BUFFER_SIZE];
699 return SWIG_PackVoidPtr(result, v->ptr, v->desc, sizeof(result)) ?
700 PyString_FromFormat("<Swig Object at %s>", result) : 0;
c32bde28 701}
cfe5e918 702
093d3ff1
RD
703SWIGRUNTIME PyObject *
704PySwigObject_str(PySwigObject *v)
cfe5e918 705{
093d3ff1
RD
706 char result[SWIG_BUFFER_SIZE];
707 return SWIG_PackVoidPtr(result, v->ptr, v->desc, sizeof(result)) ?
708 PyString_FromString(result) : 0;
cfe5e918
RD
709}
710
093d3ff1
RD
711SWIGRUNTIME PyObject *
712PySwigObject_long(PySwigObject *v)
cfe5e918 713{
7449af73
RD
714 return PyLong_FromVoidPtr(v->ptr);
715}
716
717SWIGRUNTIME PyObject *
718PySwigObject_format(const char* fmt, PySwigObject *v)
719{
720 PyObject *res = NULL;
721 PyObject *args = PyTuple_New(1);
722 if (args && (PyTuple_SetItem(args, 0, PySwigObject_long(v)) == 0)) {
723 PyObject *ofmt = PyString_FromString(fmt);
724 if (ofmt) {
725 res = PyString_Format(ofmt,args);
726 Py_DECREF(ofmt);
727 }
728 Py_DECREF(args);
729 }
730 return res;
cfe5e918
RD
731}
732
093d3ff1
RD
733SWIGRUNTIME PyObject *
734PySwigObject_oct(PySwigObject *v)
c32bde28 735{
7449af73 736 return PySwigObject_format("%o",v);
c32bde28 737}
cfe5e918 738
093d3ff1
RD
739SWIGRUNTIME PyObject *
740PySwigObject_hex(PySwigObject *v)
cfe5e918 741{
7449af73 742 return PySwigObject_format("%x",v);
cfe5e918
RD
743}
744
093d3ff1
RD
745SWIGRUNTIME int
746PySwigObject_compare(PySwigObject *v, PySwigObject *w)
cfe5e918 747{
093d3ff1
RD
748 int c = strcmp(v->desc, w->desc);
749 if (c) {
7449af73 750 return (c > 0) ? 1 : -1;
093d3ff1
RD
751 } else {
752 void *i = v->ptr;
753 void *j = w->ptr;
7449af73 754 return (i < j) ? -1 : ((i > j) ? 1 : 0);
c32bde28 755 }
093d3ff1
RD
756}
757
758SWIGRUNTIME void
759PySwigObject_dealloc(PySwigObject *self)
760{
7449af73 761 PyObject_Del(self);
093d3ff1
RD
762}
763
764SWIGRUNTIME PyTypeObject*
7449af73
RD
765PySwigObject_type(void) {
766 static char pyswigobject_type__doc__[] =
093d3ff1 767 "Swig object carries a C/C++ instance pointer";
9d7dfdff 768
093d3ff1
RD
769 static PyNumberMethods PySwigObject_as_number = {
770 (binaryfunc)0, /*nb_add*/
771 (binaryfunc)0, /*nb_subtract*/
772 (binaryfunc)0, /*nb_multiply*/
773 (binaryfunc)0, /*nb_divide*/
774 (binaryfunc)0, /*nb_remainder*/
775 (binaryfunc)0, /*nb_divmod*/
776 (ternaryfunc)0,/*nb_power*/
777 (unaryfunc)0, /*nb_negative*/
778 (unaryfunc)0, /*nb_positive*/
779 (unaryfunc)0, /*nb_absolute*/
780 (inquiry)0, /*nb_nonzero*/
781 0, /*nb_invert*/
782 0, /*nb_lshift*/
783 0, /*nb_rshift*/
784 0, /*nb_and*/
785 0, /*nb_xor*/
786 0, /*nb_or*/
787 (coercion)0, /*nb_coerce*/
788 (unaryfunc)PySwigObject_long, /*nb_int*/
789 (unaryfunc)PySwigObject_long, /*nb_long*/
790 (unaryfunc)0, /*nb_float*/
791 (unaryfunc)PySwigObject_oct, /*nb_oct*/
792 (unaryfunc)PySwigObject_hex, /*nb_hex*/
7449af73 793#if PY_VERSION_HEX >= 0x02020000
093d3ff1 794 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_true_divide */
7449af73
RD
795#elif PY_VERSION_HEX >= 0x02000000
796 0,0,0,0,0,0,0,0,0,0,0 /* nb_inplace_add -> nb_inplace_or */
093d3ff1
RD
797#endif
798 };
799
7449af73
RD
800 static PyTypeObject pyswigobject_type
801#if !defined(__cplusplus)
802 ;
803 static int type_init = 0;
093d3ff1 804 if (!type_init) {
7449af73
RD
805 PyTypeObject tmp
806#endif
807 = {
093d3ff1
RD
808 PyObject_HEAD_INIT(&PyType_Type)
809 0, /*ob_size*/
7449af73 810 (char *)"PySwigObject", /*tp_name*/
093d3ff1
RD
811 sizeof(PySwigObject), /*tp_basicsize*/
812 0, /*tp_itemsize*/
813 /* methods */
814 (destructor)PySwigObject_dealloc, /*tp_dealloc*/
815 (printfunc)PySwigObject_print, /*tp_print*/
816 (getattrfunc)0, /*tp_getattr*/
817 (setattrfunc)0, /*tp_setattr*/
818 (cmpfunc)PySwigObject_compare, /*tp_compare*/
819 (reprfunc)PySwigObject_repr, /*tp_repr*/
820 &PySwigObject_as_number, /*tp_as_number*/
821 0, /*tp_as_sequence*/
822 0, /*tp_as_mapping*/
823 (hashfunc)0, /*tp_hash*/
824 (ternaryfunc)0, /*tp_call*/
825 (reprfunc)PySwigObject_str, /*tp_str*/
826 /* Space for future expansion */
7449af73
RD
827 0,0,0,0,
828 pyswigobject_type__doc__, /* Documentation string */
093d3ff1
RD
829#if PY_VERSION_HEX >= 0x02000000
830 0, /* tp_traverse */
831 0, /* tp_clear */
832#endif
833#if PY_VERSION_HEX >= 0x02010000
834 0, /* tp_richcompare */
835 0, /* tp_weaklistoffset */
836#endif
837#if PY_VERSION_HEX >= 0x02020000
838 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
839#endif
840#if PY_VERSION_HEX >= 0x02030000
841 0, /* tp_del */
842#endif
843#ifdef COUNT_ALLOCS
844 0,0,0,0 /* tp_alloc -> tp_next */
845#endif
846 };
7449af73
RD
847#if !defined(__cplusplus)
848 pyswigobject_type = tmp;
093d3ff1 849 type_init = 1;
c32bde28 850 }
7449af73
RD
851#endif
852 return &pyswigobject_type;
093d3ff1
RD
853}
854
855SWIGRUNTIME PyObject *
856PySwigObject_FromVoidPtrAndDesc(void *ptr, const char *desc)
857{
7449af73
RD
858 PySwigObject *self = PyObject_NEW(PySwigObject, PySwigObject_type());
859 if (self) {
860 self->ptr = ptr;
861 self->desc = desc;
862 }
093d3ff1
RD
863 return (PyObject *)self;
864}
865
866SWIGRUNTIMEINLINE void *
867PySwigObject_AsVoidPtr(PyObject *self)
868{
869 return ((PySwigObject *)self)->ptr;
870}
871
872SWIGRUNTIMEINLINE const char *
873PySwigObject_GetDesc(PyObject *self)
874{
875 return ((PySwigObject *)self)->desc;
876}
877
878SWIGRUNTIMEINLINE int
879PySwigObject_Check(PyObject *op) {
7449af73 880 return ((op)->ob_type == PySwigObject_type())
093d3ff1
RD
881 || (strcmp((op)->ob_type->tp_name,"PySwigObject") == 0);
882}
883
884/* -----------------------------------------------------------------------------
885 * Implements a simple Swig Packed type, and use it instead of string
886 * ----------------------------------------------------------------------------- */
887
888typedef struct {
889 PyObject_HEAD
890 void *pack;
891 const char *desc;
892 size_t size;
893} PySwigPacked;
894
895SWIGRUNTIME int
896PySwigPacked_print(PySwigPacked *v, FILE *fp, int flags)
897{
898 char result[SWIG_BUFFER_SIZE];
7449af73 899 flags = flags;
093d3ff1
RD
900 fputs("<Swig Packed ", fp);
901 if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
902 fputs("at ", fp);
903 fputs(result, fp);
c32bde28 904 }
093d3ff1
RD
905 fputs(v->desc,fp);
906 fputs(">", fp);
907 return 0;
908}
9d7dfdff 909
093d3ff1
RD
910SWIGRUNTIME PyObject *
911PySwigPacked_repr(PySwigPacked *v)
912{
913 char result[SWIG_BUFFER_SIZE];
914 if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))) {
915 return PyString_FromFormat("<Swig Packed at %s%s>", result, v->desc);
916 } else {
917 return PyString_FromFormat("<Swig Packed %s>", v->desc);
918 }
c32bde28
RD
919}
920
093d3ff1
RD
921SWIGRUNTIME PyObject *
922PySwigPacked_str(PySwigPacked *v)
923{
924 char result[SWIG_BUFFER_SIZE];
925 if (SWIG_PackDataName(result, v->pack, v->size, 0, sizeof(result))){
926 return PyString_FromFormat("%s%s", result, v->desc);
927 } else {
7449af73 928 return PyString_FromString(v->desc);
093d3ff1
RD
929 }
930}
c32bde28 931
093d3ff1
RD
932SWIGRUNTIME int
933PySwigPacked_compare(PySwigPacked *v, PySwigPacked *w)
c32bde28 934{
093d3ff1
RD
935 int c = strcmp(v->desc, w->desc);
936 if (c) {
7449af73 937 return (c > 0) ? 1 : -1;
093d3ff1
RD
938 } else {
939 size_t i = v->size;
940 size_t j = w->size;
7449af73 941 int s = (i < j) ? -1 : ((i > j) ? 1 : 0);
093d3ff1 942 return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
c32bde28 943 }
c32bde28
RD
944}
945
093d3ff1
RD
946SWIGRUNTIME void
947PySwigPacked_dealloc(PySwigPacked *self)
c32bde28 948{
093d3ff1 949 free(self->pack);
7449af73 950 PyObject_Del(self);
cfe5e918
RD
951}
952
093d3ff1 953SWIGRUNTIME PyTypeObject*
7449af73
RD
954PySwigPacked_type(void) {
955 static char pyswigpacked_type__doc__[] =
093d3ff1 956 "Swig object carries a C/C++ instance pointer";
7449af73
RD
957 static PyTypeObject pyswigpacked_type
958#if !defined(__cplusplus)
959 ;
960 static int type_init = 0;
093d3ff1 961 if (!type_init) {
7449af73
RD
962 PyTypeObject tmp
963#endif
964 = {
093d3ff1
RD
965 PyObject_HEAD_INIT(&PyType_Type)
966 0, /*ob_size*/
7449af73 967 (char *)"PySwigPacked", /*tp_name*/
093d3ff1
RD
968 sizeof(PySwigPacked), /*tp_basicsize*/
969 0, /*tp_itemsize*/
970 /* methods */
971 (destructor)PySwigPacked_dealloc, /*tp_dealloc*/
972 (printfunc)PySwigPacked_print, /*tp_print*/
973 (getattrfunc)0, /*tp_getattr*/
974 (setattrfunc)0, /*tp_setattr*/
975 (cmpfunc)PySwigPacked_compare, /*tp_compare*/
976 (reprfunc)PySwigPacked_repr, /*tp_repr*/
977 0, /*tp_as_number*/
978 0, /*tp_as_sequence*/
979 0, /*tp_as_mapping*/
980 (hashfunc)0, /*tp_hash*/
981 (ternaryfunc)0, /*tp_call*/
982 (reprfunc)PySwigPacked_str, /*tp_str*/
983 /* Space for future expansion */
7449af73
RD
984 0,0,0,0,
985 pyswigpacked_type__doc__, /* Documentation string */
093d3ff1
RD
986#if PY_VERSION_HEX >= 0x02000000
987 0, /* tp_traverse */
988 0, /* tp_clear */
989#endif
990#if PY_VERSION_HEX >= 0x02010000
991 0, /* tp_richcompare */
992 0, /* tp_weaklistoffset */
993#endif
994#if PY_VERSION_HEX >= 0x02020000
995 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, /* tp_iter -> tp_weaklist */
996#endif
997#if PY_VERSION_HEX >= 0x02030000
998 0, /* tp_del */
999#endif
1000#ifdef COUNT_ALLOCS
1001 0,0,0,0 /* tp_alloc -> tp_next */
1002#endif
1003 };
7449af73
RD
1004#if !defined(__cplusplus)
1005 pyswigpacked_type = tmp;
093d3ff1
RD
1006 type_init = 1;
1007 }
7449af73
RD
1008#endif
1009 return &pyswigpacked_type;
093d3ff1
RD
1010}
1011
1012SWIGRUNTIME PyObject *
1013PySwigPacked_FromDataAndDesc(void *ptr, size_t size, const char *desc)
1014{
7449af73 1015 PySwigPacked *self = PyObject_NEW(PySwigPacked, PySwigPacked_type());
093d3ff1
RD
1016 if (self == NULL) {
1017 return NULL;
1018 } else {
1019 void *pack = malloc(size);
7449af73
RD
1020 if (pack) {
1021 memcpy(pack, ptr, size);
1022 self->pack = pack;
1023 self->desc = desc;
1024 self->size = size;
1025 return (PyObject *) self;
1026 }
1027 return NULL;
7e63a440 1028 }
093d3ff1
RD
1029}
1030
1031SWIGRUNTIMEINLINE const char *
1032PySwigPacked_UnpackData(PyObject *obj, void *ptr, size_t size)
1033{
1034 PySwigPacked *self = (PySwigPacked *)obj;
1035 if (self->size != size) return 0;
1036 memcpy(ptr, self->pack, size);
1037 return self->desc;
1038}
1039
1040SWIGRUNTIMEINLINE const char *
1041PySwigPacked_GetDesc(PyObject *self)
1042{
1043 return ((PySwigPacked *)self)->desc;
1044}
1045
1046SWIGRUNTIMEINLINE int
1047PySwigPacked_Check(PyObject *op) {
7449af73 1048 return ((op)->ob_type == PySwigPacked_type())
093d3ff1
RD
1049 || (strcmp((op)->ob_type->tp_name,"PySwigPacked") == 0);
1050}
cfe5e918 1051
093d3ff1
RD
1052#else
1053/* -----------------------------------------------------------------------------
1054 * Use the old Python PyCObject instead of PySwigObject
1055 * ----------------------------------------------------------------------------- */
cfe5e918 1056
093d3ff1
RD
1057#define PySwigObject_GetDesc(obj) PyCObject_GetDesc(obj)
1058#define PySwigObject_Check(obj) PyCObject_Check(obj)
1059#define PySwigObject_AsVoidPtr(obj) PyCObject_AsVoidPtr(obj)
1060#define PySwigObject_FromVoidPtrAndDesc(p, d) PyCObject_FromVoidPtrAndDesc(p, d, NULL)
c32bde28 1061
093d3ff1
RD
1062#endif
1063
1064#endif
1065
1066/* -----------------------------------------------------------------------------
1067 * errors manipulation
1068 * ----------------------------------------------------------------------------- */
1069
1070SWIGRUNTIME void
1071SWIG_Python_TypeError(const char *type, PyObject *obj)
cfe5e918 1072{
093d3ff1
RD
1073 if (type) {
1074#if defined(SWIG_COBJECT_TYPES)
7449af73 1075 if (obj && PySwigObject_Check(obj)) {
093d3ff1
RD
1076 const char *otype = (const char *) PySwigObject_GetDesc(obj);
1077 if (otype) {
1078 PyErr_Format(PyExc_TypeError, "a '%s' is expected, 'PySwigObject(%s)' is received",
1079 type, otype);
1080 return;
1081 }
1082 } else
1083#endif
1084 {
1085 const char *otype = (obj ? obj->ob_type->tp_name : 0);
1086 if (otype) {
1087 PyObject *str = PyObject_Str(obj);
1088 const char *cstr = str ? PyString_AsString(str) : 0;
1089 if (cstr) {
1090 PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s(%s)' is received",
1091 type, otype, cstr);
1092 } else {
1093 PyErr_Format(PyExc_TypeError, "a '%s' is expected, '%s' is received",
1094 type, otype);
c32bde28 1095 }
7449af73 1096 Py_XDECREF(str);
093d3ff1 1097 return;
c32bde28 1098 }
093d3ff1
RD
1099 }
1100 PyErr_Format(PyExc_TypeError, "a '%s' is expected", type);
1101 } else {
1102 PyErr_Format(PyExc_TypeError, "unexpected type is received");
cfe5e918
RD
1103 }
1104}
1105
093d3ff1
RD
1106SWIGRUNTIMEINLINE void
1107SWIG_Python_NullRef(const char *type)
1108{
1109 if (type) {
1110 PyErr_Format(PyExc_TypeError, "null reference of type '%s' was received",type);
1111 } else {
1112 PyErr_Format(PyExc_TypeError, "null reference was received");
1113 }
1114}
cfe5e918 1115
093d3ff1
RD
1116SWIGRUNTIME int
1117SWIG_Python_AddErrMesg(const char* mesg, int infront)
cfe5e918 1118{
093d3ff1
RD
1119 if (PyErr_Occurred()) {
1120 PyObject *type = 0;
1121 PyObject *value = 0;
1122 PyObject *traceback = 0;
1123 PyErr_Fetch(&type, &value, &traceback);
1124 if (value) {
1125 PyObject *old_str = PyObject_Str(value);
1126 Py_XINCREF(type);
1127 PyErr_Clear();
1128 if (infront) {
1129 PyErr_Format(type, "%s %s", mesg, PyString_AsString(old_str));
1130 } else {
1131 PyErr_Format(type, "%s %s", PyString_AsString(old_str), mesg);
1132 }
1133 Py_DECREF(old_str);
1134 }
c32bde28 1135 return 1;
093d3ff1
RD
1136 } else {
1137 return 0;
c32bde28 1138 }
cfe5e918
RD
1139}
1140
093d3ff1
RD
1141SWIGRUNTIME int
1142SWIG_Python_ArgFail(int argnum)
1143{
1144 if (PyErr_Occurred()) {
1145 /* add information about failing argument */
1146 char mesg[256];
7449af73 1147 PyOS_snprintf(mesg, sizeof(mesg), "argument number %d:", argnum);
093d3ff1
RD
1148 return SWIG_Python_AddErrMesg(mesg, 1);
1149 } else {
1150 return 0;
1151 }
cfe5e918
RD
1152}
1153
1154
093d3ff1
RD
1155/* -----------------------------------------------------------------------------
1156 * pointers/data manipulation
1157 * ----------------------------------------------------------------------------- */
1158
1159/* Convert a pointer value */
1160SWIGRUNTIME int
1161SWIG_Python_ConvertPtr(PyObject *obj, void **ptr, swig_type_info *ty, int flags) {
7449af73 1162 swig_cast_info *tc;
093d3ff1
RD
1163 const char *c = 0;
1164 static PyObject *SWIG_this = 0;
1165 int newref = 0;
1166 PyObject *pyobj = 0;
1167 void *vptr;
9d7dfdff 1168
093d3ff1
RD
1169 if (!obj) return 0;
1170 if (obj == Py_None) {
1171 *ptr = 0;
1172 return 0;
1173 }
1174
1175#ifdef SWIG_COBJECT_TYPES
1176 if (!(PySwigObject_Check(obj))) {
1177 if (!SWIG_this)
1178 SWIG_this = PyString_FromString("this");
1179 pyobj = obj;
1180 obj = PyObject_GetAttr(obj,SWIG_this);
1181 newref = 1;
1182 if (!obj) goto type_error;
1183 if (!PySwigObject_Check(obj)) {
1184 Py_DECREF(obj);
1185 goto type_error;
1186 }
1187 }
1188 vptr = PySwigObject_AsVoidPtr(obj);
1189 c = (const char *) PySwigObject_GetDesc(obj);
1190 if (newref) { Py_DECREF(obj); }
1191 goto type_check;
cfe5e918 1192#else
093d3ff1
RD
1193 if (!(PyString_Check(obj))) {
1194 if (!SWIG_this)
1195 SWIG_this = PyString_FromString("this");
1196 pyobj = obj;
1197 obj = PyObject_GetAttr(obj,SWIG_this);
1198 newref = 1;
1199 if (!obj) goto type_error;
1200 if (!PyString_Check(obj)) {
1201 Py_DECREF(obj);
1202 goto type_error;
1203 }
1204 }
7449af73 1205 c = PyString_AsString(obj);
093d3ff1
RD
1206 /* Pointer values must start with leading underscore */
1207 c = SWIG_UnpackVoidPtr(c, &vptr, ty->name);
1208 if (newref) { Py_DECREF(obj); }
1209 if (!c) goto type_error;
cfe5e918 1210#endif
cfe5e918 1211
093d3ff1 1212type_check:
093d3ff1
RD
1213 if (ty) {
1214 tc = SWIG_TypeCheck(c,ty);
1215 if (!tc) goto type_error;
1216 *ptr = SWIG_TypeCast(tc,vptr);
1217 } else {
1218 *ptr = vptr;
1219 }
093d3ff1
RD
1220 if ((pyobj) && (flags & SWIG_POINTER_DISOWN)) {
1221 PyObject_SetAttrString(pyobj,(char*)"thisown",Py_False);
1222 }
1223 return 0;
1224
1225type_error:
1226 PyErr_Clear();
1227 if (pyobj && !obj) {
1228 obj = pyobj;
1229 if (PyCFunction_Check(obj)) {
1230 /* here we get the method pointer for callbacks */
1231 char *doc = (((PyCFunctionObject *)obj) -> m_ml -> ml_doc);
1232 c = doc ? strstr(doc, "swig_ptr: ") : 0;
1233 if (c) {
7449af73 1234 c = ty ? SWIG_UnpackVoidPtr(c + 10, &vptr, ty->name) : 0;
093d3ff1
RD
1235 if (!c) goto type_error;
1236 goto type_check;
1237 }
cfe5e918 1238 }
093d3ff1
RD
1239 }
1240 if (flags & SWIG_POINTER_EXCEPTION) {
1241 if (ty) {
1242 SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
1243 } else {
1244 SWIG_Python_TypeError("C/C++ pointer", obj);
cfe5e918 1245 }
093d3ff1
RD
1246 }
1247 return -1;
1248}
1249
1250/* Convert a pointer value, signal an exception on a type mismatch */
1251SWIGRUNTIME void *
1252SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {
1253 void *result;
1254 if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
1255 PyErr_Clear();
1256 if (flags & SWIG_POINTER_EXCEPTION) {
1257 SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
1258 SWIG_Python_ArgFail(argnum);
cfe5e918 1259 }
093d3ff1
RD
1260 }
1261 return result;
cfe5e918
RD
1262}
1263
093d3ff1
RD
1264/* Convert a packed value value */
1265SWIGRUNTIME int
1266SWIG_Python_ConvertPacked(PyObject *obj, void *ptr, size_t sz, swig_type_info *ty, int flags) {
7449af73 1267 swig_cast_info *tc;
093d3ff1 1268 const char *c = 0;
cfe5e918 1269
093d3ff1
RD
1270#if defined(SWIG_COBJECT_TYPES) && !defined(SWIG_COBJECT_PYTHON)
1271 c = PySwigPacked_UnpackData(obj, ptr, sz);
1272#else
1273 if ((!obj) || (!PyString_Check(obj))) goto type_error;
7449af73 1274 c = PyString_AsString(obj);
093d3ff1
RD
1275 /* Pointer values must start with leading underscore */
1276 c = SWIG_UnpackDataName(c, ptr, sz, ty->name);
1277#endif
1278 if (!c) goto type_error;
1279 if (ty) {
1280 tc = SWIG_TypeCheck(c,ty);
1281 if (!tc) goto type_error;
1282 }
1283 return 0;
1284
1285type_error:
1286 PyErr_Clear();
1287 if (flags & SWIG_POINTER_EXCEPTION) {
1288 if (ty) {
1289 SWIG_Python_TypeError(SWIG_TypePrettyName(ty), obj);
1290 } else {
1291 SWIG_Python_TypeError("C/C++ packed data", obj);
cfe5e918 1292 }
093d3ff1
RD
1293 }
1294 return -1;
1295}
1296
1297/* Create a new array object */
1298SWIGRUNTIME PyObject *
1299SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int own) {
1300 PyObject *robj = 0;
7449af73
RD
1301 if (!type) {
1302 if (!PyErr_Occurred()) {
1303 PyErr_Forma