[BACK]Return to oxlog.c CVS log [TXT][DIR] Up to [local] / OpenXM / src / kxx

Diff for /OpenXM/src/kxx/oxlog.c between version 1.5 and 1.6

version 1.5, 2000/01/19 03:13:40 version 1.6, 2000/02/09 12:02:56
Line 1 
Line 1 
 /*$OpenXM: OpenXM/src/kxx/oxlog.c,v 1.4 1999/12/15 11:40:23 ohara Exp $*/  /*$OpenXM: OpenXM/src/kxx/oxlog.c,v 1.5 2000/01/19 03:13:40 takayama Exp $*/
 #include <stdio.h>  #include <stdio.h>
 #include <signal.h>  #include <signal.h>
 #include <string.h>  #include <string.h>
Line 21 
Line 21 
          -ox /home/nobuki/kxx/ox_asir  >& /dev/null           -ox /home/nobuki/kxx/ox_asir  >& /dev/null
           2     3            2     3
 */  */
   static int Debug_which = 1;
 char *toFullPath(char *s);  char *toFullPath(char *s);
 char *which(char *s,char *env);  char *which(char *s,char *env);
 main(int argc, char *argv[]) {  main(int argc, char *argv[]) {
Line 32  main(int argc, char *argv[]) {
Line 33  main(int argc, char *argv[]) {
   sigemptyset(&sss);    sigemptyset(&sss);
   sigaddset(&sss,SIGINT);    sigaddset(&sss,SIGINT);
   sigprocmask(SIG_BLOCK,&sss,NULL);    sigprocmask(SIG_BLOCK,&sss,NULL);
   if (argc > 2) {    if (argc >= 2) {
     oxname = argv[1];      oxname = argv[1];
     oxname = toFullPath(oxname);      oxname = toFullPath(oxname);
   }    }
   if (argc == 4) {    if (argc == 2) {
       execl(oxname,oxname,NULL);
     }else if (argc == 3) {
       execl(oxname,oxname,argv[2],NULL);
     }else if (argc == 4) {
     execl(oxname,oxname,argv[2],argv[3],NULL);      execl(oxname,oxname,argv[2],argv[3],NULL);
   }else if (argc == 5) {    }else if (argc == 5) {
     execl(oxname,oxname,argv[2],argv[3],argv[4],NULL);      execl(oxname,oxname,argv[2],argv[3],argv[4],NULL);
Line 74  main(int argc, char *argv[]) {
Line 79  main(int argc, char *argv[]) {
   }else if (argc == 17) {    }else if (argc == 17) {
     execl(oxname,oxname,argv[2],argv[3],argv[4],argv[5],argv[6],      execl(oxname,oxname,argv[2],argv[3],argv[4],argv[5],argv[6],
           argv[7],argv[8],argv[9],argv[10],argv[11], argv[12],argv[13],argv[14],argv[15],argv[16],NULL);            argv[7],argv[8],argv[9],argv[10],argv[11], argv[12],argv[13],argv[14],argv[15],argv[16],NULL);
     }else if (argc == 18) {
       execl(oxname,oxname,argv[2],argv[3],argv[4],argv[5],argv[6],
             argv[7],argv[8],argv[9],argv[10],argv[11], argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],NULL);
     }else if (argc == 19) {
       execl(oxname,oxname,argv[2],argv[3],argv[4],argv[5],argv[6],
             argv[7],argv[8],argv[9],argv[10],argv[11], argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],NULL);
     }else if (argc == 20) {
       execl(oxname,oxname,argv[2],argv[3],argv[4],argv[5],argv[6],
             argv[7],argv[8],argv[9],argv[10],argv[11], argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19],NULL);
     }else if (argc == 21) {
       execl(oxname,oxname,argv[2],argv[3],argv[4],argv[5],argv[6],
             argv[7],argv[8],argv[9],argv[10],argv[11], argv[12],argv[13],argv[14],argv[15],argv[16],argv[17],argv[18],argv[19],argv[20],NULL);
   }else {    }else {
     fprintf(stderr,"Error in oxlog: cannot handle argc=%d\n",argc);      fprintf(stderr,"Error in oxlog: cannot handle argc=%d\n",argc);
     fprintf(stderr,"oxname=%s\n",oxname);      fprintf(stderr,"oxname=%s\n",oxname);
Line 112  mainold1() {
Line 129  mainold1() {
 }  }
   
 char *toFullPath(char *s) {  char *toFullPath(char *s) {
     extern int Debug_which;
     char *path ="/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/openwin/bin:/usr/X/bin";
   if (strlen(s) == 0) {    if (strlen(s) == 0) {
     return(s);      return(s);
   }    }
Line 119  char *toFullPath(char *s) {
Line 138  char *toFullPath(char *s) {
   else {    else {
     s = which(s,getenv("PATH"));      s = which(s,getenv("PATH"));
   }    }
     if (s == NULL) {
           if (Debug_which) fprintf(stderr,"Could not find %s in your search path.\n",s);
           if (Debug_which) fprintf(stderr,"You path is %s.\n",getenv("PATH"));
           if (Debug_which) fprintf(stderr,"Trying to find in the path: %s\n",path);
           s = which(s,path);
     }
     return(s);
 }  }
   
 /*which("xterm", getenv("PATH"));*/  /*which("xterm", getenv("PATH"));*/
 char *which(char *prog, char *path_env)  char *which(char *prog, char *path_env)
 {  {
     extern int Debug_which ;
   char *tok;    char *tok;
   char *path;    char *path;
   char delim[] = ":";    char delim[] = ":";
   char *e = alloca(strlen(path_env)+1);    char *e = alloca(strlen(path_env)+1);
   strcpy(e, path_env);    strcpy(e, path_env);
   tok = strtok(e, delim);    tok = strtok(e, delim);
     if (Debug_which) fprintf(stderr,"PATH=%s\n",path_env);
   while (tok != NULL) {    while (tok != NULL) {
     char *path = malloc(strlen(tok)+strlen(prog)+2);      char *path = malloc(strlen(tok)+strlen(prog)+2);
     sprintf(path, "%s/%s", tok, prog);      sprintf(path, "%s/%s", tok, prog);
     if (access(path, X_OK&R_OK) == 0) {      if (access(path, X_OK&R_OK) == 0) {
             if (Debug_which) fprintf(stderr,"Found: %s\n",path);
       return path;        return path;
     }      }
     free(path);      free(path);

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

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