-# $Id: typemap,v 1.2 2005-10-11 11:36:33 mike Exp $
-
ZOOM_connection T_PTROBJ
ZOOM_connection * T_PTROBJ
ZOOM_options T_PTROBJ
__locale_t T_PTROBJ
char * __const * T_PTROBJ
const __sigset_t * T_PTROBJ
-const char * T_PTROBJ
+# The next line was originally autogenerated by h2xs, which gave the
+# 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. 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
if (sv_derived_from($arg, \"${ntype}\")) {
}
else
croak(\"$var is not of type ${ntype}\")
-#############################################################################
+T_OPAQUECHAR
+ { STRLEN _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);