Diff for /loncom/homework/caparesponse/capa.i between versions 1.3 and 1.6

version 1.3, 2004/03/12 21:06:19 version 1.6, 2004/11/16 23:37:40
Line 3 Line 3
   
 %}  %}
   
 %typemap(perl5,in) char** reterror (char** cvalue) {  %typemap(perl5,in) char** reterror (char* cvalue) {
   SV* tempsv;    SV* tempsv;
     int len;
   if (!SvROK($source)) {    if (!SvROK($source)) {
     croak("expected a reference\n");      croak("expected a reference\n");
   }    }
Line 12 Line 13
   if ((!SvPOK(tempsv))) {    if ((!SvPOK(tempsv))) {
     croak("expected a double reference\n");      croak("expected a double reference\n");
   }    }
   int len;    cvalue = SvPV(tempsv,len);
   char *temp=SvPV(tempsv,len);    $target = &cvalue;
   cvalue = &temp;  
   $target = cvalue;  
 }  }
   
 %typemap(perl5,argout) char ** reterror {  %typemap(perl5,argout) char ** reterror {
Line 26 Line 25
     free(*$source);      free(*$source);
   }    }
 }  }
   
   %typemap(perl5,in) double* scaled {
     double *temp;
     if (!SvROK($source)) {
       croak("expected a reference\n");
     }
     SV* tempsv;
     tempsv = SvRV($source);
     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;
   }
   
   %typemap(perl5,argout) double* scaled {
     SV *tempsv;
     tempsv = SvRV($arg);
     sv_setnv(tempsv, *$source);
     free($source);
   }
   
   
 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** reterror);     char *rndseed, char** reterror);
   
   extern int caparesponse_get_real_response(char* unit_str, char* answer,
     double* scaled);

Removed from v.1.3  
changed lines
  Added in v.1.6


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