/* * common.funct.c * Copyright Guy Albertelli II 1998 * Portions Copyright Issac Tsai */ #include #include #include #include #include #include #include #include /* Used by the parse front end to escape any special characters in TCL */ /* arguments are source buffer, destination buffer, and where to start */ /* in the destination buffer */ int capaPrepareBuffer(char *buf,char *buf2,int j) { int i; for(i=0;i "); break; } } void capaInsertAnswer(Problem_t *p,Tcl_Interp *interp, char *window) { extern int Parsemode_f; char* answer; answer=answers_string(Parsemode_f,p); bufInsert(interp,window,answer); capa_mfree(answer); } /* updates the gDate var with the current date and reregisters itself * to run in .8 seconds */ int capaDateUpdate(ClientData clientdata, Tcl_Interp *interp, int argc, char *argv[]) { time_t rightNow=time(NULL); if (Tcl_SetVar(interp,"gDate",asctime(localtime(&rightNow)), TCL_GLOBAL_ONLY) == NULL) { fprintf(stderr,"Tcl_Eval error\n"); fprintf(stderr,"%s\n",interp->result); return TCL_ERROR; } if (Tcl_Eval(interp,"after 800 { dateUpdate } ") != TCL_OK) { fprintf(stderr,"Tcl_Eval error\n"); fprintf(stderr,"%s\n",interp->result); return TCL_ERROR; } return TCL_OK; } int capaGetExistingSections(ClientData clientdata, Tcl_Interp *interp, int argc, char *argv[]) { int i=0,result,sectionArray[MAX_SECTION_COUNT]; char buf[BUFFER_SIZE]; Tcl_ResetResult(interp); result=capa_get_section_count(sectionArray); if (result==-1) { Tcl_AppendElement(interp,"Unable to find a classl file.\n"); return TCL_ERROR; } for(i=1;i<=sectionArray[0];i++) { if ( sectionArray[i] !=0 ) { sprintf(buf,"%d %d",i, sectionArray[i]); Tcl_AppendElement(interp,buf); } } return TCL_OK; } void message() { unsigned char *message= "***** ***** ************ ***** *****\n" "****** ****** ****************** ***** *****\n" " ****** ****** **** **** **** **** \n" " ******* ******* **** **** **** **** \n" " ******** ******** **** **** **** **** \n" " **** **** **** **** **** **** **** \n" " **** **** **** **** **** **** **** \n" " **** **** **** **** **** **** **** \n" " **** ******** **** **** **** **** \n" " **** ****** **** *************** **** **** \n" " **** **** **** *************** **** **** \n" " **** ** **** **** **** **** \n" " **** **** **** **** **** \n" " **** **** **** **** **** \n" " **** **** **** **** **** \n" " **** **** **** **** **** **** \n" " **** **** **** **** **** **** \n" " **** **** **** **** **** **** \n" "***** ***** ****************** ***************** \n" "***** ***** ************ *********** \n" "Copyright MSU Board of Trustees 1992-1999 \n" "No Unauthorized Commercial Use or redistribution allowed. \n"; fprintf(stderr,message); exit(0); }