-# $Id: typemap,v 1.3 2005-10-11 15:40:14 mike Exp $
+# $Id: typemap,v 1.6 2005-12-06 23:15:56 mike Exp $
ZOOM_connection T_PTROBJ
ZOOM_connection * T_PTROBJ
# type of "const char *" as T_PTROBJ -- a pointer to an opaque object.
# This prevented the return value of ZOOM_record_get() from being
# translated into a Perl string. Instead, I am using T_PV, which
-# works properly.
+# works properly. This also has the pleasant side-effect that I no
+# longer have to discard the "const" qualfiers from the arguments to
+# the functions in the .xs file.
const char * T_PV
+opaquechar * T_OPAQUECHAR
const char ** T_PTROBJ
const struct timespec * T_PTROBJ
div_t T_OPAQUE_STRUCT
void ( * __func ) ( int __status, void * __arg ) T_PTROBJ
void ( * __func ) ( void ) T_PTROBJ
void ** T_PTROBJ
+struct datachunk T_DATACHUNK
#############################################################################
INPUT
T_OPAQUE_STRUCT
}
else
croak(\"$var is not of type ${ntype}\")
+T_OPAQUECHAR
+ { unsigned _unused_len;
+ $var = ($type) SvPV($arg, _unused_len); }
+
#############################################################################
OUTPUT
T_OPAQUE_STRUCT
sv_setref_pvn($arg, \"${ntype}\", (char *)&$var, sizeof($var));
+T_DATACHUNK
+ sv_setpvn($arg, $var.data, $var.len);