Annotation of capa/capa51/GUITools/manager.c, revision 1.2

1.2     ! albertel    1: /* main progam for manager
        !             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 Library 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:    Library General Public License for more details.
        !            13: 
        !            14:    You should have received a copy of the GNU Library 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: 
1.1       albertel   25: /*
                     26:  * manager.c
1.2     ! albertel   27:  * Guy Albertelli II 1997
1.1       albertel   28:  */
                     29: #include <stdio.h>
                     30: #include <tk.h>
                     31: #include <stdlib.h>
                     32: #include <Capa/capaCommon.h>
                     33: #include <unistd.h>
                     34: #include "manager.h"
                     35: 
                     36: extern Tcl_Interp *gInterp;
                     37: 
                     38: int Manager_Init(Tcl_Interp *interp);
                     39: int main(int argc,char **argv)
                     40: {
                     41:   char * rDisplay,*q,filename[BUFFER_SIZE],buffer[BUFFER_SIZE];
                     42:   int  found=1;
                     43: 
                     44:   gInterp=Tcl_CreateInterp();
                     45:   if (gInterp ==NULL)
                     46:   {
                     47:     fprintf(stderr,"Couldn't get a new Tcl Interp\n");
                     48:     return -1;
                     49:   }
                     50: 
                     51:   rDisplay = getenv("DISPLAY");
                     52:   
                     53:   if (rDisplay==NULL)
                     54:   {
                     55:     fprintf(stderr,"getenv for DISPLAY returned NULL\n");
                     56:     return -2;
                     57:   }
                     58:   
                     59:   if (Tcl_SetVar2 (gInterp, "env", "DISPLAY", rDisplay, TCL_GLOBAL_ONLY) == NULL) 
                     60:   {
                     61:     fprintf(stderr,"Couldn't set env(DISPLAY) = %s\n",rDisplay);
                     62:     return -3;
                     63:   }
                     64: 
                     65:   q = Tcl_Merge(argc-1, argv+1);
                     66:   Tcl_SetVar(gInterp, "argv", q, TCL_GLOBAL_ONLY);
                     67:   ckfree(q);
                     68:   sprintf(buffer, "%d", argc-1);
                     69:   Tcl_SetVar(gInterp, "argc", buffer, TCL_GLOBAL_ONLY);
                     70:   Tcl_SetVar(gInterp, "argv0", argv[0],TCL_GLOBAL_ONLY);
                     71:   Tcl_SetVar(gInterp, "tcl_interactive","0", TCL_GLOBAL_ONLY);
                     72: 
                     73:   if (Tcl_Init(gInterp) == TCL_ERROR) 
                     74:   {
                     75:     fprintf(stderr,"Tcl_Init error\n");
                     76:     fprintf(stderr,"%d\n",TCL_ERROR);
                     77:     fprintf(stderr,"%s\n",gInterp->result);
                     78:     return -4;
                     79:   }
                     80:   
                     81:   if (Tk_Init(gInterp) == TCL_ERROR) 
                     82:   {
                     83:     fprintf(stderr,"Tk_Init error\n");
                     84:     fprintf(stderr,"%d\n",TCL_ERROR);
                     85:     fprintf(stderr,"%s\n",gInterp->result);
                     86:     return -5;
                     87:   }
                     88: 
                     89:   Manager_Init(gInterp);
                     90:   Scorer_Init(gInterp);
                     91: 
                     92:   sprintf(filename,"./utils.tcl");
                     93:   if( capa_access(filename, F_OK) == -1 ) {
                     94:     sprintf(filename,"/usr/local/bin/Manager/utils.tcl");
                     95:     if( capa_access(filename, F_OK) == -1 ) {
                     96:       sprintf(filename,"/usr/local/lib/CAPA45/utils.tcl");
                     97:       if( capa_access(filename, F_OK) == -1 ) {
                     98: 	sprintf(filename,"/usr/local/lib/utils.tcl");
                     99: 	if( capa_access(filename, F_OK) == -1 ) {
                    100: 	  sprintf(filename,"/usr/local/lib/utils.tcl");
                    101: 	  if( capa_access(filename, F_OK) == -1 ) {
                    102: 	    sprintf(filename,"/usr/local/lib/CAPA45/Manager/utils.tcl");
                    103: 	    if( capa_access(filename, F_OK) == -1 ) {
                    104: 	      sprintf(filename,"/usr/lib/utils.tcl");
                    105: 	      if( capa_access(filename, F_OK) == -1 ) { /* I gave up! */
                    106: 		found=0;
                    107: 	      } 
                    108: 	    }
                    109: 	  }
                    110: 	} 
                    111:       }
                    112:     }
                    113:   }
                    114: 
                    115:   if( found ) {
                    116:     if (Tcl_EvalFile(gInterp, filename) != TCL_OK) 
                    117:       {
                    118: 	fprintf(stderr,"%s\n",gInterp->result);
                    119: 	return -6;
                    120:       }
                    121:   } else {
                    122:     fprintf(stderr,"Unable to find utils.tcl\n");
                    123:     exit(-7);
                    124:   }
                    125: 
                    126:   sprintf(filename,"./common.tcl");
                    127:   if( capa_access(filename, F_OK) == -1 ) {
                    128:     sprintf(filename,"/usr/local/bin/Manager/common.tcl");
                    129:     if( capa_access(filename, F_OK) == -1 ) {
                    130:       sprintf(filename,"/usr/local/lib/CAPA45/common.tcl");
                    131:       if( capa_access(filename, F_OK) == -1 ) {
                    132: 	sprintf(filename,"/usr/local/lib/common.tcl");
                    133: 	if( capa_access(filename, F_OK) == -1 ) {
                    134: 	  sprintf(filename,"/usr/local/lib/common.tcl");
                    135: 	  if( capa_access(filename, F_OK) == -1 ) {
                    136: 	    sprintf(filename,"/usr/local/lib/CAPA45/Manager/common.tcl");
                    137: 	    if( capa_access(filename, F_OK) == -1 ) {
                    138: 	      sprintf(filename,"/usr/lib/common.tcl");
                    139: 	      if( capa_access(filename, F_OK) == -1 ) { /* I gave up! */
                    140: 		found=0;
                    141: 	      } 
                    142: 	    }
                    143: 	  }
                    144: 	} 
                    145:       }
                    146:     }
                    147:   }  
                    148:   if( found ) {
                    149:     if (Tcl_EvalFile(gInterp, filename) != TCL_OK) 
                    150:       {
                    151: 	fprintf(stderr,"%s\n",gInterp->result);
                    152: 	return -6;
                    153:       }
                    154:   } else {
                    155:     fprintf(stderr,"Unable to find common.tcl\n");
                    156:     exit(-7);
                    157:   }
                    158:   sprintf(filename,"./manager.tcl");
                    159:   if( capa_access(filename, F_OK) == -1 ) {
                    160:     sprintf(filename,"/usr/local/bin/Manager/manager.tcl");
                    161:     if( capa_access(filename, F_OK) == -1 ) {
                    162:       sprintf(filename,"/usr/local/lib/CAPA45/manager.tcl");
                    163:       if( capa_access(filename, F_OK) == -1 ) {
                    164: 	sprintf(filename,"/usr/local/lib/manager.tcl");
                    165: 	if( capa_access(filename, F_OK) == -1 ) {
                    166: 	  sprintf(filename,"/usr/local/lib/manager.tcl");
                    167: 	  if( capa_access(filename, F_OK) == -1 ) {
                    168: 	    sprintf(filename,"/usr/local/lib/CAPA45/Manager/manager.tcl");
                    169: 	    if( capa_access(filename, F_OK) == -1 ) {
                    170: 	      sprintf(filename,"/usr/lib/manager.tcl");
                    171: 	      if( capa_access(filename, F_OK) == -1 ) { /* I gave up! */
                    172: 		found=0;
                    173: 	      } 
                    174: 	    }
                    175: 	  }
                    176: 	} 
                    177:       }
                    178:     }
                    179:   }
                    180: 
                    181:   /*
                    182:   fprintf(stderr,"HEY STILL IN DEVELOPEMENT MODE\n");
                    183:   if (Tcl_EvalFile(gInterp, "manager.tcl") 
                    184:       != TCL_OK) 
                    185:   {
                    186:     fprintf(stderr,"%s\n",gInterp->result);
                    187:     return -6;
                    188:   }
                    189:   */
                    190:   
                    191:   if( found ) {
                    192:     if (Tcl_EvalFile(gInterp, filename) != TCL_OK) 
                    193:     {
                    194:       fprintf(stderr,"%s\n",gInterp->result);
                    195:       return -6;
                    196:     }
                    197:     while(Tcl_DoOneEvent(TCL_ALL_EVENTS));
                    198:   } else {
                    199: 	fprintf(stderr,"Unable to find manager.tcl\n");
                    200: 	exit(-7);
                    201:   }
                    202:   return 0;
                    203: }
                    204: 
                    205: 
                    206: 

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