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, 5 months ago) by albertel
Branches: MAIN
CVS tags: HEAD
- properly detects when there is no unit now

#include <capaCommon.h>
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;

  printf("hi in caparesponse\n");
  /*need to initialize unit parser*/
  sprintf(filename,"/home/httpd/html/res/adm/includes/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_lbound = sig_lbound;
  p.sig_ubound = sig_ubound;
  strncpy(p.ans_fmt,ans_fmt,ANSWER_STRING_LENG-1);
  if (unit_str[0]!='\0') {
    strncpy(p.unit_str,unit_str,ANSWER_STRING_LENG-1);
    p.ans_unit   = u_parse_unit(unit_str);
  } else {
    p.unit_str[0]='\0';
    p.ans_unit=NULL;
  }
  p.calc       = calc;

  /* assign_id_list and assign_pts_list exist in capaGrammerDef.y */
  p.id_list=NULL;
  p.pts_list=NULL;

  result=capa_check_answer(&p,response,&error);

  if (error!=NULL) {free(error);}

  return result;
}

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