summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeif Middelschulte <leif.middelschulte@gmail.com>2012-08-18 23:29:53 +0000
committerLeif Middelschulte <leif.middelschulte@gmail.com>2012-08-18 23:29:53 +0000
commit2e0a4c7f8515ba62047aa6d1236fe317856a284e (patch)
treea2f0352f34dfb88a8f310d680152b15c14c44536
parentd6e095462002331087e5b48e50fbdceb89cfd266 (diff)
downloadswig-2e0a4c7f8515ba62047aa6d1236fe317856a284e.tar.gz
Macrofy 'proxy' typemap.
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/branches/gsoc2012-c@13653 626c5289-ae23-0410-ae9c-e8d60b6d4f22
-rw-r--r--Lib/c/c.swg164
1 files changed, 26 insertions, 138 deletions
diff --git a/Lib/c/c.swg b/Lib/c/c.swg
index 82490e0e1..6f72c6f3c 100644
--- a/Lib/c/c.swg
+++ b/Lib/c/c.swg
@@ -29,6 +29,18 @@
// typemaps for proxy function parameters
+%define explicit_same_type(TM, T)
+%typemap(TM) T, const T "T"
+%typemap(TM) T*, T&, T[ANY], T[] "T *"
+%typemap(TM) const T&, const T*, const T[ANY], const T[] "const T *"
+%typemap(TM) T**, T*&, T*[ANY], T[ANY][ANY] "T **"
+%typemap(TM) const T**, const T*&, const T*[ANY], const T[ANY][ANY] "const T **"
+// constant pointers
+%typemap(TM) T * const "T * const"
+%typemap(TM) T* * const "T* * const"
+%typemap(TM) const T* * const "const T* * const"
+%enddef
+
// void
%typemap(proxy) void "void"
%typemap(proxy) void*, void&, void[ANY], void[] "void *"
@@ -39,144 +51,20 @@
%typemap(proxy) void* * const "void* * const"
%typemap(proxy) const void* * const "const void* * const"
-// short
-%typemap(proxy) short, const short "short"
-%typemap(proxy) short*, short&, short[ANY], short[] "short *"
-%typemap(proxy) const short&, const short*, const short[ANY], const short[] "const short *"
-%typemap(proxy) unsigned short "unsigned short"
-%typemap(proxy) const unsigned short "const unsigned short"
-%typemap(proxy) unsigned short*, unsigned short&, unsigned short*, unsigned short[ANY], unsigned short[] "unsigned short *"
-%typemap(proxy) const unsigned short*, const unsigned short&, const unsigned short[ANY], const unsigned short[] "const unsigned short *"
-%typemap(proxy) short**, short*&, short*[ANY], short[ANY][ANY] "short **"
-%typemap(proxy) const short**, const short*&, const short*[ANY], const short[ANY][ANY] "const short **"
-%typemap(proxy) unsigned short**, unsigned short*&, unsigned short*[ANY], unsigned short[ANY][ANY] "unsigned short **"
-%typemap(proxy) const unsigned short**,const unsigned short*&, const unsigned short[ANY][ANY] "const unsigned short **"
-// constant pointers
-%typemap(proxy) short * const "short * const"
-%typemap(proxy) short* * const "short* * const"
-%typemap(proxy) const short* * const "const short* * const"
-%typemap(proxy) unsigned short * const "unsigned short * const"
-%typemap(proxy) unsigned short* * const "unsigned short* * const"
-%typemap(proxy) const unsigned short* * const "const unsigned short* * const"
-
-// int
-%typemap(proxy) int, const int "int"
-%typemap(proxy) int*, int&, int[ANY], int[] "int *"
-%typemap(proxy) const int&, const int*, const int[ANY], const int[] "const int *"
-%typemap(proxy) unsigned int "unsigned int"
-%typemap(proxy) const unsigned int "unsigned int"
-%typemap(proxy) unsigned int*, unsigned int&, unsigned int*, unsigned int[ANY], unsigned int[] "unsigned int *"
-%typemap(proxy) const unsigned int*, const unsigned int&, const unsigned int[ANY], const unsigned int[] "const unsigned int *"
-%typemap(proxy) int**, int*&, int*[ANY], int[ANY][ANY] "int **"
-%typemap(proxy) const int**, const int*&, const int*[ANY], const int[ANY][ANY] "const int **"
-%typemap(proxy) unsigned int**, unsigned int*&, unsigned int*[ANY], unsigned int[ANY][ANY] "unsigned int **"
-%typemap(proxy) const unsigned int**,const unsigned int*&, const unsigned int[ANY][ANY] "const unsigned int **"
-// constant pointers
-%typemap(proxy) int * const "int * const"
-%typemap(proxy) int* * const "int* * const"
-%typemap(proxy) const int* * const "const int* * const"
-%typemap(proxy) unsigned int * const "unsigned int * const"
-%typemap(proxy) unsigned int* * const "unsigned int* * const"
-%typemap(proxy) const unsigned int* * const "const unsigned int* * const"
-
-// long
-%typemap(proxy) long, const long "long"
-%typemap(proxy) long*, long&, long[ANY], long[] "long *"
-%typemap(proxy) const long&, const long*, const long[ANY], const long[] "const long *"
-%typemap(proxy) unsigned long "unsigned long"
-%typemap(proxy) const unsigned long "const unsigned long"
-%typemap(proxy) unsigned long*, unsigned long&, unsigned long*, unsigned long[ANY], unsigned long[] "unsigned long *"
-%typemap(proxy) const unsigned long*, const unsigned long&, const unsigned long[ANY], const unsigned long[] "const unsigned long *"
-%typemap(proxy) long**, long*&, long*[ANY], long[ANY][ANY] "long **"
-%typemap(proxy) const long**, const long*&, const long*[ANY], const long[ANY][ANY] "const long **"
-%typemap(proxy) unsigned long**, unsigned long*&, unsigned long*[ANY], unsigned long[ANY][ANY] "unsigned long **"
-%typemap(proxy) const unsigned long**,const unsigned long*&, const unsigned long[ANY][ANY] "const unsigned long **"
-// constant pointers
-%typemap(proxy) long * const "long * const"
-%typemap(proxy) long* * const "long* * const"
-%typemap(proxy) const long* * const "const long* * const"
-%typemap(proxy) unsigned long * const "unsigned long * const"
-%typemap(proxy) unsigned long* * const "unsigned long* * const"
-%typemap(proxy) const unsigned long* * const "const unsigned long* * const"
-
-// long long
-%typemap(proxy) long long, const long long "long long"
-%typemap(proxy) long long*, long long&, long long[ANY], long long[] "long long *"
-%typemap(proxy) const long long&, const long long*, const long long[ANY], const long long[] "const long long *"
-%typemap(proxy) unsigned long long "unsigned long long"
-%typemap(proxy) const unsigned long long "const unsigned long long"
-%typemap(proxy) unsigned long long*, unsigned long long&, unsigned long long*, unsigned long long[ANY], unsigned long long[] "unsigned long long *"
-%typemap(proxy) const unsigned long long*, const unsigned long long&, const unsigned long long[ANY], const unsigned long long[] "const unsigned long long *"
-%typemap(proxy) long long**, long long*&, long long*[ANY], long long[ANY][ANY] "long long **"
-%typemap(proxy) const long long**, const long long*&, const long long*[ANY], const long long[ANY][ANY] "const long long **"
-%typemap(proxy) unsigned long long**, unsigned long long*&, unsigned long long*[ANY], unsigned long long[ANY][ANY] "unsigned long long **"
-%typemap(proxy) const unsigned long long**,const unsigned long long*&, const unsigned long long[ANY][ANY] "const unsigned long long **"
-// constant pointers
-%typemap(proxy) long long * const "long long * const"
-%typemap(proxy) long long* * const "long long* * const"
-%typemap(proxy) const long long* * const "const long long* * const"
-%typemap(proxy) unsigned long long * const "unsigned long long * const"
-%typemap(proxy) unsigned long long* * const "unsigned long long* * const"
-%typemap(proxy) const unsigned long long* * const "const unsigned long long* * const"
-
-// char: signed/unsigned
-%typemap(proxy) char, const char "char"
-%typemap(proxy) char*, char&, char[ANY], char[] "char *"
-%typemap(proxy) const char&, const char*, const char[ANY], const char[] "const char *"
-%typemap(proxy) char**, char*&, char*[ANY], char[ANY][ANY] "char **"
-%typemap(proxy) const char**, const char*&, const char*[ANY], const char[ANY][ANY] "char **"
-%typemap(proxy) signed char**, signed char*&, signed char*[ANY], signed char[ANY][ANY] "signed char **"
-%typemap(proxy) const signed char**, const signed char*&, const signed char[ANY][ANY] "const signed char **"
-%typemap(proxy) signed char "signed char"
-%typemap(proxy) const signed char "const signed char"
-%typemap(proxy) signed char*, signed char&, signed char*, signed char[ANY], signed char[] "signed char *"
-%typemap(proxy) const signed char*, const signed char&, const signed char[ANY], const signed char[] "const $1_ltype"
-%typemap(proxy) unsigned char**, unsigned char*&, unsigned char*[ANY], unsigned char[ANY][ANY] "unsigned char **"
-%typemap(proxy) const unsigned char**, const unsigned char*&, const unsigned char[ANY][ANY] "const unsigned char **"
-%typemap(proxy) unsigned char "unsigned char"
-%typemap(proxy) const unsigned char "const unsigned char"
-%typemap(proxy) unsigned char*, unsigned char&, unsigned char*, unsigned char[ANY], unsigned char[] "unsigned char *"
-%typemap(proxy) const unsigned char*, const unsigned char&, const unsigned char[ANY], const unsigned char[] "const unsigned char *"
-// constant pointers
-%typemap(proxy) char * const "char * const"
-%typemap(proxy) char* * const "char* * const"
-%typemap(proxy) const char* * const "const char* * const"
-%typemap(proxy) unsigned char * const "unsigned char * const"
-%typemap(proxy) unsigned char* * const "unsigned char* * const"
-%typemap(proxy) const unsigned char* * const "const unsigned char* * const"
-
-// float
-%typemap(proxy) float, const float "float"
-%typemap(proxy) float*, float&, float[ANY], float[] "float *"
-%typemap(proxy) const float&, const float*, const float[ANY], const float[] "const float *"
-%typemap(proxy) float**, float*&, const float*&, float*[ANY], float[ANY][ANY] "float **"
-%typemap(proxy) const float**, const float*[ANY], const float[ANY][ANY] "const float **"
-// constant pointers
-%typemap(proxy) float * const "float * const"
-%typemap(proxy) float* * const "float* * const"
-%typemap(proxy) const float* * const "const float* * const"
-
-// double
-%typemap(proxy) double, const double "double"
-%typemap(proxy) double*, double&, double[ANY], double[] "double *"
-%typemap(proxy) const double&, const double*, const double[ANY], const double[] "const double *"
-%typemap(proxy) double**, double*&, const double*&, double*[ANY], double[ANY][ANY] "double **"
-%typemap(proxy) const double**, const double*[ANY], const double[ANY][ANY] "const double **"
-// constant pointers
-%typemap(proxy) double * const "double * const"
-%typemap(proxy) double* * const "double* * const"
-%typemap(proxy) const double* * const "const double* * const"
-
-// size_t
-%typemap(proxy) size_t, const size_t "size_t"
-%typemap(proxy) size_t*, size_t&, size_t[ANY], size_t[] "size_t *"
-%typemap(proxy) const size_t&, const size_t*, const size_t[ANY], const size_t[] "const size_t *"
-%typemap(proxy) size_t**, size_t*&, size_t*[ANY], size_t[ANY][ANY] "size_t **"
-%typemap(proxy) const size_t**, const size_t*&, const size_t*[ANY], const size_t[ANY][ANY] "const size_t **"
-// constant pointers
-%typemap(proxy) size_t * const "size_t * const"
-%typemap(proxy) size_t* * const "size_t* * const"
-%typemap(proxy) const size_t* * const "const size_t* * const"
+explicit_same_type(proxy, short);
+explicit_same_type(proxy, unsigned short);
+explicit_same_type(proxy, int);
+explicit_same_type(proxy, unsigned int);
+explicit_same_type(proxy, long);
+explicit_same_type(proxy, unsigned long);
+explicit_same_type(proxy, long long);
+explicit_same_type(proxy, unsigned long long);
+explicit_same_type(proxy, char);
+explicit_same_type(proxy, signed char);
+explicit_same_type(proxy, unsigned char);
+explicit_same_type(proxy, float);
+explicit_same_type(proxy, double);
+explicit_same_type(proxy, size_t);
// objects
%typemap(proxy) SWIGTYPE "$&resolved_type*"