File:  [LON-CAPA] / loncom / homework / caparesponse / caparesponse.c
Revision 1.5: download - view: text, annotated - select for diffs
Wed Nov 29 00:29:43 2000 UTC (23 years, 7 months ago) by albertel
Branches: MAIN
CVS tags: HEAD
- properly detects when there is no unit now

    1: #include <capaCommon.h>
    2: int caparesponse_capa_check_answer(char *response,char *correct,
    3: 				   int type,int tol_type,double tolerance,
    4: 				   int sig_lbound,int sig_ubound, 
    5: 				   char *ans_fmt, char *unit_str,
    6: 				   int calc)
    7: {
    8:   int result;
    9:   Problem_t p;
   10:   char *error=NULL,filename[FILE_NAME_LENGTH];
   11:   FILE *fp;
   12: 
   13:   printf("hi in caparesponse\n");
   14:   /*need to initialize unit parser*/
   15:   sprintf(filename,"/home/httpd/html/res/adm/includes/capa.units");
   16:   if ((fp=fopen(filename,"r"))==NULL) {
   17:     /* printf("Error: can't open %s\n",filename);*/
   18:       return (-1); 
   19:   }
   20:   u_getunit(fp);
   21:   fclose(fp);
   22: 
   23:   p.ans_type   = type;
   24:   p.answer     = correct;
   25:   p.tol_type   = tol_type;
   26:   p.tolerance  = tolerance;
   27:   p.sig_lbound = sig_lbound;
   28:   p.sig_ubound = sig_ubound;
   29:   strncpy(p.ans_fmt,ans_fmt,ANSWER_STRING_LENG-1);
   30:   if (unit_str[0]!='\0') {
   31:     strncpy(p.unit_str,unit_str,ANSWER_STRING_LENG-1);
   32:     p.ans_unit   = u_parse_unit(unit_str);
   33:   } else {
   34:     p.unit_str[0]='\0';
   35:     p.ans_unit=NULL;
   36:   }
   37:   p.calc       = calc;
   38: 
   39:   /* assign_id_list and assign_pts_list exist in capaGrammerDef.y */
   40:   p.id_list=NULL;
   41:   p.pts_list=NULL;
   42: 
   43:   result=capa_check_answer(&p,response,&error);
   44: 
   45:   if (error!=NULL) {free(error);}
   46: 
   47:   return result;
   48: }

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