--- capa/capa51/pProj/capalogin.c 1999/11/08 22:30:02 1.3 +++ capa/capa51/pProj/capalogin.c 2000/03/22 21:08:03 1.4 @@ -1142,9 +1142,9 @@ int give_response(Problem_t *p,char **a { int can_answer; char tmp_str[MAX_BUFFER_SIZE], *c_answer_str; + char *error=NULL; - - switch( capa_check_answers(p,a,cnt) ) { + switch( capa_check_answers(p,a,cnt,&error) ) { case EXACT_ANS: move(A_ROW,S_COL); clrtoeol(); mvaddstr(A_ROW,S_COL,"*Yes Computer gets:"); @@ -1172,17 +1172,24 @@ int give_response(Problem_t *p,char **a *log_char='Y'; can_answer=NAY; if(*tried < TRY_BOUND) (*tried)++; break; + case WANTED_NUMERIC: move(S_ROW,S_COL); clrtoeol(); + mvaddstr(S_ROW,S_COL,"*Enter a Number Ans"); + *log_char='S'; can_answer=YAK; + break; case SIG_FAIL: move(S_ROW,S_COL); clrtoeol(); mvaddstr(S_ROW,S_COL,"*Adjust Sig. Figs. "); *log_char='S'; can_answer=YAK; + capa_mfree(error); break; case UNIT_FAIL: move(S_ROW,S_COL); clrtoeol(); mvaddstr(S_ROW,S_COL,"*Units incorrect "); *log_char='U'; can_answer=YAK; + capa_mfree(error); break; case UNIT_NOTNEEDED: move(S_ROW,S_COL); clrtoeol(); mvaddstr(S_ROW,S_COL,"*Only a number required"); *log_char='U'; can_answer=YAK; + capa_mfree(error); break; case NO_UNIT: move(S_ROW,S_COL); clrtoeol(); mvaddstr(S_ROW,S_COL,"*Units required "); @@ -1227,19 +1234,20 @@ int give_inhibited_response(Problem_t * { int can_answer; char tmp_str[MAX_BUFFER_SIZE]; + char *error=NULL; - - switch( capa_check_answers(p,a,cnt) ) { + switch( capa_check_answers(p,a,cnt,&error) ) { case EXACT_ANS: *log_char='Y'; break; case APPROX_ANS: *log_char='Y'; break; - case SIG_FAIL: *log_char='S'; break; - case UNIT_FAIL: *log_char='U'; break; - case UNIT_NOTNEEDED: *log_char='U'; break; + case SIG_FAIL: *log_char='S'; capa_mfree(error); break; + case UNIT_FAIL: *log_char='U'; capa_mfree(error); break; + case UNIT_NOTNEEDED: *log_char='U'; capa_mfree(error); break; case NO_UNIT: *log_char='u'; break; case BAD_FORMULA:*log_char='F'; break; case INCORRECT: *log_char='N'; break; + case WANTED_NUMERIC: *log_char='s'; break; case ANS_CNT_NOT_MATCH: *log_char='C'; break; }