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: /*need to initialize unit parser*/
14: sprintf(filename,"/home/httpd/html/res/adm/include/capa.units");
15: if ((fp=fopen(filename,"r"))==NULL) {
16: /* printf("Error: can't open %s\n",filename);*/
17: return (-1);
18: }
19: u_getunit(fp);
20: fclose(fp);
21:
22: p.ans_type = type;
23: p.answer = correct;
24: p.tol_type = tol_type;
25: p.tolerance = tolerance;
26: p.sig_lbound = sig_lbound;
27: p.sig_ubound = sig_ubound;
28: strncpy(p.ans_fmt,ans_fmt,ANSWER_STRING_LENG-1);
29: strncpy(p.unit_str,unit_str,ANSWER_STRING_LENG-1);
30: p.ans_unit = u_parse_unit(unit_str);
31: p.calc = calc;
32:
33: /* assign_id_list and assign_pts_list exist in capaGrammerDef.y */
34: p.id_list=NULL;
35: p.pts_list=NULL;
36:
37:
38: result=capa_check_answer(&p,response,&error);
39:
40: if (error!=NULL) {free(error);}
41:
42: return result;
43: }
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>