long long typemap mods for using with %apply by compilers that don't understand long long

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@4502 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
William S Fulton 2003-03-10 19:50:14 +00:00
commit 18dc9ec458
2 changed files with 32 additions and 14 deletions

View file

@ -31,10 +31,13 @@ you would use a real value instead.
int *INPUT int *INPUT
short *INPUT short *INPUT
long *INPUT long *INPUT
long long *INPUT
unsigned int *INPUT unsigned int *INPUT
unsigned short *INPUT unsigned short *INPUT
unsigned long *INPUT unsigned long *INPUT
unsigned long long *INPUT
unsigned char *INPUT unsigned char *INPUT
bool *INPUT
float *INPUT float *INPUT
double *INPUT double *INPUT
@ -79,14 +82,14 @@ INPUT_TYPEMAP(unsigned char, SvUV);
INPUT_TYPEMAP(bool, SvIV); INPUT_TYPEMAP(bool, SvIV);
%typemap(in) long long *INPUT(long long temp), long long &INPUT(long long temp) { %typemap(in) long long *INPUT($*1_ltype temp), long long &INPUT($*1_ltype temp) {
temp = strtoll(SvPV($input,PL_na), 0, 0); temp = strtoll(SvPV($input,PL_na), 0, 0);
$1 = &temp; $1 = &temp;
} }
%typemap(typecheck) long long *INPUT = long long; %typemap(typecheck) long long *INPUT = long long;
%typemap(typecheck) long long &INPUT = long long; %typemap(typecheck) long long &INPUT = long long;
%typemap(in) unsigned long long *INPUT(unsigned long long temp), unsigned long long &INPUT(unsigned long long temp) { %typemap(in) unsigned long long *INPUT($*1_ltype temp), unsigned long long &INPUT($*1_ltype temp) {
temp = strtoull(SvPV($input,PL_na), 0, 0); temp = strtoull(SvPV($input,PL_na), 0, 0);
$1 = &temp; $1 = &temp;
} }
@ -109,10 +112,13 @@ multiple output values, functions will return a Perl array.
int *OUTPUT int *OUTPUT
short *OUTPUT short *OUTPUT
long *OUTPUT long *OUTPUT
long long *OUTPUT
unsigned int *OUTPUT unsigned int *OUTPUT
unsigned short *OUTPUT unsigned short *OUTPUT
unsigned long *OUTPUT unsigned long *OUTPUT
unsigned long long *OUTPUT
unsigned char *OUTPUT unsigned char *OUTPUT
bool *OUTPUT
float *OUTPUT float *OUTPUT
double *OUTPUT double *OUTPUT
@ -151,8 +157,8 @@ output values.
bool *OUTPUT(bool temp), bool &OUTPUT(bool temp), bool *OUTPUT(bool temp), bool &OUTPUT(bool temp),
float *OUTPUT(float temp), float &OUTPUT(float temp), float *OUTPUT(float temp), float &OUTPUT(float temp),
double *OUTPUT(double temp), double &OUTPUT(double temp), double *OUTPUT(double temp), double &OUTPUT(double temp),
long long *OUTPUT(long long temp), long long &OUTPUT(long long temp), long long *OUTPUT($*1_ltype temp), long long &OUTPUT($*1_ltype temp),
unsigned long long *OUTPUT(unsigned long long temp), unsigned long long &OUTPUT(unsigned long long temp) unsigned long long *OUTPUT($*1_ltype temp), unsigned long long &OUTPUT($*1_ltype temp)
"$1 = &temp;"; "$1 = &temp;";
%typemap(argout) int *OUTPUT, int &OUTPUT, %typemap(argout) int *OUTPUT, int &OUTPUT,
@ -230,10 +236,13 @@ returned in the form of a Perl array.
int *INOUT int *INOUT
short *INOUT short *INOUT
long *INOUT long *INOUT
long long *INOUT
unsigned int *INOUT unsigned int *INOUT
unsigned short *INOUT unsigned short *INOUT
unsigned long *INOUT unsigned long *INOUT
unsigned long long *INOUT
unsigned char *INOUT unsigned char *INOUT
bool *INOUT
float *INOUT float *INOUT
double *INOUT double *INOUT

