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

Diff for /OpenXM/src/kxx/ox100start.c between version 1.1 and 1.2

version 1.1, 2003/07/21 07:32:01 version 1.2, 2003/07/21 11:56:33
Line 1 
Line 1 
 /* $OpenXM$ */  /* $OpenXM: OpenXM/src/kxx/ox100start.c,v 1.1 2003/07/21 07:32:01 takayama Exp $ */
 /* Moved from misc-2003/07/cygwin/test.c */  /* Moved from misc-2003/07/cygwin/test.c */
 #include <stdio.h>  #include <stdio.h>
 #include <sys/types.h>  #include <sys/types.h>
Line 9 
Line 9 
 #include <sys/wait.h>  #include <sys/wait.h>
 #include <signal.h>  #include <signal.h>
 #include <ctype.h>  #include <ctype.h>
   #include "ox_pathfinder.h"
   
 extern char **environ;  static void usage(void);
   
 static int getOStypei();  
 static char *addSlash();  
 static char *get_sm1_lib_path();  
 static char *get_k0_lib_path();  
 static char *get_ox_asir_path();  
 static char *get_ox_sm1_path();  
 static char *get_ox_path();  
 static char *get_oxc_path();  
 static char *get_oxlog_path();  
 static char **setOXenv();  
 static int forkExec(char **argv);  static int forkExec(char **argv);
 static void usage();  
   
 char **catArgv(char **argv1,char **argv2);  extern char **environ;
   
 char *getOStypes();  
 char *getOpenXM_HOME();  
 char *getLOAD_SM1_PATH2();  
 char **getServerEnv(char *oxServer);  
 char **debugServerEnv(char *oxServer);  
 char *cygwinPathToWinPath(char *s);  
   
 static int Verbose_get_home = 1;  
 static int NoX = 0;  
   
 #define MYFORKCP_SIZE 100  
 static int Myforkchildren[MYFORKCP_SIZE];  
 static int Myforkcp=0;  
 static void myforkwait() {  
   int status;  
   int pid;  
   int i,j;  
   signal(SIGCHLD,SIG_IGN);  
   pid = wait(&status);  
   fprintf(stderr,"Child process %d is exiting.\n",pid);  
   for (i=0; i<Myforkcp; i++) {  
     if (Myforkchildren[i]  == pid) {  
       for (j=i; j<Myforkcp-1; j++) {  
         Myforkchildren[j] = Myforkchildren[j+1];  
       }  
       if (Myforkcp > 0) Myforkcp--;  
     }  
   }  
   signal(SIGCHLD,myforkwait);  
 }  
   
 #define nomemory(a) {fprintf(stderr,"(%d) no more memory.\n",a);exit(10);}  
 #define mymalloc(a)  malloc(a)  
   
 #ifndef NOT_STANDALONE  
 main(int argc,char *argv[]) {  main(int argc,char *argv[]) {
   char *s;    char *s;
   char s2[1024];    char s2[1024];
Line 72  main(int argc,char *argv[]) {
Line 26  main(int argc,char *argv[]) {
   int i;    int i;
   char *serverName;    char *serverName;
   
     /*
   if (Verbose_get_home) {    if (Verbose_get_home) {
         printf("ostype=%s\n",getOStypes());          printf("ostype=%s\n",getOStypes());
         printf("OpenXM_HOME=%s\n",getOpenXM_HOME());          printf("OpenXM_HOME=%s\n",getOpenXM_HOME());
Line 79  main(int argc,char *argv[]) {
Line 34  main(int argc,char *argv[]) {
         printf("k0 lib =%s\n",get_k0_lib_path());          printf("k0 lib =%s\n",get_k0_lib_path());
         printf("ox_asir =%s\n",get_ox_asir_path());          printf("ox_asir =%s\n",get_ox_asir_path());
   }    }
     */
   
   /* Initialize parameters */    /* Initialize parameters */
   serverName = NULL;    serverName = NULL;
Line 97  main(int argc,char *argv[]) {
Line 53  main(int argc,char *argv[]) {
           serverName = argv[i];            serverName = argv[i];
           aaa = getServerEnv(serverName);            aaa = getServerEnv(serverName);
         }else if (strcmp(argv[i],"-nox")==0) {          }else if (strcmp(argv[i],"-nox")==0) {
           NoX = 1;            ox_pathfinderNoX(1);
         }else{          }else{
           fprintf(stderr,"Unknown option.\n");            fprintf(stderr,"Unknown option.\n");
           usage();            usage();
Line 106  main(int argc,char *argv[]) {
Line 62  main(int argc,char *argv[]) {
   }    }
   
   forkExec(aaa);    forkExec(aaa);
   }
   
   #define MYFORKCP_SIZE 100
   static int Myforkchildren[MYFORKCP_SIZE];
   static int Myforkcp=0;
   static void myforkwait() {
     int status;
     int pid;
     int i,j;
     signal(SIGCHLD,SIG_IGN);
     pid = wait(&status);
     fprintf(stderr,"Child process %d is exiting.\n",pid);
     for (i=0; i<Myforkcp; i++) {
       if (Myforkchildren[i]  == pid) {
         for (j=i; j<Myforkcp-1; j++) {
           Myforkchildren[j] = Myforkchildren[j+1];
         }
         if (Myforkcp > 0) Myforkcp--;
       }
     }
     signal(SIGCHLD,myforkwait);
 }  }
 #endif  
   
 static void usage() {  static void usage() {
   fprintf(stderr,"oxstart100 -oxserver xxx [-e args]\n");    fprintf(stderr,"oxstart100 -oxserver xxx [-e args]\n");
Line 143  static int forkExec(char **argv) {
Line 118  static int forkExec(char **argv) {
        sigaddset(&sss,SIGINT);         sigaddset(&sss,SIGINT);
        sigprocmask(SIG_BLOCK,&sss,NULL);         sigprocmask(SIG_BLOCK,&sss,NULL);
         }          }
         eee = setOXenv();          if (ox_pathfinderNoX(-1)) {
         if (NoX) {  
           FILE *null;            FILE *null;
           null = fopen("/dev/null","wb");            null = fopen("/dev/null","wb");
           dup2(fileno(null),1);            dup2(fileno(null),1);
Line 156  static int forkExec(char **argv) {
Line 130  static int forkExec(char **argv) {
   }    }
 }  }
   
 static int getOStypei() {  
   /*  
      0  unix  
      1  windows-cygwin  
      2  windows-cygwin-on-X  
      3  windows-native  
   */  
   int ostype;  
   char *s,*s2,*s3;  
 #if defined(__CYGWIN__)  
   ostype = 1;  
 #else  
   ostype = 0;  
 #endif  
   if (ostype == 0) return ostype;  
   /* Heuristic method */  
   s = (char *)getenv("WINDOWID");  
   if (s != NULL) {  
     return 2;  
   }  
   s = (char *)getenv("OSTYPE");  
   s2 = (char *)getenv("MACHTYPE");  
   s3 = (char *)getenv("PWD");  
   if ((s != NULL) || (s2 != NULL) || (s3 != NULL)) {  
     return 1;  
   }  
   return 3;  
 }  
   
 char *getOStypes() {  
   int ostype;  
   ostype = getOStypei();  
   
   if (ostype == 1) {  
     return("Windows-cygwin");  
   }else if (ostype == 2) {  
     return("Windows-cygwin-on-X");  
   }else if (ostype == 3) {  
     return("Windows-native");  
   }else{  
     return("unix");  
   }  
 }  
   
 /*  
   kan96xx/Kan/ext.c  
 */  
 /*  
  -1          : no file  
  non-negative: there is a regular file or a directory  
 */  
 static int getFileSize(char *s) {  
    struct stat buf;  
    int m;  
    if (s == NULL) return -1;  
    m = stat(s,&buf);  
    if (m == -1) {  
      return -1;  
       /* fail */  
    }else{  
       /* success */  
      return (int) buf.st_size;  
    }  
 }  
   
 static char *addSlash(char *p) {  
   char *p2;  
    if ((strlen(p) == 0) || (p == NULL)) return(p);  
     if (p[strlen(p)-1] == '/') return(p);  
     /* Add / */  
     p2 = (char *) mymalloc(sizeof(char)*(strlen(p)+3));  
     if (p2 == NULL) { fprintf(stderr,"No more memory.\n"); exit(10); }  
     strcpy(p2,p); strcat(p2,"/");  
     return(p2);  
   
 }  
   
 static void msg_get_home(int t,char *s) {  
   extern int Verbose_get_home;  
   if (!Verbose_get_home) return;  
   if (t == 1) {  
     fprintf(stderr,"getOpenXM_HOME(): ");  
   }else if (t == 2) {  
     fprintf(stderr,"getServerEnv(): ");  
   }else if (t == 3) {  
     fprintf(stderr,"setOXenv(): ");  
   }else if (t == 4) {  
     fprintf(stderr,"cygwinPathToWinPath(): ");  
   }else if (t == 5) {  
     fprintf(stderr,"catArgv(): ");  
   }else{  
     fprintf(stderr,"getting path...: ");  
   }  
   if (s != NULL) {  
     fprintf(stderr,"%s\n",s);  
   }else{  
     fprintf(stderr," --NULL-- \n");  
   }  
 }  
 /* cf. k097/d.c    getLOAD_K_PATH();  
        kan96xx/Kan/scanner.c   getLOAD_SM1_PATH();  
  */  
 char *getOpenXM_HOME() {  
   char *p;  
   char *h;  
   p = getOStypes();  
   msg_get_home(1,p);  
   
   p = (char *) getenv("OpenXM_HOME");  
   if (getFileSize(p) != -1) return addSlash(p);  
   msg_get_home(1,"OpenXM_HOME is not found.");  
   
   p = (char *) getenv("OPENXM_HOME");  
   if (getFileSize(p) != -1) return addSlash(p);  
   msg_get_home(1,"OPENXM_HOME is not found.");  
   
   if (getOStypei() == 3) { /* cygwin-native */  
     p = (char *) getenv("OpenXM_HOME_WIN");  
     if (getFileSize(p) != -1) return addSlash(p);  
     msg_get_home(1,"OpenXM_HOME_WIN is not found.");  
   
     p = (char *) getenv("OPENXMHOMEWIN");  
     if (getFileSize(p) != -1) return addSlash(p);  
     msg_get_home(1,"OPENXMHOMEWIN is not found.");  
   }  
   
   /* Try to find default directories */  
   h = (char *)getenv("HOME");  
   if (h != NULL) {  
     p = (char *)mymalloc(strlen(h)+100);  
     if (p == NULL) {  
       fprintf(stderr,"No more memory.\n"); exit(100);  
     }  
     strcat(h,"/OpenXM");  
     p = h;  
     if (getFileSize(p) != -1) return addSlash(p);  
     msg_get_home(1,"OpenXM is not found under the home directory.");  
   }  
   
   if (getOStypei() != 3) {  
     p = "/usr/local/OpenXM";  
   }else{  
     p = "/cygdrive/c/usr/local/OpenXM";  
   }  
   if (getFileSize(p) != -1) return addSlash(p);  
   msg_get_home(1,"OpenXM is not found under /usr/local");  
   
   if (getOStypei() != 0) {  
     p = "/cygdrive/c/OpenXM";  
     if (getFileSize(p) != -1) return addSlash(p);  
     msg_get_home(1,"OpenXM is not found under c:\\");  
   
     p = "/cygdrive/c/OpenXM-win";  
     if (getFileSize(p) != -1) return addSlash(p);  
     msg_get_home(1,"OpenXM-win is not found under c:\\");  
   
     p = "/cygdrive/c/Program Files/OpenXM";  
     if (getFileSize(p) != -1) return addSlash(p);  
     msg_get_home(1,"OpenXM is not found under c:\\Program Files");  
   
     p = "/cygdrive/c/Program Files/OpenXM-win";  
     if (getFileSize(p) != -1) return addSlash(p);  
     msg_get_home(1,"OpenXM-win is not found under c:\\Program Files");  
   
   }  
   
   msg_get_home(1,"Giving up!");  
   return NULL;  
   
 }  
   
 static char *get_k0_lib_path() {  
   char *oxhome;  
   char *p;  
   
   
   p = (char *)getenv("LOAD_K_PATH");  
   if (p != NULL) {  
     if (getFileSize(p) != -1) return addSlash(p);  
     msg_get_home(1,"LOAD_K0_PATH is not found.");  
   }  
   
   oxhome = getOpenXM_HOME();  
   if (oxhome == NULL) return (char *)NULL;  
   p = (char *) mymalloc(strlen(oxhome)+100);  
   if (p == NULL) {fprintf(stderr,"No more memory.\n"); exit(100);}  
   
   strcpy(p,oxhome);  
   strcat(p,"lib/k097");  
   if (getFileSize(p) != -1) return addSlash(p);  
   msg_get_home(1,oxhome);  
   msg_get_home(1,"     is found, but ");  
   msg_get_home(1,p);  
   msg_get_home(1,"     is not found.");  
   
   msg_get_home(1,"Giving up!");  
   return NULL;  
 }  
   
 static char *get_sm1_lib_path() {  
   char *oxhome;  
   char *p;  
   
   p = (char *)getenv("LOAD_SM1_PATH");  
   if (p != NULL) {  
     if (getFileSize(p) != -1) return addSlash(p);  
     msg_get_home(1,"LOAD_SM1_PATH is not found.");  
   }  
   
   oxhome = getOpenXM_HOME();  
   if (oxhome == NULL) return NULL;  
   p = (char *) mymalloc(strlen(oxhome)+100);  
   if (p == NULL) {fprintf(stderr,"No more memory.\n"); exit(100);}  
   
   strcpy(p,oxhome);  
   strcat(p,"lib/sm1");  
   if (getFileSize(p) != -1) return addSlash(p);  
   msg_get_home(1,oxhome);  
   msg_get_home(1,"     is found, but ");  
   msg_get_home(1,p);  
   msg_get_home(1,"     is not found.");  
   
   msg_get_home(1,"Giving up!");  
   return NULL;  
 }  
   
 static char *get_ox_asir_path() {  
   char *oxhome;  
   char *p;  
   
   oxhome = getOpenXM_HOME();  
   if (oxhome == NULL) return NULL;  
   p = (char *) mymalloc(strlen(oxhome)+100);  
   if (p == NULL) {fprintf(stderr,"No more memory.\n"); exit(100);}  
   
   strcpy(p,oxhome);  
   strcat(p,"bin/ox_asir");  
   if (getFileSize(p) != -1) return p;  
   msg_get_home(1,oxhome);  
   msg_get_home(1,"     is found, but ");  
   msg_get_home(1,p);  
   msg_get_home(1,"     is not found.");  
   
   strcpy(p,oxhome);  
   strcat(p,"lib/asir/ox_asir");  
   if (getFileSize(p) != -1) return p;  
   msg_get_home(1,oxhome);  
   msg_get_home(1,"     is found, but ");  
   msg_get_home(1,p);  
   msg_get_home(1,"     is not found.");  
   
   msg_get_home(1,"Giving up!");  
   return NULL;  
 }  
   
 static char *get_ox_path() {  
   char *oxhome;  
   char *p;  
   
   oxhome = getOpenXM_HOME();  
   if (oxhome == NULL) return NULL;  
   p = (char *) mymalloc(strlen(oxhome)+100);  
   if (p == NULL) {fprintf(stderr,"No more memory.\n"); exit(100);}  
   
   strcpy(p,oxhome);  
   strcat(p,"bin/ox");  
   if (getFileSize(p) != -1) return p;  
   msg_get_home(1,oxhome);  
   msg_get_home(1,"     is found, but ");  
   msg_get_home(1,p);  
   msg_get_home(1,"     is not found.");  
   
   msg_get_home(1,"Giving up!");  
   return NULL;  
 }  
   
   
 static char *get_oxc_path() {  
   char *oxhome;  
   char *p;  
   
   oxhome = getOpenXM_HOME();  
   if (oxhome == NULL) return NULL;  
   p = (char *) mymalloc(strlen(oxhome)+100);  
   if (p == NULL) {fprintf(stderr,"No more memory.\n"); exit(100);}  
   
   strcpy(p,oxhome);  
   strcat(p,"bin/oxc");  
   if (getFileSize(p) != -1) return p;  
   msg_get_home(1,oxhome);  
   msg_get_home(1,"     is found, but ");  
   msg_get_home(1,p);  
   msg_get_home(1,"     is not found.");  
   
   msg_get_home(1,"Giving up!");  
   return NULL;  
 }  
   
 static char *get_oxlog_path() {  
   char *oxhome;  
   char *p;  
   
   oxhome = getOpenXM_HOME();  
   if (oxhome == NULL) return NULL;  
   p = (char *) mymalloc(strlen(oxhome)+100);  
   if (p == NULL) {fprintf(stderr,"No more memory.\n"); exit(100);}  
   
   strcpy(p,oxhome);  
   strcat(p,"bin/oxlog");  
   if (getFileSize(p) != -1) return p;  
   msg_get_home(1,oxhome);  
   msg_get_home(1,"     is found, but ");  
   msg_get_home(1,p);  
   msg_get_home(1,"     is not found.");  
   
   msg_get_home(1,"Giving up!");  
   return NULL;  
 }  
   
 char *cygwinPathToWinPath(char *s) {  
   char *pos;  
   char *ans;  
   int i;  
   msg_get_home(4,s);  
   if (s == NULL) return NULL;  
   if (strlen(s) == 0) return s;  
   
   ans = (char *) mymalloc(strlen(s) + 32);  
   if (ans == NULL) nomemory(0);  
   
   pos = (char *)strstr(s,"/cygdrive/");  
   if (pos == s) {  
     strcpy(ans,&(s[9]));  
     ans[0] = s[10]; ans[1] = ':'; ans[2] = '\\';  
   }else{  
     strcpy(ans,s);  
   }  
   
   if (ans[0] == '/') {  
     strcpy(ans,"C:\\cygwin");  
     strcat(ans,s);  
   }  
   
   
   for (i=0; i <strlen(ans); i++) {  
     if (ans[i] == '/') ans[i] = '\\';  
   }  
   return ans;  
 }  
   
 char **getServerEnv(char *oxServer) {  
   int ostype;  
   char *p;  
   char *oxhome;  
   char *xterm;  
   char *oxlog;  
   char *load_sm1_path;  
   char *load_k0_path;  
   char *openXM_HOME;  
 #define ARGV_SIZE 100  
   char *argv[ARGV_SIZE];  
   int i,k;  
   char **aaa;  
   
   if (Verbose_get_home) {  
         if (oxServer == NULL) {  
           fprintf(stderr,"Server name is NULL.\n");  
         }else{  
           fprintf(stderr,"Server name is %s\n",oxServer);  
         }  
   }  
   
   if (oxServer == NULL) return NULL;  
   i = 0;  
   argv[i] = NULL;  
   
   ostype = getOStypei();  
   
   oxhome = getOpenXM_HOME();  
   if (oxhome == NULL) return NULL;  
   p = (char *) mymalloc(strlen(oxhome)+strlen(oxServer)+100);  
   if (p == NULL) {fprintf(stderr,"No more memory.\n"); exit(100);}  
   
   strcpy(p,oxhome);  
   strcat(p,oxServer);  
   if (getFileSize(p) == -1) {  
     msg_get_home(2,oxhome);  
     msg_get_home(2,"     is found, but ");  
     msg_get_home(2,p);  
     msg_get_home(2,"     is not found.");  
     return (NULL);  
   }  
   oxServer = (char *) mymalloc(strlen(oxhome)+strlen(oxServer)+100);  
   if (oxServer == NULL) {fprintf(stderr,"No more memory.\n"); exit(100);}  
   strcpy(oxServer,p);  
   
   if ((ostype == 0) || (ostype == 2)) {  
         if (!NoX) {  
           xterm = "/usr/X11R6/bin/xterm";  
           if (getFileSize(xterm) == -1) {  
                 msg_get_home(2,"xterm is not found. NoX is automatically set.");  
                 NoX = 1;  
           }  
         }  
     oxlog = get_oxlog_path();  
     xterm = "/usr/X11R6/bin/xterm -icon -e ";  
     argv[i] = oxlog; i++; argv[i] = NULL;  
         if (!NoX) {  
           argv[i] = "/usr/X11R6/bin/xterm"; i++; argv[i] = NULL;  
           argv[i] = "-icon"; i++; argv[i] = NULL;  
           argv[i] = "-e"; i++; argv[i] = NULL;  
         }  
     argv[i] = get_ox_path(); i++; argv[i] = NULL;  
     argv[i] = "-ox"; i++; argv[i] = NULL;  
     argv[i] = oxServer; i++; argv[i] = NULL;  
   }else{  
         if (!NoX) {  
           if (getFileSize("/cygdrive/c/winnt/system32/cmd.exe") >= 0) {  
                 xterm = "/cygdrive/c/winnt/system32/cmd.exe /c start /min ";  
                 argv[i] = "/cygdrive/c/winnt/system32/cmd.exe"; i++; argv[i] = NULL;  
           }else if (getFileSize("/cygdrive/c/windows/system32/cmd.exe") >= 0) {  
                 xterm = "/cygdrive/c/windows/system32/cmd.exe  /c start /min ";  
                 argv[i] = "/cygdrive/c/windows/system32/cmd.exe"; i++; argv[i] = NULL;  
           }else{  
                 msg_get_home(2,"cmd.exe is not found. NoX is automatically set.");  
         NoX = 1;  
           }  
         }  
     oxlog = " ";  
         if (!NoX) {  
           argv[i] = "/c"; i++; argv[i] = NULL;  
           argv[i] = "start"; i++; argv[i] = NULL;  
           argv[i] = "/min"; i++; argv[i] = NULL;  
         }  
     argv[i] = cygwinPathToWinPath(get_ox_path()); i++; argv[i] = NULL;  
     argv[i] = "-ox"; i++; argv[i] = NULL;  
     argv[i] = oxServer; i++; argv[i] = NULL;  
   }  
   
   aaa = (char **) mymalloc(sizeof(char*)*(i+1));  
   if (aaa == NULL) nomemory(0);  
   msg_get_home(2,"--------- Result --------------");  
   for (k=0; k<i; k++) {  
     aaa[k] = argv[k];  
     msg_get_home(2,aaa[k]);  
     aaa[k+1] = NULL;  
   }  
   return aaa;  
 }  
   
 char **setOXenv() {  
   /* Do nothing. */  
   return NULL;  
 }  
 char **setOXenv_old() {  
   char *openXM_HOME;  
   char *load_sm1_path;  
   char *load_k0_path;  
   char *asir_config;  
   char *asir_libdir;  
   char *asirloadpath;  
   char *asir_rsh;  
   char *ld_library_path;  
   char **aaa;  
   int n,i,k;  
   
   /* set environmental variables */  
   n = 20;  /* n must be larger than the number of env vars */  
   n++;  
   load_sm1_path = (char *) getenv("LOAD_SM1_PATH");  
   load_k0_path = (char *) getenv("LOAD_SM1_PATH");  
   asir_config = (char *) getenv("ASIR_CONFIG");  
   asir_libdir = (char *) getenv("ASIR_LIBDIR");  
   asirloadpath = (char *) getenv("ASIRLOADPATH");  
   asir_rsh = (char *) getenv("ASIR_RSH");  
   ld_library_path = (char *) getenv("LD_LIBRARY_PATH");  
   
   openXM_HOME = getOpenXM_HOME();  
   if (openXM_HOME != NULL)  
     openXM_HOME[strlen(openXM_HOME)-1] = '\0';  
   /* How about ASIR... ? */  
   
   msg_get_home(3,"OpenXM_HOME is"); msg_get_home(2,openXM_HOME);  
   msg_get_home(3,"LOAD_SM1_PATH is"); msg_get_home(2,load_sm1_path);  
   msg_get_home(3,"LOAD_K0_PATH is"); msg_get_home(2,load_k0_path);  
   
   aaa = (char **) mymalloc(sizeof(char*)*n);  
   if (aaa == NULL) nomemory(0);  
   
   i = 0;  
   if (openXM_HOME != NULL) {  
     aaa[i] = openXM_HOME; i++; aaa[i] = NULL; if (i > n-2) return aaa;  
   }  
   if (load_sm1_path != NULL) {  
     aaa[i] = load_sm1_path; i++; aaa[i] = NULL; if (i > n-2) return aaa;  
   }  
   if (load_k0_path != NULL) {  
     aaa[i] = load_k0_path; i++; aaa[i] = NULL; if (i > n-2) return aaa;  
   }  
   if (asir_config != NULL) {  
     aaa[i] = asir_config; i++; aaa[i] = NULL; if (i > n-2) return aaa;  
   }  
   if (asir_libdir != NULL) {  
     aaa[i] = asir_libdir; i++; aaa[i] = NULL; if (i > n-2) return aaa;  
   }  
   if (asirloadpath != NULL) {  
     aaa[i] = asirloadpath; i++; aaa[i] = NULL; if (i > n-2) return aaa;  
   }  
   if (asir_rsh != NULL) {  
     aaa[i] = asir_rsh; i++; aaa[i] = NULL; if (i > n-2) return aaa;  
   }  
   
   msg_get_home(3,"--------- Result --------------");  
   for (k=0; k<n; k++) {  
     if (aaa[k] == NULL) break;  
     msg_get_home(3,aaa[k]);  
   }  
   
   return aaa;  
 }  
   
 char **debugServerEnv(char *oxServer)  
 {  
   int t;  
   char **aaa;  
   t = Verbose_get_home;  
   Verbose_get_home = 1;  
   aaa = getServerEnv(oxServer);  
   Verbose_get_home = t;  
   return ( aaa );  
 }  
   
 char **catArgv(char **argv1,char **argv2)  
 {  
   int i,n1,n2;  
   char **argv;  
   n1=0;  
   while (argv1[n1] != NULL) n1++;  
   n2=0;  
   while (argv2[n2] != NULL) n2++;  
   argv = (char **) mymalloc(sizeof(char *)*(n1+n2+1));  
   if (argv == NULL) nomemory(0);  
   for (i=0; i<n1; i++) argv[i] = argv1[i];  
   for (i=0; i<n2; i++) argv[n1+i] = argv2[i];  
   argv[n1+n2]=NULL;  
   for (i=0; i<n1+n2; i++) {  
         msg_get_home(5,argv[i]);  
   }  
   return argv;  
 }  
   
 char *getLOAD_SM1_PATH2() {  
   char *p;  
   p = get_sm1_lib_path();  
   if (p == NULL) {  
     return("/usr/local/lib/sm1/");  
   }else{  
         return p;  
   }  
 }  

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

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