File:  [LON-CAPA] / capa / capa51 / GUITools / manager.c
Revision 1.1: download - view: text, annotated - select for diffs
Tue Sep 28 21:25:36 1999 UTC (24 years, 9 months ago) by albertel
Branches: MAIN
CVS tags: HEAD
Initial revision

    1: /*
    2:  * manager.c
    3:  * Copyright Guy Albertelli II 1997
    4:  */
    5: #include <stdio.h>
    6: #include <tk.h>
    7: #include <stdlib.h>
    8: #include <Capa/capaCommon.h>
    9: #include <unistd.h>
   10: #include "manager.h"
   11: 
   12: extern Tcl_Interp *gInterp;
   13: 
   14: int Manager_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:   Manager_Init(gInterp);
   66:   Scorer_Init(gInterp);
   67: 
   68:   sprintf(filename,"./utils.tcl");
   69:   if( capa_access(filename, F_OK) == -1 ) {
   70:     sprintf(filename,"/usr/local/bin/Manager/utils.tcl");
   71:     if( capa_access(filename, F_OK) == -1 ) {
   72:       sprintf(filename,"/usr/local/lib/CAPA45/utils.tcl");
   73:       if( capa_access(filename, F_OK) == -1 ) {
   74: 	sprintf(filename,"/usr/local/lib/utils.tcl");
   75: 	if( capa_access(filename, F_OK) == -1 ) {
   76: 	  sprintf(filename,"/usr/local/lib/utils.tcl");
   77: 	  if( capa_access(filename, F_OK) == -1 ) {
   78: 	    sprintf(filename,"/usr/local/lib/CAPA45/Manager/utils.tcl");
   79: 	    if( capa_access(filename, F_OK) == -1 ) {
   80: 	      sprintf(filename,"/usr/lib/utils.tcl");
   81: 	      if( capa_access(filename, F_OK) == -1 ) { /* I gave up! */
   82: 		found=0;
   83: 	      } 
   84: 	    }
   85: 	  }
   86: 	} 
   87:       }
   88:     }
   89:   }
   90: 
   91:   if( found ) {
   92:     if (Tcl_EvalFile(gInterp, filename) != TCL_OK) 
   93:       {
   94: 	fprintf(stderr,"%s\n",gInterp->result);
   95: 	return -6;
   96:       }
   97:   } else {
   98:     fprintf(stderr,"Unable to find utils.tcl\n");
   99:     exit(-7);
  100:   }
  101: 
  102:   sprintf(filename,"./common.tcl");
  103:   if( capa_access(filename, F_OK) == -1 ) {
  104:     sprintf(filename,"/usr/local/bin/Manager/common.tcl");
  105:     if( capa_access(filename, F_OK) == -1 ) {
  106:       sprintf(filename,"/usr/local/lib/CAPA45/common.tcl");
  107:       if( capa_access(filename, F_OK) == -1 ) {
  108: 	sprintf(filename,"/usr/local/lib/common.tcl");
  109: 	if( capa_access(filename, F_OK) == -1 ) {
  110: 	  sprintf(filename,"/usr/local/lib/common.tcl");
  111: 	  if( capa_access(filename, F_OK) == -1 ) {
  112: 	    sprintf(filename,"/usr/local/lib/CAPA45/Manager/common.tcl");
  113: 	    if( capa_access(filename, F_OK) == -1 ) {
  114: 	      sprintf(filename,"/usr/lib/common.tcl");
  115: 	      if( capa_access(filename, F_OK) == -1 ) { /* I gave up! */
  116: 		found=0;
  117: 	      } 
  118: 	    }
  119: 	  }
  120: 	} 
  121:       }
  122:     }
  123:   }  
  124:   if( found ) {
  125:     if (Tcl_EvalFile(gInterp, filename) != TCL_OK) 
  126:       {
  127: 	fprintf(stderr,"%s\n",gInterp->result);
  128: 	return -6;
  129:       }
  130:   } else {
  131:     fprintf(stderr,"Unable to find common.tcl\n");
  132:     exit(-7);
  133:   }
  134:   sprintf(filename,"./manager.tcl");
  135:   if( capa_access(filename, F_OK) == -1 ) {
  136:     sprintf(filename,"/usr/local/bin/Manager/manager.tcl");
  137:     if( capa_access(filename, F_OK) == -1 ) {
  138:       sprintf(filename,"/usr/local/lib/CAPA45/manager.tcl");
  139:       if( capa_access(filename, F_OK) == -1 ) {
  140: 	sprintf(filename,"/usr/local/lib/manager.tcl");
  141: 	if( capa_access(filename, F_OK) == -1 ) {
  142: 	  sprintf(filename,"/usr/local/lib/manager.tcl");
  143: 	  if( capa_access(filename, F_OK) == -1 ) {
  144: 	    sprintf(filename,"/usr/local/lib/CAPA45/Manager/manager.tcl");
  145: 	    if( capa_access(filename, F_OK) == -1 ) {
  146: 	      sprintf(filename,"/usr/lib/manager.tcl");
  147: 	      if( capa_access(filename, F_OK) == -1 ) { /* I gave up! */
  148: 		found=0;
  149: 	      } 
  150: 	    }
  151: 	  }
  152: 	} 
  153:       }
  154:     }
  155:   }
  156: 
  157:   /*
  158:   fprintf(stderr,"HEY STILL IN DEVELOPEMENT MODE\n");
  159:   if (Tcl_EvalFile(gInterp, "manager.tcl") 
  160:       != TCL_OK) 
  161:   {
  162:     fprintf(stderr,"%s\n",gInterp->result);
  163:     return -6;
  164:   }
  165:   */
  166:   
  167:   if( found ) {
  168:     if (Tcl_EvalFile(gInterp, filename) != TCL_OK) 
  169:     {
  170:       fprintf(stderr,"%s\n",gInterp->result);
  171:       return -6;
  172:     }
  173:     while(Tcl_DoOneEvent(TCL_ALL_EVENTS));
  174:   } else {
  175: 	fprintf(stderr,"Unable to find manager.tcl\n");
  176: 	exit(-7);
  177:   }
  178:   return 0;
  179: }
  180: 
  181: 
  182: 

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