Annotation of capa/capa51/pProj/capaHTML.c, revision 1.1

1.1     ! albertel    1: 
        !             2: /* ||>> ================================================================ <<|| */
        !             3: /*       1         2         3         4         5         6         7        */
        !             4: /* 45678901234567890123456789012345678901234567890123456789012345678901234567 */
        !             5: /* created by Isaac Tsai 1996                                                 */
        !             6: /* copyrighted by Isaac Tsai 1996, 1997, 1998, 1999                           */
        !             7: /* ||>> ================================================================ <<|| */
        !             8: 
        !             9: #include <signal.h>
        !            10: 
        !            11: #include "capaParser.h"
        !            12: #include "capaCommon.h"
        !            13: #include "ranlib.h"
        !            14: 
        !            15: #define   _MAIN_PROGRAM_
        !            16: #include "capaCGI.h"
        !            17: 
        !            18: /* |>> ====================== begin of main() =========================== <<| */
        !            19: 
        !            20: int main(int argc, char *argv[]) 
        !            21: { 
        !            22: #ifdef __alpha
        !            23:   struct timespec      a_ts, b_ts;
        !            24: #endif
        !            25:   /*
        !            26:   time_t               curtime;
        !            27:   char                *time_str;
        !            28:   double               tdiff;
        !            29:   long                 sec_diff, nsec_diff;
        !            30:   char                 log_str[FILE_NAME_LENGTH];
        !            31:   */
        !            32: #ifdef CGI_DBUG
        !            33:   char                 filename[FILE_NAME_LENGTH];
        !            34: #endif
        !            35:   int                  tmp_int;
        !            36:   
        !            37: #ifdef __alpha  
        !            38:   getclock(TIMEOFDAY, &a_ts);
        !            39: #endif   
        !            40:   signal(SIGFPE, SIG_IGN);
        !            41:   strcpy(g_prog_name,argv[0]);
        !            42:   setbuf(stdout,NULL);  /* non-buffered STREAM io */
        !            43: 
        !            44: #ifdef CGI_DBUG
        !            45:    sprintf(filename,"cgi.DBUG");
        !            46:    if ((g_cgi=fopen(filename,"a"))==NULL) {
        !            47:      fprintf(stdout,"Error : can't open cgi debug\n"); 
        !            48:      fflush(stdout);  return 2; 
        !            49:    }
        !            50:    setbuf(g_cgi,NULL);  /* non-buffered STREAM io */
        !            51: #endif /* CGI_DBUG */
        !            52: 
        !            53:     fprintf(stdout,"Content-type: text/html%c%c",LF,LF);
        !            54:     /*   fprintf(stdout,"<HTML><HEAD>\n");
        !            55:       fprintf(stdout,"<BODY BGCOLOR=\"#FFFFFF\" LINK=\"#0000EE\" VLINK=\"#EE1100\">\n");
        !            56:       fflush(stdout);  
        !            57:    */
        !            58: 
        !            59:    /* HTML header can not be shown until input has been parsed, so that I can
        !            60:       be in the class directory */
        !            61:     tmp_int = w_get_input();
        !            62:     if ((tmp_int!=0) && (!((tmp_int == 32)||(tmp_int == 64)||(tmp_int == (32|64))))) { 
        !            63:       /* <== let's get rid of errcode 32 and 64, */
        !            64:       /* REMOTE_HOST */
        !            65:       web_printheader(stdout);
        !            66:       fprintf(stdout,"<!-- w_get_input returned error code %d. -->\n",tmp_int);
        !            67:       fprintf(stdout,"<!-- getinput error -->\n"); fflush(stdout);
        !            68:       fprintf(stdout,"</BODY></HTML>\n"); 
        !            69: #ifdef CGI_DBUG
        !            70:       fprintf(g_cgi,"w_get_input(): error\n"); fflush(g_cgi);
        !            71: #endif /* CGI_DBUG */
        !            72:       web_printfooter(stdout);
        !            73:       return (1);
        !            74:     } else {
        !            75: #ifdef CGI_DBUG
        !            76:       fprintf(g_cgi,"w_get_input(): %d error, run_mode=%d\n",tmp_int,
        !            77: 	      g_run_mode); fflush(g_cgi);
        !            78: #endif /* CGI_DBUG */    
        !            79:       web_printheader(stdout);
        !            80:       switch( g_run_mode ) {
        !            81:       case 0:  break;
        !            82:       case M_CHECKIN:  print_mainmenu(g_class_name, g_student_number, g_entered_pin); break;
        !            83:       case M_TRYSET:   process_mode(TRY_SET_MODE);       break;
        !            84:       case M_VIEWPREV: process_mode(VIEW_PREVIOUS_MODE); break;
        !            85:       case M_VIEWSUMM: print_summary(g_cpath,g_class_name,g_student_number, g_entered_pin, g_login_set);
        !            86: 	   break;
        !            87:       case M_EXAMSUMM: 
        !            88:       case M_QUIZSUMM: process_summary(g_run_mode); break;
        !            89: #ifdef   CAPA_WEB
        !            90:       case M_CHECKANS: process_mode(CHECK_ANSWER_MODE); break;
        !            91: #endif
        !            92:       case M_TERMSCORE: print_termscore_page(g_cpath,g_class_name,g_student_number, g_entered_pin, g_login_set,stdout);
        !            93:            break;
        !            94:       default: break;
        !            95:       }
        !            96:       web_printfooter(stdout);
        !            97:     }
        !            98:     
        !            99:     /*    fprintf(stdout,"</BODY></HTML>\n"); fflush(stdout);*/
        !           100: 
        !           101: #ifdef CGI_DBUG
        !           102:     fflush(g_cgi); fclose(g_cgi);
        !           103: #endif /* CGI_DBUG */
        !           104: 
        !           105:     /*
        !           106:     getclock(TIMEOFDAY, &b_ts);
        !           107:     sec_diff  = b_ts.tv_sec  - a_ts.tv_sec;
        !           108:     nsec_diff = b_ts.tv_nsec - a_ts.tv_nsec;
        !           109:     tdiff = (double)1000000000.0 * sec_diff + (double)nsec_diff;
        !           110:     sprintf(log_str,"%s %s %lg",getenv("REMOTE_HOST"),getenv("HTTP_USER_AGENT"),tdiff);
        !           111:     w_log_timing(g_student_number,g_login_set,g_student_data.s_sec,log_str);
        !           112:     */
        !           113:     return (0);
        !           114: }
        !           115: 
        !           116: 

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