File:  [LON-CAPA] / capa / capa51 / pProj / capaCGI.h
Revision 1.8: download - view: text, annotated - select for diffs
Thu Sep 14 21:01:17 2000 UTC (23 years, 8 months ago) by albertel
Branches: MAIN
CVS tags: version_2_9_99_0, version_2_8_X, version_2_8_99_1, version_2_8_99_0, version_2_8_2, version_2_8_1, version_2_8_0, version_2_7_X, version_2_7_99_1, version_2_7_99_0, version_2_7_1, version_2_7_0, version_2_6_X, version_2_6_99_1, version_2_6_99_0, version_2_6_3, version_2_6_2, version_2_6_1, version_2_6_0, version_2_5_X, version_2_5_99_1, version_2_5_99_0, version_2_5_2, version_2_5_1, version_2_5_0, version_2_4_X, version_2_4_99_0, version_2_4_2, version_2_4_1, version_2_4_0, version_2_3_X, version_2_3_99_0, version_2_3_2, version_2_3_1, version_2_3_0, version_2_2_X, version_2_2_99_1, version_2_2_99_0, version_2_2_2, version_2_2_1, version_2_2_0, version_2_1_X, version_2_1_99_3, version_2_1_99_2, version_2_1_99_1, version_2_1_99_0, version_2_1_3, version_2_1_2, version_2_1_1, version_2_1_0, version_2_0_X, version_2_0_99_1, version_2_0_2, version_2_0_1, version_2_0_0, version_1_99_3, version_1_99_2, version_1_99_1_tmcc, version_1_99_1, version_1_99_0_tmcc, version_1_99_0, version_1_3_X, version_1_3_3, version_1_3_2, version_1_3_1, version_1_3_0, version_1_2_X, version_1_2_99_1, version_1_2_99_0, version_1_2_1, version_1_2_0, version_1_1_X, version_1_1_99_5, version_1_1_99_4, version_1_1_99_3, version_1_1_99_2, version_1_1_99_1, version_1_1_99_0, version_1_1_3, version_1_1_2, version_1_1_1, version_1_1_0, version_1_0_99_3, version_1_0_99_2, version_1_0_99_1, version_1_0_99, version_1_0_3, version_1_0_2, version_1_0_1, version_1_0_0, version_0_99_5, version_0_99_4, version_0_99_3, version_0_99_2, version_0_99_1, version_0_99_0, version_0_6_2, version_0_6, version_0_5_1, version_0_5, version_0_4, stable_2002_spring, stable_2002_july, stable_2002_april, stable_2001_fall, conference_2003, bz6209-base, bz6209, STABLE, HEAD, GCI_3, GCI_2, GCI_1, CAPA_5-1-6, CAPA_5-1-5, CAPA_5-1-4_RC1
- LONCAPA changes added

    1: /* define neccsary constants/contructs for CGI scripts
    2:    Copyright (C) 1992-2000 Michigan State University
    3: 
    4:    The CAPA system is free software; you can redistribute it and/or
    5:    modify it under the terms of the GNU General Public License as
    6:    published by the Free Software Foundation; either version 2 of the
    7:    License, or (at your option) any later version.
    8: 
    9:    The CAPA system is distributed in the hope that it will be useful,
   10:    but WITHOUT ANY WARRANTY; without even the implied warranty of
   11:    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   12:    General Public License for more details.
   13: 
   14:    You should have received a copy of the GNU General Public
   15:    License along with the CAPA system; see the file COPYING.  If not,
   16:    write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   17:    Boston, MA 02111-1307, USA.
   18: 
   19:    As a special exception, you have permission to link this program
   20:    with the TtH/TtM library and distribute executables, as long as you
   21:    follow the requirements of the GNU GPL in regard to all of the
   22:    software in the executable aside from TtH/TtM.
   23: */
   24: 
   25: /* ==================================================================== */
   26: 
   27: 
   28: #ifndef   CAPA_CGI_H
   29: #define   CAPA_CGI_H
   30: 
   31: #ifdef CAPA_ARG
   32: #undef CAPA_ARG
   33: #define CAPA_ARG(x)  x
   34: #endif
   35: 
   36: /*
   37:  #ifdef __STDC__
   38:  #define CAPA_ARG(x)  x
   39:  #else
   40:  #define CAPA_ARG(x)  ()
   41:  #endif
   42: */
   43: 
   44: #if   defined(_MAIN_PROGRAM_) || defined(LONCAPA)
   45: 
   46: #define  GLOBAL_VAR(xx)   xx
   47: #else 
   48: #define  GLOBAL_VAR(xx)   extern  xx
   49: #endif
   50: 
   51: 
   52: #define   MAX_ENTRIES                 10000    /* maximal number of entries in a web page form */
   53: #define   DEFAULT_STATUS_LINE_LENGTH  50
   54: #define   MAX_PROBLEM_CNT             1024
   55: #define   MAX_ANSWER_CHAR             32
   56: #define   MAX_CLASS_CHAR              16       /* officially, it is 8, since the account name won't allow */
   57:                                       /* more than 8 characters. */
   58: 
   59:                                      /* ----------------------------- various mode used in print_quizz() */
   60: #define   TRY_SET_MODE        1
   61: #define   CHECK_ANSWER_MODE   2
   62: #define   VIEW_PREVIOUS_MODE  3
   63: 
   64: 
   65: #define   TEXT_BUF_SIZE      1
   66: /*(128*1024)*/
   67: #define   STATUS_BUF_SIZE    1
   68: /*(32*1024)*/
   69: 
   70: typedef struct _form_entry {
   71:     char *name;
   72:     char *val;
   73: } FormEntry_t;
   74: 
   75: typedef struct _student_answer {
   76:     int                       a_idx;
   77:     char                     *a_str;
   78:     struct _student_answer   *a_next;
   79: } StudentAnswer_t;
   80: 
   81: #define     M_CHECKIN         1
   82: #define     M_TRYSET          2
   83: #define     M_CHECKANS        3
   84: #define     M_VIEWPREV        4
   85: #define     M_VIEWSUMM        5
   86: #define     M_EXAMSUMM        6
   87: #define     M_QUIZSUMM        7
   88: #define     M_TERMSCORE       8
   89: #define     LF                10
   90: #define     CR                13
   91: 
   92: 
   93: /* --------- default parameter values when something mis-specified in capa.config -------- */
   94: 
   95: #define     DEFAULT_HW_W          0.3
   96: #define     DEFAULT_QZ_W          0.07
   97: #define     DEFAULT_EX_W          0.3
   98: #define     DEFAULT_FE_W          0.35
   99: #define     DEFAULT_PC_W          0.3
  100: #define     DEFAULT_HW_COUNT      12
  101: #define     DEFAULT_QZ_COUNT      24
  102: #define     DEFAULT_FE_NUMBER     4
  103: #define     DEFAULT_WIDTH        600 /* for score extrapolation applet*/
  104: #define     DEFAULT_HEIGHT       750 /* for score extrapolation applet*/
  105: /* ============ function prototype in capaCgiUtils.c ===================== */
  106: 
  107: void        getword            CAPA_ARG((char *word, char *line, char stop));
  108: char       *makeword           CAPA_ARG((char *line, char stop));
  109: char       *fmakeword          CAPA_ARG((FILE *f, char stop, int *cl));
  110: char        x2c                CAPA_ARG((char *what));
  111: void        unescape_url       CAPA_ARG((char *url));
  112: void        plustospace        CAPA_ARG((char *str));
  113: int         rind               CAPA_ARG((char *s, char c));
  114: int         getline            CAPA_ARG((char *s, int n, FILE *f));
  115: void        send_fd            CAPA_ARG((FILE *f, FILE *fd));
  116: int         ind                CAPA_ARG((char *s, char c));
  117: void        escape_shell_cmd   CAPA_ARG((char *cmd));
  118: 
  119: int         web_log            CAPA_ARG((char *log_str));
  120: /*
  121: void        file_log           CAPA_ARG((char *filename, char *log_str));
  122: */
  123: int         w_log_timing       CAPA_ARG((char *student_number,int set,int section,char *log_string));
  124: int         w_log_attempt      CAPA_ARG((char *student_number,int set,char *log_string));
  125: int         w_log_submissions  CAPA_ARG((char *student_number,int set,char *log_string));
  126: int         w_get_input        CAPA_ARG(());
  127: void        print_mainmenu     CAPA_ARG((char *class,char *sn, int pin));
  128: void        print_page_header  CAPA_ARG((int mode,int num_quest));
  129: void        print_quizz        CAPA_ARG((char *class_dir, char *c_owner,char *class,char *sn,int pin,int set,int mode));
  130: void        print_response     CAPA_ARG((char pcr,char u_db,int q_idx,Problem_t *p));
  131: void        print_inhibited_response CAPA_ARG((char pcr,char u_db,int q_idx,Problem_t *p));
  132: void        check_user_ans     CAPA_ARG((int q_idx,Problem_t *p));
  133: void        check_inhibited_user_ans     CAPA_ARG((int q_idx,Problem_t *p));
  134: void        get_response       CAPA_ARG((char pcr,char u_db,int q_idx,Problem_t *p));
  135: void        log_user_ans       CAPA_ARG((int q_idx,Problem_t *p));
  136: int         check_class_get_maxset CAPA_ARG((char  *dir_path));
  137: int         check_exam_quiz_path CAPA_ARG(());
  138: void        print_summary  CAPA_ARG((char *class_dir,char *class, char *student_number,int pin,int set)); 
  139: void        print_termscore_page  CAPA_ARG((char *class_dir,char *class, char *student_number,int pin,int set,FILE *out)); 
  140: void        get_tscore_width_height CAPA_ARG((int *width,int *height));
  141: int         get_termscore_params CAPA_ARG((float *hw,float *qw,float *ew,float *fw,float *pw,int *hc,int *qc,int *fs));
  142: int         web_getclassdir  CAPA_ARG((char **cpath_p, char **cown_p, char *class));
  143: char       *c_getpath        CAPA_ARG((FILE *f));
  144: void        append_qtext     CAPA_ARG((char *new_str));
  145: void        append_stext     CAPA_ARG((char *new_str));
  146: void        process_mode     CAPA_ARG((int  mode));
  147: void        process_summary  CAPA_ARG((int mode));
  148: void        web_printheader  CAPA_ARG((FILE*));
  149: void        web_printfooter  CAPA_ARG((FILE*));
  150: void        preserve_last_answer CAPA_ARG((int q_idx,int print));
  151: /* ======================================================================= */
  152: GLOBAL_VAR(char           *g_question_txt);
  153: GLOBAL_VAR(int             g_qchar_cnt);
  154: GLOBAL_VAR(int             g_qsize);
  155: GLOBAL_VAR(char           *g_status_txt);
  156: GLOBAL_VAR(int             g_schar_cnt);
  157: GLOBAL_VAR(int             g_ssize);
  158: GLOBAL_VAR(int             g_run_mode);
  159: GLOBAL_VAR(int             g_start_question);
  160: #define ALL_QUESTIONS -1
  161: GLOBAL_VAR(int             g_num_questions_per_page);
  162: GLOBAL_VAR(int             g_inhibit_response);
  163: GLOBAL_VAR(char            g_prog_name[FILE_NAME_LENGTH]);
  164: GLOBAL_VAR(char            g_class_fullpath[FILE_NAME_LENGTH]);
  165: GLOBAL_VAR(FormEntry_t     g_entries[MAX_ENTRIES] );
  166: GLOBAL_VAR(char            g_student_number[MAX_STUDENT_NUMBER+4]);
  167: GLOBAL_VAR(char            g_student_name[MAX_NAME_CHAR+1]);
  168: GLOBAL_VAR(T_student       g_student_data);
  169: GLOBAL_VAR(char            g_class_name[MAX_CLASS_CHAR]);
  170: GLOBAL_VAR(char            g_class_fullpath[FILE_NAME_LENGTH]);
  171: GLOBAL_VAR(char           *g_cpath);
  172: GLOBAL_VAR(char           *g_cowner);
  173: GLOBAL_VAR(int             g_entered_pin);
  174: GLOBAL_VAR(int             g_login_set);
  175: GLOBAL_VAR(int             g_set);
  176: GLOBAL_VAR(int             g_vset);
  177: GLOBAL_VAR(StudentAnswer_t *g_stu_ans_pp[MAX_PROBLEM_CNT]);
  178: GLOBAL_VAR(StudentAnswer_t *g_last_ans_pp[MAX_PROBLEM_CNT]);
  179: /*GLOBAL_VAR(char           *g_student_answer[MAX_PROBLEM_CNT]);
  180:   GLOBAL_VAR(char           *g_last_answer[MAX_PROBLEM_CNT]);*/
  181: GLOBAL_VAR(char            g_new_answerdb[MAX_PROBLEM_CNT]);
  182: GLOBAL_VAR(char            g_log_string[MAX_PROBLEM_CNT]);
  183: GLOBAL_VAR(int             g_modified[MAX_PROBLEM_CNT]);
  184: GLOBAL_VAR(int             g_passdue);
  185: GLOBAL_VAR(int             g_tried[MAX_PROBLEM_CNT]);
  186: GLOBAL_VAR(int             g_smode);
  187: GLOBAL_VAR(int             g_skind);
  188: GLOBAL_VAR(char            g_cwd[FILE_NAME_LENGTH]);
  189: #ifdef __alpha 
  190: GLOBAL_VAR(struct timespec g_ats);
  191: GLOBAL_VAR(struct timespec g_bts);
  192: #endif
  193: GLOBAL_VAR(FILE           *g_cgi);
  194: GLOBAL_VAR(int             g_exam_set);
  195: GLOBAL_VAR(int             g_quiz_set);
  196: GLOBAL_VAR(char            g_exam_path[FILE_NAME_LENGTH]);
  197: GLOBAL_VAR(char            g_quiz_path[FILE_NAME_LENGTH]);
  198: GLOBAL_VAR(char           *g_cgibin_path);
  199: /* ======================================================================= */
  200: 
  201: 
  202: #endif   /* CAPA_CGI_H */
  203: 

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