Annotation of capa/capa51/GUITools/quizzer.c, revision 1.1
1.1 ! albertel 1: /*
! 2: * quizzer.c
! 3: * Copyright Guy Albertelli II 1996
! 4: */
! 5: #include <stdio.h>
! 6: #include <tk.h>
! 7: #include <stdlib.h>
! 8: #include <Capa/capaCommon.h>
! 9: #include <unistd.h>
! 10: #include <quizzer.h>
! 11:
! 12: extern Tcl_Interp *gInterp;
! 13:
! 14: int Quizzer_Init(Tcl_Interp *interp);
! 15: int main(int argc, char**argv)
! 16: {
! 17: char * rDisplay,*q,filename[BUFFER_SIZE],buffer[BUFFER_SIZE];
! 18: int found=1;
! 19:
! 20: gInterp=Tcl_CreateInterp();
! 21: if (gInterp ==NULL)
! 22: {
! 23: fprintf(stderr,"Couldn't get a new Tcl Interp\n");
! 24: return -1;
! 25: }
! 26:
! 27: rDisplay = getenv("DISPLAY");
! 28:
! 29: if (rDisplay==NULL)
! 30: {
! 31: fprintf(stderr,"getenv for DISPLAY returned NULL\n");
! 32: return -2;
! 33: }
! 34:
! 35: if (Tcl_SetVar2 (gInterp, "env", "DISPLAY", rDisplay, TCL_GLOBAL_ONLY) == NULL)
! 36: {
! 37: fprintf(stderr,"Couldn't set env(DISPLAY) = %s\n",rDisplay);
! 38: return -3;
! 39: }
! 40:
! 41: q = Tcl_Merge(argc-1, argv+1);
! 42: Tcl_SetVar(gInterp, "argv", q, TCL_GLOBAL_ONLY);
! 43: ckfree(q);
! 44: sprintf(buffer, "%d", argc-1);
! 45: Tcl_SetVar(gInterp, "argc", buffer, TCL_GLOBAL_ONLY);
! 46: Tcl_SetVar(gInterp, "argv0", argv[0],TCL_GLOBAL_ONLY);
! 47: Tcl_SetVar(gInterp, "tcl_interactive","0", TCL_GLOBAL_ONLY);
! 48:
! 49: if (Tcl_Init(gInterp) == TCL_ERROR)
! 50: {
! 51: fprintf(stderr,"Tcl_Init error\n");
! 52: fprintf(stderr,"%d\n",TCL_ERROR);
! 53: fprintf(stderr,"%s\n",gInterp->result);
! 54: return -4;
! 55: }
! 56:
! 57: if (Tk_Init(gInterp) == TCL_ERROR)
! 58: {
! 59: fprintf(stderr,"Tk_Init error\n");
! 60: fprintf(stderr,"%d\n",TCL_ERROR);
! 61: fprintf(stderr,"%s\n",gInterp->result);
! 62: return -5;
! 63: }
! 64:
! 65: Quizzer_Init(gInterp);
! 66:
! 67: sprintf(filename,"./utils.tcl");
! 68: if( capa_access(filename, F_OK) == -1 ) {
! 69: sprintf(filename,"/usr/local/bin/Quizzer/utils.tcl");
! 70: if( capa_access(filename, F_OK) == -1 ) {
! 71: sprintf(filename,"/usr/local/lib/CAPA45/utils.tcl");
! 72: if( capa_access(filename, F_OK) == -1 ) {
! 73: sprintf(filename,"/usr/local/lib/utils.tcl");
! 74: if( capa_access(filename, F_OK) == -1 ) {
! 75: sprintf(filename,"/usr/local/lib/utils.tcl");
! 76: if( capa_access(filename, F_OK) == -1 ) {
! 77: sprintf(filename,"/usr/local/lib/CAPA45/Quizzer/utils.tcl");
! 78: if( capa_access(filename, F_OK) == -1 ) {
! 79: sprintf(filename,"/usr/lib/utils.tcl");
! 80: if( capa_access(filename, F_OK) == -1 ) { /* I gave up! */
! 81: found=0;
! 82: }
! 83: }
! 84: }
! 85: }
! 86: }
! 87: }
! 88: }
! 89:
! 90: if( found ) {
! 91: if (Tcl_EvalFile(gInterp, filename) != TCL_OK)
! 92: {
! 93: fprintf(stderr,"%s\n",gInterp->result);
! 94: return -6;
! 95: }
! 96: } else {
! 97: fprintf(stderr,"Unable to find utils.tcl\n");
! 98: exit(-7);
! 99: }
! 100:
! 101: sprintf(filename,"./common.tcl");
! 102: if( capa_access(filename, F_OK) == -1 ) {
! 103: sprintf(filename,"/usr/local/bin/Quizzer/common.tcl");
! 104: if( capa_access(filename, F_OK) == -1 ) {
! 105: sprintf(filename,"/usr/local/lib/CAPA45/common.tcl");
! 106: if( capa_access(filename, F_OK) == -1 ) {
! 107: sprintf(filename,"/usr/local/lib/common.tcl");
! 108: if( capa_access(filename, F_OK) == -1 ) {
! 109: sprintf(filename,"/usr/local/lib/common.tcl");
! 110: if( capa_access(filename, F_OK) == -1 ) {
! 111: sprintf(filename,"/usr/local/lib/CAPA45/Quizzer/common.tcl");
! 112: if( capa_access(filename, F_OK) == -1 ) {
! 113: sprintf(filename,"/usr/lib/common.tcl");
! 114: if( capa_access(filename, F_OK) == -1 ) { /* I gave up! */
! 115: found=0;
! 116: }
! 117: }
! 118: }
! 119: }
! 120: }
! 121: }
! 122: }
! 123: if( found ) {
! 124: if (Tcl_EvalFile(gInterp, filename) != TCL_OK)
! 125: {
! 126: fprintf(stderr,"%s\n",gInterp->result);
! 127: return -6;
! 128: }
! 129: } else {
! 130: fprintf(stderr,"Unable to find common.tcl\n");
! 131: exit(-7);
! 132: }
! 133: sprintf(filename,"./quizzer.tcl");
! 134: if( capa_access(filename, F_OK) == -1 ) {
! 135: sprintf(filename,"/usr/local/bin/Quizzer/quizzer.tcl");
! 136: if( capa_access(filename, F_OK) == -1 ) {
! 137: sprintf(filename,"/usr/local/lib/CAPA45/quizzer.tcl");
! 138: if( capa_access(filename, F_OK) == -1 ) {
! 139: sprintf(filename,"/usr/local/lib/quizzer.tcl");
! 140: if( capa_access(filename, F_OK) == -1 ) {
! 141: sprintf(filename,"/usr/local/lib/quizzer.tcl");
! 142: if( capa_access(filename, F_OK) == -1 ) {
! 143: sprintf(filename,"/usr/local/lib/CAPA45/Quizzer/quizzer.tcl");
! 144: if( capa_access(filename, F_OK) == -1 ) {
! 145: sprintf(filename,"/usr/lib/quizzer.tcl");
! 146: if( capa_access(filename, F_OK) == -1 ) { /* I gave up! */
! 147: found=0;
! 148: }
! 149: }
! 150: }
! 151: }
! 152: }
! 153: }
! 154: }
! 155:
! 156: /*
! 157: fprintf(stderr,"HEY STILL IN DEVELOPEMENT MODE\n");
! 158: if (Tcl_EvalFile(gInterp, "quizzer.tcl")
! 159: != TCL_OK)
! 160: {
! 161: fprintf(stderr,"%s\n",gInterp->result);
! 162: return -6;
! 163: }
! 164: */
! 165:
! 166: if( found ) {
! 167: if (Tcl_EvalFile(gInterp, filename) != TCL_OK)
! 168: {
! 169: fprintf(stderr,"%s\n",gInterp->result);
! 170: return -6;
! 171: }
! 172: while(Tcl_DoOneEvent(TCL_ALL_EVENTS));
! 173: } else {
! 174: fprintf(stderr,"Unable to find quizzer.tcl\n");
! 175: exit(-7);
! 176: }
! 177: return 0;
! 178: }
! 179:
! 180:
! 181:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>