Diff for /capa/capa51/pProj/capaCgiUtils.c between versions 1.6 and 1.12

version 1.6, 1999/11/29 19:44:21 version 1.12, 2000/02/22 18:13:20
Line 425  void w_get_responses(int x,int q_idx,cha Line 425  void w_get_responses(int x,int q_idx,cha
   sa_p->a_idx  = sub_idx;    sa_p->a_idx  = sub_idx;
   sa_p->a_str  = strsave(g_entries[x].val);    sa_p->a_str  = strsave(g_entries[x].val);
   sa_p->a_next = NULL;    sa_p->a_next = NULL;
     trim_response_ws(sa_p->a_str);
   if( g_stu_ans_pp[q_idx] == NULL ) {    if( g_stu_ans_pp[q_idx] == NULL ) {
     g_stu_ans_pp[q_idx] = sa_p;      g_stu_ans_pp[q_idx] = sa_p;
   } else {     } else { 
Line 800  void        append_qtext(new_str) char * Line 801  void        append_qtext(new_str) char *
   len,g_qchar_cnt,g_qsize);    len,g_qchar_cnt,g_qsize);
   fflush(g_cgi);    fflush(g_cgi);
 #endif /* CGI_DBUG */      #endif /* CGI_DBUG */    
   if (g_qchar_cnt+len>g_qsize-1) {    if (g_qchar_cnt+len>g_qsize-2) {
     char *temp_text;      char *temp_text;
     g_qsize=(g_qchar_cnt+len)*2;      g_qsize=(g_qchar_cnt+len)*2;
     temp_text=capa_malloc(g_qsize,sizeof(char));      temp_text=capa_malloc(g_qsize,sizeof(char));
Line 814  void        append_qtext(new_str) char * Line 815  void        append_qtext(new_str) char *
   g_qchar_cnt += len;    g_qchar_cnt += len;
   g_question_txt[g_qchar_cnt+1]='\0';    g_question_txt[g_qchar_cnt+1]='\0';
 #ifdef CGI_DBUG  #ifdef CGI_DBUG
   fprintf(g_cgi,"after: len %d; g_qchar_cnt %d; g_qsize %d\n",len,g_qchar_cnt,g_qsize);    fprintf(g_cgi,"after: len %d; g_qchar_cnt %d; g_qsize %d; strlen(g_question_txt):%d\n",len,g_qchar_cnt,g_qsize,strlen(g_question_txt));
   fflush(g_cgi);    fflush(g_cgi);
 #endif /* CGI_DBUG */      #endif /* CGI_DBUG */    
 }  }
Line 828  void        append_stext(new_str) char * Line 829  void        append_stext(new_str) char *
   new_str,len,g_schar_cnt,g_ssize);    new_str,len,g_schar_cnt,g_ssize);
   fflush(g_cgi);    fflush(g_cgi);
 #endif /* CGI_DBUG */      #endif /* CGI_DBUG */    
   if (g_schar_cnt+len>g_ssize-1) {    if (g_schar_cnt+len>g_ssize-2) {
     char *temp_text;      char *temp_text;
     g_ssize=(g_schar_cnt+len)*2;      g_ssize=(g_schar_cnt+len)*2;
     temp_text=capa_malloc(g_ssize,sizeof(char));      temp_text=capa_malloc(g_ssize,sizeof(char));
Line 1038  print_mainmenu(class,sn,pin)char *class; Line 1039  print_mainmenu(class,sn,pin)char *class;
   /*Termscore Button*/    /*Termscore Button*/
   if( outcome ) {    if( outcome ) {
     fprintf(stdout,"<li><form method=\"post\" ");      fprintf(stdout,"<li><form method=\"post\" ");
     sprintf(buf,"action=\"http://%s/%s/capahtml\">",serverName,g_cgibin_path);     sprintf(buf,"action=\"http://%s/%s/%s/capasbin\">",serverName,g_cgibin_path,g_cowner);
     fprintf(stdout,"%s\n", buf);      fprintf(stdout,"%s\n", buf);
     fprintf(stdout,"<input type=\"hidden\" name=\"CLASS\" value=\"%s\">\n",class);      fprintf(stdout,"<input type=\"hidden\" name=\"CLASS\" value=\"%s\">\n",class);
     fprintf(stdout,"<input type=\"hidden\" name=\"SNUM\" value=\"%s\">\n",sn);      fprintf(stdout,"<input type=\"hidden\" name=\"SNUM\" value=\"%s\">\n",sn);
Line 1062  print_page_header(mode,num_quest) int mo Line 1063  print_page_header(mode,num_quest) int mo
   char *serverName;    char *serverName;
   int    configResult,term_summary_button=1;    int    configResult,term_summary_button=1;
   
     buf[0]='\0';
     discussdir[0]='\0';
   serverName=getenv("SERVER_NAME");    serverName=getenv("SERVER_NAME");
   if (!serverName) {    if (!serverName) {
     fprintf(stdout,"Enviroment variable SERVER_NAME not set.\n");      fprintf(stdout,"Enviroment variable SERVER_NAME not set.\n");
Line 1405  char *class_dir; char *c_owner;char *cla Line 1408  char *class_dir; char *c_owner;char *cla
   
   if ( result != 0 ) {    if ( result != 0 ) {
      if( !g_passdue ) {       if( !g_passdue ) {
        append_qtext("<FORM method=\"post\" ");         append_qtext("<FORM NAME=\"CAPA\" method=\"post\" ");
        sprintf(buf,"action=\"http://%s/%s/%s/capasbin\">",serverName,         sprintf(buf,"action=\"http://%s/%s/%s/capasbin\">",serverName,
        g_cgibin_path,c_owner);         g_cgibin_path,c_owner);
        append_qtext(buf);         append_qtext(buf);
Line 1560  char *class_dir; char *c_owner;char *cla Line 1563  char *class_dir; char *c_owner;char *cla
   }    }
 }  }
   
   /*if the assignment is passedue we come here to get what the answer was just in case*/
 void  void
 get_response(char pcr,char u_db,int q_idx,Problem_t *p)  get_response(char pcr,char u_db,int q_idx,Problem_t *p)
 {  {
Line 1912  int gather_answers(char ***ans,int q_idx Line 1916  int gather_answers(char ***ans,int q_idx
   return cnt;    return cnt;
 }  }
   
   /*logging user's answer when it is passed due.*/
 void  void
 log_user_ans(int q_idx,Problem_t *p)  log_user_ans(int q_idx,Problem_t *p)
 {  {
   char **ans;    char **ans;
   int cnt;    int cnt;
   if (p->ans_type==ANSWER_IS_SUBJECTIVE) {    if (p->ans_type==ANSWER_IS_SUBJECTIVE) {
     capa_set_subjective(g_login_set,q_idx+1,g_student_number,        /*capa_set_subjective(g_login_set,q_idx+1,g_student_number,
  g_stu_ans_pp[q_idx+1]->a_str);   g_stu_ans_pp[q_idx+1]->a_str);*/
   } else {    } else {
     if (-1 != (cnt=gather_answers(&ans,q_idx,p))) {      if (-1 != (cnt=gather_answers(&ans,q_idx,p))) {
       switch( capa_check_answers(p,ans,cnt) ) {        switch( capa_check_answers(p,ans,cnt) ) {
Line 2411  FILE *out; Line 2416  FILE *out;
   float    hw_w, qz_w, ex_w, fe_w, pc_w;    float    hw_w, qz_w, ex_w, fe_w, pc_w;
   int      idx, entry_count, tmp_len;    int      idx, entry_count, tmp_len;
   float    *S, *F;    float    *S, *F;
   int      *X;    int      *X; /* array controlling whether to extrapolate scores */
   char     *capa_server;    char     *capa_server;
   int      max_set[4];    int      max_set[4], width=600,height=750; /* width and height of applet*/
   char     **c_path_pp;    char     **c_path_pp;
   
   /*Unused Vars      /*Unused Vars  
Line 2466  FILE *out; Line 2471  FILE *out;
           
     return;      return;
   }    }
   
     get_tscore_width_height(&width,&height);
   
   c_path_pp = (char **)capa_malloc( 4, sizeof(char *));    c_path_pp = (char **)capa_malloc( 4, sizeof(char *));
   tmp_len = strlen(class_fullpath) + 1;    tmp_len = strlen(class_fullpath) + 1;
   c_path_pp[0] = (char *)capa_malloc(tmp_len,sizeof(char));    c_path_pp[0] = (char *)capa_malloc(tmp_len,sizeof(char));
Line 2506  FILE *out; Line 2514  FILE *out;
     c_path_pp[2] = (char *)capa_malloc( (tmp_len),sizeof(char));      c_path_pp[2] = (char *)capa_malloc( (tmp_len),sizeof(char));
     sprintf(c_path_pp[2],"%s",buf);      sprintf(c_path_pp[2],"%s",buf);
     max_set[2] = check_class_get_maxset(c_path_pp[2]);      max_set[2] = check_class_get_maxset(c_path_pp[2]);
       printf("<!-- for %s max_set %d -->\n",c_path_pp[2],max_set[2]);
     if( max_set[2] <= 0 ) {      if( max_set[2] <= 0 ) {
       /* should we continue ? */   /* no sets */
       max_set[2] = 0;   max_set[2] = 0;
       for(idx=2;idx <= (fs*2); idx++) {      }
       /* start extrapolation with sets that don't yet exist */
       for(idx=2+(max_set[2]*2);idx <= (fs*2); idx++) {
         X[idx] = 1;          X[idx] = 1;
       }  
     }      }
   } else { /* if exam_path is not in capa.config, then skip exams */    } else { /* if exam_path is not in capa.config, then skip exams */
     fs = 0;      fs = 0;
Line 2558  FILE *out; Line 2568  FILE *out;
           term_score += set_score;            term_score += set_score;
           capa_mfree(header.weight);            capa_mfree(header.weight);
           capa_mfree(header.partial_credit);            capa_mfree(header.partial_credit);
     printf("<!-- %s %d %d -->\n",c_path_pp[idx],set_score,valid_wgt);
           if(idx==2) { /* exam sets */            if(idx==2) { /* exam sets */
             S[set_idx*2] = (float)set_score;              S[set_idx*2] = (float)set_score;
             F[set_idx*2] = (float)valid_wgt;              F[set_idx*2] = (float)valid_wgt;
             X[set_idx*2] = 0;              if (valid_wgt == 0) {
    X[set_idx*2] = 1;
       } else {
    X[set_idx*2] = 0;
       }
           }            }
           if(idx==3) { /* correction sets */            if(idx==3) { /* correction sets */
             S[set_idx*2+1] = (float)set_score;              S[set_idx*2+1] = (float)set_score;
             F[set_idx*2+1] = (float)valid_wgt;              F[set_idx*2+1] = (float)valid_wgt;
             X[set_idx*2+1] = 0;      if (valid_wgt == 0 ) {
    X[set_idx*2+1] = 1;
       } else {
    X[set_idx*2+1] = 0;
       }
           }            }
        }         }
        if( (idx == 0) || (idx==1) ) { /* homeworks and quizzes */         if( (idx == 0) || (idx==1) ) { /* homeworks and quizzes */
Line 2581  FILE *out; Line 2600  FILE *out;
   
       
   fprintf(out,"<CENTER>\n");    fprintf(out,"<CENTER>\n");
   fprintf(out,"<APPLET CODE=TScore.class CODEBASE=\"http://%s\" width=600 height=750>\n",capa_server);    fprintf(out,"<APPLET CODE=TScore.class CODEBASE=\"http://%s/CAPA/\" width=%d height=%d>\n",capa_server,width,height);
   fprintf(out,"<PARAM NAME=\"HW_W\"  VALUE=\"%f\">\n", hw_w);    fprintf(out,"<PARAM NAME=\"HW_W\"  VALUE=\"%f\">\n", hw_w);
   fprintf(out,"<PARAM NAME=\"QZ_W\"  VALUE=\"%f\">\n", qz_w);    fprintf(out,"<PARAM NAME=\"QZ_W\"  VALUE=\"%f\">\n", qz_w);
   fprintf(out,"<PARAM NAME=\"EX_W\"  VALUE=\"%f\">\n", ex_w);    fprintf(out,"<PARAM NAME=\"EX_W\"  VALUE=\"%f\">\n", ex_w);
Line 2625  FILE *out; Line 2644  FILE *out;
   capa_mfree((char *)capa_server);    capa_mfree((char *)capa_server);
 }  }
   
   void
   get_tscore_width_height(width,height) 
   int *width;int *height;
   {
     char     buf[MAX_BUFFER_SIZE]; 
     int      configResult;
     
     configResult=read_capa_config("tscore_width",buf);
     if (configResult != 0 && configResult != -1 ) {
       sscanf(buf,"%d", width);
       if (*width <= 0 )  { *width = DEFAULT_WIDTH; }
     } else {
         printf("<!-- tscore_width not found. %d-->\n",configResult);
     }
     configResult=read_capa_config("tscore_height",buf);
     if (configResult != 0 && configResult != -1 ) {
       sscanf(buf,"%d", height);
       if (*height <= 0 )  { *height = DEFAULT_HEIGHT; }
     } else {
         printf("<!-- tscore_height not found. %d-->\n",configResult);
     }
   }
   
 int  int
 get_termscore_params(hw,qw,ew,fw,pw,hc,qc,fs)   get_termscore_params(hw,qw,ew,fw,pw,hc,qc,fs) 

Removed from v.1.6  
changed lines
  Added in v.1.12


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