File:  [LON-CAPA] / loncom / homework / caparesponse / capa.i
Revision 1.5: download - view: text, annotated - select for diffs
Mon Mar 22 01:43:28 2004 UTC (20 years, 2 months ago) by albertel
Branches: MAIN
CVS tags: version_1_2_X, version_1_2_1, version_1_2_0, version_1_1_99_5, version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, HEAD
- that's right in C you need/should declare all variables at the beginning of the function

    1: %module capa
    2: %{
    3: 
    4: %}
    5: 
    6: %typemap(perl5,in) char** reterror (char* cvalue) {
    7:   SV* tempsv;
    8:   int len;
    9:   if (!SvROK($source)) {
   10:     croak("expected a reference\n");
   11:   }
   12:   tempsv = SvRV($source);
   13:   if ((!SvPOK(tempsv))) {
   14:     croak("expected a double reference\n");
   15:   }
   16:   cvalue = SvPV(tempsv,len);
   17:   $target = &cvalue;
   18: }
   19: 
   20: %typemap(perl5,argout) char ** reterror {
   21:   SV *tempsv;
   22:   tempsv = SvRV($arg);
   23:   if (($source!=NULL) && (*$source!=NULL)) {
   24:     sv_setpv(tempsv, *$source);
   25:     free(*$source);
   26:   }
   27: }
   28: extern int caparesponse_capa_check_answer(char *response,char *correct,
   29: 				   int type,int tol_type,double tolerance,
   30: 				   int sig_lbound,int sig_ubound, 
   31: 				   char *ans_fmt, char *unit_str,
   32: 				   int calc, char *id_list, char *pts_list,
   33: 				   char *rndseed, char** reterror);

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