#
# int_tbm = "integer to be modified"
# The 'status' variable is a good example of this
TYPEMAP
cmp * T_COMPLEXP
dblcmp * T_DBLCOMPLEXP
fitsfile * T_PTR
logical * T_LOGICALP
byte * T_BYTEP
unsigned short * T_USHORTP
unsigned int * T_UINTP
unsigned long * T_ULONGP
short * T_SHORTP
int * T_INTP
long * T_LONGP
float * T_FLOATP
double * T_DOUBLEP
char ** T_STRINGP
char * T_STRING
byte T_BYTE
logical T_LOGICAL
float T_FLOAT
INPUT
T_STRINGP
$var = ($type)packND($arg,TSTRING)
T_COMPLEXP
$var = ($type)packND($arg,TCOMPLEX)
T_DBLCOMPLEXP
$var = ($type)packND($arg,TDBLCOMPLEX)
T_LOGICALP
$var = ($type)packND($arg,TLOGICAL)
T_BYTEP
$var = ($type)packND($arg,TBYTE)
T_USHORTP
$var = ($type)packND($arg,TUSHORT)
T_SHORTP
$var = ($type)packND($arg,TSHORT)
T_UINTP
$var = ($type)packND($arg,TUINT)
T_ULONGP
$var = ($type)packND($arg,TULONG)
T_INTP
$var = ($type)packND($arg,TINT)
T_LONGP
$var = ($type)packND($arg,TLONG)
T_FLOATP
$var = ($type)packND($arg,TFLOAT)
T_DOUBLEP
$var = ($type)packND($arg,TDOUBLE)
T_BYTE
$var = ($type)SvIV($arg)
T_LOGICAL
$var = ($type)SvIV($arg)
T_FLOAT
$var = ($type)SvNV($arg)
T_STRING
{
if ($arg == &sv_undef)
$var = ($type)NULL;
else
$var = ($type)SvPV($arg,na);
}
OUTPUT
T_BYTE
sv_setiv($arg, (IV) $var);
T_LOGICAL
sv_setiv($arg, (IV) $var);
T_FLOAT
sv_setnv($arg, (double) $var);
T_STRING
if ($var != NULL)
sv_setpv((SV *)$arg, $var);