--- capa/capa51/pProj/capaCgiUtils.c 2000/03/22 21:18:56 1.14 +++ capa/capa51/pProj/capaCgiUtils.c 2000/10/10 20:03:23 1.21 @@ -1,5 +1,28 @@ +/* Most of the web output generation routines. + 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. +*/ + /* ===================================================================== */ -/* copyrighted by Isaac Tsai, 1998, 1999, 2000 */ /* ===================================================================== */ #include #include @@ -229,14 +252,6 @@ void web_printheader(FILE *out) fprintf(out,"\n"); fprintf(out,"\n"); } - -#ifdef CAPA_WEB - fprintf(out,"\n", - CAPA_VER,COMPILE_DATE); -#else - fprintf(out,"\n", - CAPA_VER,COMPILE_DATE); -#endif } void web_printfooter(FILE *out) @@ -388,7 +403,7 @@ char *log_string; tmtime=localtime(&t); strftime(timeStr,FILE_NAME_LENGTH,"%d/%m %X",tmtime); /*ct[ strlen(ct)-1 ]=0;*/ /* Trash newline */ - protect_log_string(log_string); + /*protect_log_string(log_string);*/ /* done on indiviual answers now*/ fprintf(fp,"%s\t%s\t%s\n",student_number,timeStr,log_string); fflush(fp); fclose(fp); return (0); @@ -398,7 +413,7 @@ char *log_string; void w_get_responses(int x,int q_idx,char* submissions_str) { int leng, sub_idx; - char buf[MAX_BUFFER_SIZE]; + char buf[MAX_BUFFER_SIZE],*tmp; if( !strncmp(g_entries[x].name,"INPUT",5) ) { if( index(g_entries[x].name, ',' ) == NULL ) { /* only one answer */ sscanf(g_entries[x].name,"INPUT%d",&q_idx); @@ -412,7 +427,10 @@ void w_get_responses(int x,int q_idx,cha } leng = strlen( g_entries[x].val ); if ( leng > 0 ) { - sprintf(buf,"%d\t%s\t",q_idx,g_entries[x].val); + tmp=strsave(g_entries[x].val); + protect_log_string(tmp); + sprintf(buf,"%d\t%s\t",q_idx,tmp); + capa_mfree(tmp); strcat(submissions_str,buf); } } @@ -436,7 +454,10 @@ void w_get_responses(int x,int q_idx,cha } leng = strlen( g_entries[x].val ); if ( leng > 0 ) { - sprintf(buf,"%d\t%s\t",q_idx,g_entries[x].val); + tmp=strsave(g_entries[x].val); + protect_log_string(tmp); + sprintf(buf,"%d\t%s\t",q_idx,tmp); + capa_mfree(tmp); strcat(submissions_str,buf); } } @@ -1421,7 +1442,7 @@ char *class_dir; char *c_owner;char *cla } } - if ((mode==CHECK_ANSWER_MODE) || (mode== TRY_SET_MODE)) + if ((mode==CHECK_ANSWER_MODE) || (mode== TRY_SET_MODE) || (mode==VIEW_PREVIOUS_MODE)) capa_set_login_time(g_student_number,set); capa_get_header(&header,set); @@ -2759,7 +2780,7 @@ int *hc;int *qc;int *fs; configResult=read_capa_config("homework_weight",buf); if (configResult != 0 && configResult != -1 ) { sscanf(buf,"%f", &hw_w); - if(hw_w <= 0.0 ) { + if(hw_w < 0.0 ) { hw_w = DEFAULT_HW_W; } } else { @@ -2768,7 +2789,7 @@ int *hc;int *qc;int *fs; configResult=read_capa_config("quiz_weight",buf); if (configResult != 0 && configResult != -1 ) { sscanf(buf,"%f", &qz_w); - if(qz_w <= 0.0 ) { + if(qz_w < 0.0 ) { qz_w = DEFAULT_QZ_W; } } else { @@ -2777,7 +2798,7 @@ int *hc;int *qc;int *fs; configResult=read_capa_config("exam_weight",buf); if (configResult != 0 && configResult != -1 ) { sscanf(buf,"%f", &ex_w); - if(ex_w <= 0.0 ) { + if(ex_w < 0.0 ) { ex_w = DEFAULT_EX_W; } } else { @@ -2786,7 +2807,7 @@ int *hc;int *qc;int *fs; configResult=read_capa_config("final_weight",buf); if (configResult != 0 && configResult != -1 ) { sscanf(buf,"%f", &fe_w); - if(fe_w <= 0.0 ) { + if(fe_w < 0.0 ) { fe_w = DEFAULT_FE_W; } } else { @@ -2795,7 +2816,7 @@ int *hc;int *qc;int *fs; configResult=read_capa_config("correction_weight",buf); if (configResult != 0 && configResult != -1 ) { sscanf(buf,"%f", &pc_w); - if(pc_w <= 0.0 ) { + if(pc_w < 0.0 ) { pc_w = DEFAULT_PC_W; } } else {