--- capa/capa51/pProj/capalogin.c 1999/11/08 22:30:02 1.3 +++ capa/capa51/pProj/capalogin.c 2000/08/07 20:47:29 1.8 @@ -1,4 +1,27 @@ -/* Copyright 1992-1997 Michigan State University, Board of Trustee */ +/* main code that implements the capa login shell + Copyright (C) 1992-2000 Michigan State University + + The CAPA system is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + + The CAPA system is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public + License along with the CAPA system; see the file COPYING. If not, + write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. + + As a special exception, you have permission to link this program + with the TtH/TtM library and distribute executables, as long as you + follow the requirements of the GNU GPL in regard to all of the + software in the executable aside from TtH/TtM. +*/ + /* version 4.6 */ /* Jan 28 1997 I.T. */ @@ -1142,9 +1165,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 +1195,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 +1257,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; } @@ -2398,6 +2429,7 @@ void print_version() { printf("capalogin\n"); printf(" CAPA version %s, %s\n",CAPA_VER,COMPILE_DATE); + printf(" CAPA is released under the GNU GPL v2 see COPYING for details.\n"); } /* ------------------------------------------------------------------------- */