* subversion/bindings/swig/python/libsvn_swig_py/swigutil_py.c
[svn.git] / subversion / bindings / swig / include / svn_swigcompat.swg
blob00ba8795bff4132816d93c3d8be156b989013143
1 /*
2  * ====================================================================
3  * Copyright (c) 2000-2006 CollabNet.  All rights reserved.
4  *
5  * This software is licensed as described in the file COPYING, which
6  * you should have received as part of this distribution.  The terms
7  * are also available at http://subversion.tigris.org/license-1.html.
8  * If newer versions of this license are posted there, you may use a
9  * newer version instead, at your option.
10  *
11  * This software consists of voluntary contributions made by many
12  * individuals.  For exact contribution history, see the revision
13  * history and logs, available at http://subversion.tigris.org/.
14  * ====================================================================
15  *
16  * svn_swigcompat.swg: Definitions providing compatibility with old
17  *   SWIG version.
18  */
20 /* %append_output(obj) */
21 #if SWIG_VERSION <= 0x010327
22 #ifdef SWIGPYTHON
23 %fragment("t_output_helper");
24 #define %append_output(obj) $result = t_output_helper($result, obj)
25 #endif
27 #ifdef SWIGPERL
28 #define %append_output(obj) \
29   if (argvi >= items) EXTEND(sp,1); $result = obj; argvi++
30 #endif
32 #ifdef SWIGRUBY
33 %fragment("output_helper");
34 #define %append_output(obj) $result = output_helper($result, obj)
35 #endif
36 #endif
39 /* %set_constant(name, value) */
40 #if SWIG_VERSION <= 0x010327
41 #ifdef SWIGPYTHON
42 %define %set_constant(name, value)
43 PyDict_SetItemString(d, name, value);
44 %enddef
45 #endif
46 #endif
49 #ifdef SWIGPERL
50 #if SWIG_VERSION == 0x010324
51 %typemap(varin) apr_pool_t * {
52   void *temp;
53   if (SWIG_ConvertPtr($input, (void **) &temp, $1_descriptor,0) < 0) {
54     croak("Type error in argument $argnum of $symname. Expected $1_mangle");
55   }
56   $1 = ($1_ltype) temp;
58 #endif
59 #endif
62 #ifdef SWIGRUBY
63 #if SWIG_VERSION <= 0x010327
64 /* Remove compiler warning (break strict-aliasing rules) */
65 %typemap(in) SWIGTYPE * (void *temp)
67 #if SWIG_VERSION <= 0x010325
68   SWIG_ConvertPtr($input, &temp, $1_descriptor, 1);
69 #else
70   SWIG_ConvertPtr($input, &temp, $1_descriptor, $disown);
71 #endif
72   $1 = ($1_ltype)temp;
74 #endif
76 #if SWIG_VERSION <= 0x010324
77 /* for SWIG bug */
78 %define OUTPUT_TYPEMAP(type, converter, convtype)
79 %typemap(in, numinputs=0) type *OUTPUT ($*1_ltype temp),
80                           type &OUTPUT ($*1_ltype temp) "$1 = &temp;";
81 %typemap(argout, fragment="output_helper") type *OUTPUT, type &OUTPUT {
82    VALUE o = converter(convtype (*$1));
83    $result = output_helper($result, o);
85 %enddef
87 OUTPUT_TYPEMAP(long, INT2NUM, (long));
88 OUTPUT_TYPEMAP(long long, LL2NUM, (apr_int64_t));
89 OUTPUT_TYPEMAP(unsigned long, UINT2NUM, (unsigned long));
90 OUTPUT_TYPEMAP(unsigned long long, ULL2NUM, (apr_uint64_t));
92 #undef OUTPUT_TYPEMAP
93 #endif
94 #endif