Annotation of capa/capa51/GUITools/quizzer.c, revision 1.1.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>