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

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

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


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