--- loncom/homework/caparesponse/capa.i 2001/10/29 21:15:44 1.2 +++ loncom/homework/caparesponse/capa.i 2004/03/12 21:06:19 1.3 @@ -2,9 +2,33 @@ %{ %} + +%typemap(perl5,in) char** reterror (char** cvalue) { + SV* tempsv; + if (!SvROK($source)) { + croak("expected a reference\n"); + } + tempsv = SvRV($source); + if ((!SvPOK(tempsv))) { + croak("expected a double reference\n"); + } + int len; + char *temp=SvPV(tempsv,len); + cvalue = &temp; + $target = cvalue; +} + +%typemap(perl5,argout) char ** reterror { + SV *tempsv; + tempsv = SvRV($arg); + if (($source!=NULL) && (*$source!=NULL)) { + sv_setpv(tempsv, *$source); + free(*$source); + } +} extern int caparesponse_capa_check_answer(char *response,char *correct, int type,int tol_type,double tolerance, int sig_lbound,int sig_ubound, char *ans_fmt, char *unit_str, int calc, char *id_list, char *pts_list, - char *rndseed); + char *rndseed, char** reterror);