[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.1.1.1 and 1.8

version 1.1.1.1, 1999/10/08 02:12:13 version 1.8, 2000/06/19 07:48:01
Line 1 
Line 1 
   /*$OpenXM: OpenXM/src/kxx/oxlog.c, v 1.7 2000/02/09 12:24:52 takayama Exp $*/
 #include <stdio.h>  #include <stdio.h>
 #include <signal.h>  #include <signal.h>
   #include <string.h>
   #include <stdlib.h>
 #include <sys/types.h>  #include <sys/types.h>
 #include <sys/stat.h>  #include <sys/stat.h>
 #include <fcntl.h>  #include <fcntl.h>
Line 18 
Line 21 
          -ox /home/nobuki/kxx/ox_asir  >& /dev/null           -ox /home/nobuki/kxx/ox_asir  >& /dev/null
           2     3            2     3
 */  */
 main(int argc, char *argv[]) {  static int Debug_which = 1;
   sigset_t sss;  
   int i;  
   /* char *env[2];  
   env[0] = NULL;*/  
   sigemptyset(&sss);  
   sigaddset(&sss,SIGINT);  
   sigprocmask(SIG_BLOCK,&sss,NULL);  
   
   if (argc == 4) {  /*which("xterm", getenv("PATH"));*/
     execl(argv[1],argv[1],argv[2],argv[3],NULL);  char *which(char *prog, char *path_env)
   }else if (argc == 5) {  {
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],NULL);      extern int Debug_which ;
   }else if (argc == 6) {      char *tok;
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],argv[5],NULL);      char *path;
   }else if (argc == 7) {      char delim[] = ":";
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6],NULL);      char *e = alloca(strlen(path_env)+1);
   }else if (argc == 8) {      strcpy(e, path_env);
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6],      tok = strtok(e, delim);
           argv[7],NULL);      if (Debug_which) {
   }else if (argc == 9) {          fprintf(stderr, "PATH=%s\n", path_env);
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6],  
           argv[7],argv[8],NULL);  
   }else if (argc == 10) {  
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6],  
           argv[7],argv[8],argv[9],NULL);  
   }else if (argc == 11) {  
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6],  
           argv[7],argv[8],argv[9],argv[10],NULL);  
   }else if (argc == 12) {  
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6],  
           argv[7],argv[8],argv[9],argv[10],argv[11],NULL);  
   }else if (argc == 13) {  
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6],  
           argv[7],argv[8],argv[9],argv[10],argv[11], argv[12],NULL);  
   }else if (argc == 14) {  
     execl(argv[1],argv[1],argv[2],argv[3],argv[4],argv[5],argv[6],  
           argv[7],argv[8],argv[9],argv[10],argv[11], argv[12],argv[13],NULL);  
   }else if (argc == 15) {  
     execl(argv[1],argv[1],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],NULL);  
   }else {  
     fprintf(stderr,"Error in oxlog: cannot handle argc=%d\n",argc);  
     for (i=0; i<argc; i++) {  
       fprintf(stderr,"argv[%d]=%s ",i,argv[i]);  
     }      }
     fprintf(stderr,"\n");      while (tok != NULL) {
     fprintf(stderr,"Usage example 1: oxlog /usr/X11R6/bin/xterm -icon -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_asir\n");          char *path = malloc(strlen(tok)+strlen(prog)+2);
     fprintf(stderr,"      example 2: oxlog /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_asir >& /dev/null\n");          sprintf(path, "%s/%s", tok, prog);
     exit(10);          if (access(path, X_OK&R_OK) == 0) {
   }              if (Debug_which) {
   fprintf(stderr,"\nError in oxlog: Failed to start the process.\n");                  fprintf(stderr, "Found: %s\n", path);
   for (i=0; i<argc; i++) {              }
     fprintf(stderr,"argv[%d]=%s ",i,argv[i]);              return path;
   }          }
   fprintf(stderr,"\n");          free(path);
   exit(20);          tok = strtok(NULL, delim);
       }
       return NULL;
 }  }
 mainold1() {  
   sigset_t sss;  char *toFullPath(char *s)
   int i;  {
   /* char *env[2];      extern int Debug_which;
   env[0] = NULL;*/      char *path = "/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/usr/openwin/bin:/usr/X/bin";
   sigemptyset(&sss);      char *s2;
   sigaddset(&sss,SIGINT);      if (strlen(s) == 0 || strchr(s, '/') != NULL) {
   sigprocmask(SIG_BLOCK,&sss,NULL);          return s;
   /* for (i=0; i<1000; i++) {      }
      sleep(1);      s2 = which(s, getenv("PATH"));
      printf("Hello\n");      if (s2 == NULL) {
      }          if (Debug_which) {
      exit(0); */              fprintf(stderr, "Could not find arg[1] in your search path.\n");
   execl("/usr/X11R6/bin/xterm","/usr/X11R6/bin/xterm",              fprintf(stderr, "You path is %s.\n", getenv("PATH"));
         "-e","/home/nobuki/kxx/ox","-ox","/home/nobuki/kxx/ox_asir",NULL);              fprintf(stderr, "Trying to find in the path: %s\n", path);
 /*  execl("/home/nobuki/kxx/ox","/home/nobuki/kxx/ox","-ox","/home/nobuki/kxx/ox_asir",NULL);*/          }
           s2 = which(s, path);
           /* Why? */
       }
       return s2;
 }  }
   
   int main(int argc, char *argv[])
   {
       sigset_t sss;
       int i;
       char *oxname;
       /* char *env[2];
          env[0] = NULL;*/
       sigemptyset(&sss);
       sigaddset(&sss, SIGINT);
       sigprocmask(SIG_BLOCK, &sss, NULL);
       if (argc >= 2) {
           oxname = toFullPath(argv[1]);
           if (oxname == NULL) {
               oxname = "NULL";
           } /* Why? */
           execv(oxname, argv+1);
   
           fprintf(stderr, "\nError in oxlog: Failed to start the process.\n");
           fprintf(stderr, "oxname=%s\n", oxname);
           for (i=0; i<argc; i++) {
               fprintf(stderr, "argv[%d]=%s ", i, argv[i]);
           }
           fprintf(stderr, "\n");
           exit(20);
       }else {
           fprintf(stderr, "Error in oxlog: cannot handle argc=%d\n", argc);
           fprintf(stderr, "oxname=???\n");
           for (i=0; i<argc; i++) {
               fprintf(stderr, "argv[%d]=%s ", i, argv[i]);
           }
           fprintf(stderr, "\n");
           fprintf(stderr, "Usage example 1: oxlog /usr/X11R6/bin/xterm -icon -e /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_asir\n");
           fprintf(stderr, "      example 2: oxlog /home/nobuki/kxx/ox -ox /home/nobuki/kxx/ox_asir >& /dev/null\n");
           exit(10);
       }
   }

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.8

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