1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
// ----------------------------------------------------------------------
// lang.map
//
// This file defines all of the type-mappings for our language (TCL).
// A typemap of 'SWIG_DEFAULT_TYPE' should be used to create default
// mappings.
// ----------------------------------------------------------------------
/**************************** FUNCTION INPUTS ****************************/
// Integers
%typemap(in) int SWIG_DEFAULT_TYPE,
short SWIG_DEFAULT_TYPE,
long SWIG_DEFAULT_TYPE,
unsigned int SWIG_DEFAULT_TYPE,
unsigned short SWIG_DEFAULT_TYPE,
unsigned long SWIG_DEFAULT_TYPE,
signed char SWIG_DEFAULT_TYPE,
unsigned char SWIG_DEFAULT_TYPE
{
int temp;
if (Tcl_GetInt(interp, $source, &temp) == TCL_ERROR) return TCL_ERROR;
$target = ($type) temp;
}
// Floating point
%typemap(in) float SWIG_DEFAULT_TYPE,
double SWIG_DEFAULT_TYPE
{
double temp;
if (Tcl_GetDouble(interp, $source, &temp) == TCL_ERROR) return TCL_ERROR;
$target = ($type) temp;
}
// Strings
%typemap(in) char * SWIG_DEFAULT_TYPE
{
$target = $source;
}
// void *
%typemap(in) void * SWIG_DEFAULT_TYPE
{
if (SWIG_GetPtr($source,(void **) &$target, (char *) 0)) {
Tcl_SetResult(interp,"Type error. Expected a pointer",TCL_STATIC);
return TCL_ERROR;
}
}
// User defined types and all other pointers
%typemap(in) User * SWIG_DEFAULT_TYPE
{
if (SWIG_GetPtr($source,(void **) &$target, "$mangle")) {
Tcl_SetResult(interp,"Type error. Expected a $mangle",TCL_STATIC);
return TCL_ERROR;
}
}
/**************************** FUNCTION OUTPUTS ****************************/
// Signed integers
%typemap(out) int SWIG_DEFAULT_TYPE,
short SWIG_DEFAULT_TYPE,
long SWIG_DEFAULT_TYPE,
signed char SWIG_DEFAULT_TYPE
{
sprintf($target,"%ld", (long) $source);
}
// Unsigned integers
%typemap(out) unsigned SWIG_DEFAULT_TYPE,
unsigned short SWIG_DEFAULT_TYPE,
unsigned long SWIG_DEFAULT_TYPE,
unsigned char SWIG_DEFAULT_TYPE
{
sprintf($target,"%lu", (unsigned long) $source);
}
// Floating point
%typemap(out) double SWIG_DEFAULT_TYPE,
float SWIG_DEFAULT_TYPE
{
Tcl_PrintDouble(interp,(double) $source,interp->result);
}
// Strings
%typemap(out) char *SWIG_DEFAULT_TYPE
{
Tcl_SetResult(interp,$source,TCL_VOLATILE);
}
// Pointers
%typemap(out) User *SWIG_DEFAULT_TYPE
{
SWIG_MakePtr($target,(void *) $source, "$mangle");
}
/**************************** VARIABLE CREATION ****************************/
// Integers
%typemap(varinit) int SWIG_DEFAULT_TYPE,
unsigned int SWIG_DEFAULT_TYPE
{
Tcl_LinkVar(interp, "$target", (char *) &$source, TCL_LINK_INT $status);
}
// Doubles
%typemap(varinit) double SWIG_DEFAULT_TYPE {
Tcl_LinkVar(interp,"$target", (char *) &$source, TCL_LINK_DOUBLE $status);
}
// Strings
%typemap(varinit) char * SWIG_DEFAULT_TYPE {
Tcl_LinkVar(interp,"$target", (char *) &$source, TCL_LINK_STRING $status);
}
/****************************** CONSTANTS **********************************/
// Signed Integers
%typemap(const) int SWIG_DEFAULT_TYPE,
short SWIG_DEFAULT_TYPE,
long SWIG_DEFAULT_TYPE,
signed char SWIG_DEFAULT_TYPE
{
static char *_wrap_$target;
_wrap_$target = (char *) malloc(40);
sprintf(_wrap_$target,"%ld",$value);
Tcl_LinkVar(interp,"$target", (char *) &_wrap_$target, TCL_LINK_STRING | TCL_LINK_READ_ONLY);
}
// Unsigned integers
%typemap(const) unsigned SWIG_DEFAULT_TYPE,
unsigned short SWIG_DEFAULT_TYPE,
unsigned long SWIG_DEFAULT_TYPE,
unsigned char SWIG_DEFAULT_TYPE
{
static char *_wrap_$target;
_wrap_$target = (char *) malloc(40);
sprintf(_wrap_$target,"%lu",$value);
Tcl_LinkVar(interp,"$target", (char *) &_wrap_$target, TCL_LINK_STRING | TCL_LINK_READ_ONLY);
}
// Doubles and floats
%typemap(const) double SWIG_DEFAULT_TYPE,
float SWIG_DEFAULT_TYPE
{
static char *_wrap_$target;
_wrap_$target = (char *) malloc(40);
sprintf(_wrap_$target,"%f",$value);
Tcl_LinkVar(interp,"$target", (char *) &_wrap_$target, TCL_LINK_STRING | TCL_LINK_READ_ONLY);
}
// Strings
%typemap(const) char *SWIG_DEFAULT_TYPE
{
static char *_wrap_$target = "$value";
Tcl_LinkVar(interp,"$target", (char *) &_wrap_$target, TCL_LINK_STRING | TCL_LINK_READ_ONLY);
}
// Pointers
%typemap(const) User *SWIG_DEFAULT_TYPE
{
static char *_wrap_$target;
_wrap_$target = (char *) malloc(20+strlen("$mangle"));
SWIG_MakePtr(_wrap_$target, (void *) $value, "$mangle");
Tcl_LinkVar(interp,"$target", (char *) &_wrap_$target, TCL_LINK_STRING | TCL_LINK_READ_ONLY);
}
|