#include int caparesponse_capa_check_answer(char *response,char *correct, int type,int tol_type,double tolerance, int sig_lbound,int sig_ubound, char *ans_fmt, char *unit_str, int calc) { int result; Problem_t p; char *error=NULL,filename[FILE_NAME_LENGTH]; FILE *fp; /*need to initialize unit parser*/ sprintf(filename,"/home/httpd/html/res/adm/include/capa.units"); if ((fp=fopen(filename,"r"))==NULL) { /* printf("Error: can't open %s\n",filename);*/ return (-1); } u_getunit(fp); fclose(fp); p.ans_type = type; p.answer = correct; p.tol_type = tol_type; p.tolerance = tolerance; p.sig_l = sig_lbound; p.sig_u = sig_ubound; p.fmt = strsave(ans_fmt); p.unit_str = strsave(unit_str); p.ans_unit = u_parse_unit(unit_str); p.calc_type = calc; /* assign_id_list and assign_pts_list exist in capaGrammerDef.y */ p.ans_id_list=NULL; p.ans_pts_list=NULL; result=capa_check_answer(&p,response,&error); if (error!=NULL) {free(error);} return result; }