--- loncom/homework/caparesponse/capa.i 2004/11/16 23:37:40 1.6 +++ loncom/homework/caparesponse/capa.i 2024/04/29 02:49:43 1.8 @@ -1,51 +1,51 @@ %module capa %{ - +#include "caparesponse.h" %} -%typemap(perl5,in) char** reterror (char* cvalue) { +%typemap(in) char** reterror (char* cvalue) { SV* tempsv; - int len; - if (!SvROK($source)) { + int unsigned int len; + if (!SvROK($input)) { croak("expected a reference\n"); } - tempsv = SvRV($source); + tempsv = SvRV($input); if ((!SvPOK(tempsv))) { croak("expected a double reference\n"); } cvalue = SvPV(tempsv,len); - $target = &cvalue; + $1 = &cvalue; } -%typemap(perl5,argout) char ** reterror { +%typemap(argout) char ** reterror { SV *tempsv; tempsv = SvRV($arg); - if (($source!=NULL) && (*$source!=NULL)) { - sv_setpv(tempsv, *$source); - free(*$source); + if (($1!=NULL) && (*$1!=NULL)) { + sv_setpv(tempsv, *$1); + free(*$1); } } -%typemap(perl5,in) double* scaled { +%typemap(in) double* scaled { double *temp; - if (!SvROK($source)) { + if (!SvROK($input)) { croak("expected a reference\n"); } SV* tempsv; - tempsv = SvRV($source); + tempsv = SvRV($input); if (!SvPOK(tempsv) && !SvIOK(tempsv) && !SvNOK(tempsv)) { croak("expected a single reference to a scalar\n"); } temp = malloc(sizeof(double)); *temp = SvNV(tempsv); - $target = temp; + $1 = temp; } -%typemap(perl5,argout) double* scaled { +%typemap(argout) double* scaled { SV *tempsv; tempsv = SvRV($arg); - sv_setnv(tempsv, *$source); - free($source); + sv_setnv(tempsv, *$1); + free($1); }