Diff for /loncom/homework/caparesponse/capa.i between versions 1.2 and 1.7

version 1.2, 2001/10/29 21:15:44 version 1.7, 2024/04/24 21:11:49
Line 2 Line 2
 %{  %{
   
 %}  %}
   
   %typemap(in) char** reterror (char* cvalue) {
     SV* tempsv;
     int len;
     if (!SvROK($input)) {
       croak("expected a reference\n");
     }
     tempsv = SvRV($input);
     if ((!SvPOK(tempsv))) {
       croak("expected a double reference\n");
     }
     cvalue = SvPV(tempsv,len);
     $1 = &cvalue;
   }
   
   %typemap(argout) char ** reterror {
     SV *tempsv;
     tempsv = SvRV($arg);
     if (($1!=NULL) && (*$1!=NULL)) {
       sv_setpv(tempsv, *$1);
       free(*$1);
     }
   }
   
   %typemap(in) double* scaled {
     double *temp;
     if (!SvROK($input)) {
       croak("expected a reference\n");
     }
     SV* tempsv;
     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);
     $1 = temp;
   }
   
   %typemap(argout) double* scaled {
     SV *tempsv;
     tempsv = SvRV($arg);
     sv_setnv(tempsv, *$1);
     free($1);
   }
   
   
 extern int caparesponse_capa_check_answer(char *response,char *correct,  extern int caparesponse_capa_check_answer(char *response,char *correct,
    int type,int tol_type,double tolerance,     int type,int tol_type,double tolerance,
    int sig_lbound,int sig_ubound,      int sig_lbound,int sig_ubound, 
    char *ans_fmt, char *unit_str,     char *ans_fmt, char *unit_str,
    int calc, char *id_list, char *pts_list,     int calc, char *id_list, char *pts_list,
    char *rndseed);     char *rndseed, char** reterror);
   
   extern int caparesponse_get_real_response(char* unit_str, char* answer,
     double* scaled);

Removed from v.1.2  
changed lines
  Added in v.1.7


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>