version 1.4, 2000/03/22 21:08:03
|
version 1.10, 2000/10/10 20:03:23
|
Line 1
|
Line 1
|
/* 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 */ |
/* version 4.6 */ |
|
|
/* Jan 28 1997 I.T. */ |
/* Jan 28 1997 I.T. */ |
Line 741 char *log_string;
|
Line 764 char *log_string;
|
tmtime=localtime(&t); |
tmtime=localtime(&t); |
strftime(timeStr,FILE_NAME_LENGTH,"%d/%m %X",tmtime); |
strftime(timeStr,FILE_NAME_LENGTH,"%d/%m %X",tmtime); |
/*ct[ strlen(ct)-1 ]=0;*/ /* Trash newline */ |
/*ct[ strlen(ct)-1 ]=0;*/ /* Trash newline */ |
protect_log_string(log_string); |
/*protect_log_string(log_string);*/ |
fprintf(fp,"%s\t%s\t%s\n",student_number,timeStr,log_string); fflush(fp); |
fprintf(fp,"%s\t%s\t%s\n",student_number,timeStr,log_string); fflush(fp); |
fclose(fp); |
fclose(fp); |
return (0); |
return (0); |
Line 1566 int *section;
|
Line 1589 int *section;
|
int prob; |
int prob; |
{ |
{ |
int i,length; |
int i,length; |
char date_str[DATE_LENGTH]; |
char date_str[DATE_LENGTH],*tmp; |
char **sbuf_pp,answer[(EDIT_HEIGHT*(EDIT_WIDTH+1))+1]; |
char **sbuf_pp,answer[(EDIT_HEIGHT*(EDIT_WIDTH+1))+1]; |
char submissions_str[(EDIT_HEIGHT*(EDIT_WIDTH+1))+MAX_BUFFER_SIZE]; |
char submissions_str[(EDIT_HEIGHT*(EDIT_WIDTH+1))+MAX_BUFFER_SIZE]; |
time_t curtime; |
time_t curtime; |
Line 1592 int prob;
|
Line 1615 int prob;
|
capa_mfree((char *)sbuf_pp[i]); |
capa_mfree((char *)sbuf_pp[i]); |
} |
} |
capa_set_subjective(set,prob,student_number,answer); |
capa_set_subjective(set,prob,student_number,answer); |
sprintf(submissions_str,"%d\t%s\t",prob,answer); |
tmp=strsave(answer); |
|
protect_log_string(tmp); |
|
sprintf(submissions_str,"%d\t%s\t",prob,tmp); |
|
capa_mfree(tmp); |
log_submissions(student_number,set,submissions_str); |
log_submissions(student_number,set,submissions_str); |
capa_mfree((char *)sbuf_pp); |
capa_mfree((char *)sbuf_pp); |
return 1; |
return 1; |
Line 1632 int *section;
|
Line 1658 int *section;
|
T_entry entry; |
T_entry entry; |
char answer[256], *a_str, **ans_strs; |
char answer[256], *a_str, **ans_strs; |
int num, offset, num_questions, start_from, leng; |
int num, offset, num_questions, start_from, leng; |
char *log_string,submissions_str[MAX_BUFFER_SIZE]; |
char *log_string,submissions_str[MAX_BUFFER_SIZE],*tmp; |
int *tried,answered; |
int *tried,answered; |
int scr_idx=1, display=1, second_scr, canAnswer; |
int scr_idx=1, display=1, second_scr, canAnswer; |
int usr_command, whereto, allow_hint=0, ex=0; |
int usr_command, whereto, allow_hint=0, ex=0; |
Line 1837 int *section;
|
Line 1863 int *section;
|
if ( is_all_ws(ans_strs[0]) ) break; |
if ( is_all_ws(ans_strs[0]) ) break; |
trim_response_ws(ans_strs[0]); |
trim_response_ws(ans_strs[0]); |
} |
} |
|
tmp=strsave(a_str); |
sprintf(submissions_str,"%d\t%s\t",num+1,a_str); |
protect_log_string(tmp); |
|
sprintf(submissions_str,"%d\t%s\t",num+1,tmp); |
|
capa_mfree(tmp); |
log_submissions(student_number,set,submissions_str); |
log_submissions(student_number,set,submissions_str); |
|
|
{ |
{ |
Line 1887 int *section;
|
Line 1915 int *section;
|
/* ------------------------------ check due date */ |
/* ------------------------------ check due date */ |
time(&curtime); |
time(&curtime); |
/* ===> if (compare_datetime(curtime,header.due_date) > 0) { */ |
/* ===> if (compare_datetime(curtime,header.due_date) > 0) { */ |
|
#ifndef NO_DATE_CHECK |
if( capa_check_date(CHECK_DUE_DATE,student_number,*section,set) > 0 ) { |
if( capa_check_date(CHECK_DUE_DATE,student_number,*section,set) > 0 ) { |
capa_get_date(CHECK_DUE_DATE,student_number,*section,set,date_str); |
capa_get_date(CHECK_DUE_DATE,student_number,*section,set,date_str); |
sprintf(answer,"Sorry, the due date was: %s",date_str); |
sprintf(answer,"Sorry, the due date was: %s",date_str); |
move(20,1); clrtobot(); addstr(answer); mypause(23,1); |
move(20,1); clrtobot(); addstr(answer); mypause(23,1); |
} else { |
} else |
|
#endif |
|
{ |
capa_set_entry(&entry,student_number,set,offset); |
capa_set_entry(&entry,student_number,set,offset); |
} |
} |
} break; |
} break; |
Line 2406 void print_version()
|
Line 2437 void print_version()
|
{ |
{ |
printf("capalogin\n"); |
printf("capalogin\n"); |
printf(" CAPA version %s, %s\n",CAPA_VER,COMPILE_DATE); |
printf(" CAPA version %s, %s\n",CAPA_VER,COMPILE_DATE); |
|
printf(" CAPA is released under the GNU GPL v2 see COPYING for details.\n"); |
} |
} |
|
|
/* ------------------------------------------------------------------------- */ |
/* ------------------------------------------------------------------------- */ |