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); |