View file

@ -28,10 +28,13 @@ you would use a real value instead.
int *INPUT int *INPUT
short *INPUT short *INPUT
long *INPUT long *INPUT
long long *INPUT
unsigned int *INPUT unsigned int *INPUT
unsigned short *INPUT unsigned short *INPUT
unsigned long *INPUT unsigned long *INPUT
unsigned long long *INPUT
unsigned char *INPUT unsigned char *INPUT
bool *INPUT
float *INPUT float *INPUT
double *INPUT double *INPUT
@ -157,17 +160,17 @@ or you can use the %apply directive :
$1 = &temp; $1 = &temp;
} }
%typemap(in) long long *INPUT(long long temp), %typemap(in) long long *INPUT($*1_ltype temp),
long long &INPUT(long long temp) long long &INPUT($*1_ltype temp)
{ {
temp = (long long) strtoll(Tcl_GetStringFromObj($input,NULL),0,0); temp = ($*1_ltype) strtoll(Tcl_GetStringFromObj($input,NULL),0,0);
$1 = &temp; $1 = &temp;
} }
%typemap(in) unsigned long long *INPUT(unsigned long long temp), %typemap(in) unsigned long long *INPUT($*1_ltype temp),
unsigned long long &INPUT(unsigned long long temp) unsigned long long &INPUT($*1_ltype temp)
{ {
temp = (long long) strtoull(Tcl_GetStringFromObj($input,NULL),0,0); temp = ($*1_ltype) strtoull(Tcl_GetStringFromObj($input,NULL),0,0);
$1 = &temp; $1 = &temp;
} }
@ -184,10 +187,13 @@ multiple output values, they are returned in the form of a Tcl list.
int *OUTPUT int *OUTPUT
short *OUTPUT short *OUTPUT
long *OUTPUT long *OUTPUT
long long *OUTPUT
unsigned int *OUTPUT unsigned int *OUTPUT
unsigned short *OUTPUT unsigned short *OUTPUT
unsigned long *OUTPUT unsigned long *OUTPUT
unsigned long long *OUTPUT
unsigned char *OUTPUT unsigned char *OUTPUT
bool *OUTPUT
float *OUTPUT float *OUTPUT
double *OUTPUT double *OUTPUT
@ -224,8 +230,8 @@ output values.
bool *OUTPUT(bool temp), bool *OUTPUT(bool temp),
float *OUTPUT(float temp), float *OUTPUT(float temp),
double *OUTPUT(double temp), double *OUTPUT(double temp),
long long *OUTPUT(long long temp), long long *OUTPUT($*1_ltype temp),
unsigned long long *OUTPUT(unsigned long long temp), unsigned long long *OUTPUT($*1_ltype temp),
int &OUTPUT(int temp), int &OUTPUT(int temp),
short &OUTPUT(short temp), short &OUTPUT(short temp),
long &OUTPUT(long temp), long &OUTPUT(long temp),
@ -237,8 +243,8 @@ output values.
unsigned char &OUTPUT(unsigned char temp), unsigned char &OUTPUT(unsigned char temp),
float &OUTPUT(float temp), float &OUTPUT(float temp),
double &OUTPUT(double temp), double &OUTPUT(double temp),
long long &OUTPUT(long long temp), long long &OUTPUT($*1_ltype temp),
unsigned long long &OUTPUT(unsigned long long temp) unsigned long long &OUTPUT($*1_ltype temp)
"$1 = &temp;"; "$1 = &temp;";
%typemap(argout) int *OUTPUT, int &OUTPUT, %typemap(argout) int *OUTPUT, int &OUTPUT,
@ -295,10 +301,13 @@ returned in the form of a Tcl list.
int *INOUT int *INOUT
short *INOUT short *INOUT
long *INOUT long *INOUT
long long *INOUT
unsigned int *INOUT unsigned int *INOUT
unsigned short *INOUT unsigned short *INOUT
unsigned long *INOUT unsigned long *INOUT
unsigned long long *INOUT
unsigned char *INOUT unsigned char *INOUT
bool *INOUT
float *INOUT float *INOUT
double *INOUT double *INOUT