--- loncom/homework/caparesponse/capa.i 2000/09/13 20:36:47 1.1 +++ loncom/homework/caparesponse/capa.i 2004/03/13 00:23:27 1.4 @@ -2,8 +2,32 @@ %{ %} + +%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; + cvalue = SvPV(tempsv,len); + $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); + int calc, char *id_list, char *pts_list, + char *rndseed, char** reterror);