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

Diff for /OpenXM/src/util/ox_pathfinder.c between version 1.35 and 1.36

version 1.35, 2015/09/26 12:40:51 version 1.36, 2015/10/13 10:16:53
Line 1 
Line 1 
 /* $OpenXM: OpenXM/src/util/ox_pathfinder.c,v 1.34 2015/09/25 01:47:09 takayama Exp $ */  /* $OpenXM: OpenXM/src/util/ox_pathfinder.c,v 1.35 2015/09/26 12:40:51 takayama Exp $ */
 /* Moved from misc-2003/07/cygwin/test.c */  /* Moved from misc-2003/07/cygwin/test.c */
   
 #include <stdio.h>  #include <stdio.h>
Line 38  static char *get_oxlog_path();
Line 38  static char *get_oxlog_path();
 static int getFileSize(char *fn);  static int getFileSize(char *fn);
 static void errorPathFinder(char *s);  static void errorPathFinder(char *s);
 static void msgPathFinder(char *s);  static void msgPathFinder(char *s);
   static char *cygname(char *s);
   
   
 static int Verbose_get_home = 0;  static int Verbose_get_home = 0;
 static int Verbose = 1;  static int Verbose = 1;
 static int NoX = 0;  static int NoX = 0;
Line 49  static int EngineLogToStdout = 0;
Line 49  static int EngineLogToStdout = 0;
 #define nomemory(a) {fprintf(stderr,"(%p) no more memory.\n",(void *)a);exit(10);}  #define nomemory(a) {fprintf(stderr,"(%p) no more memory.\n",(void *)a);exit(10);}
 #define mymalloc(a)  sGC_malloc(a)  #define mymalloc(a)  sGC_malloc(a)
   
   static char *cygname(char *s) {
     char *name;
   #if defined(__MSYS__)
     return(s);
   #else
     name = mymalloc(strlen(s)+16);
     strcpy(name,"/cygdrive");
     return(strcat(name,s));
   #endif
   }
 void pathFinderErrorVerbose(int k) {  void pathFinderErrorVerbose(int k) {
   static int prev;    static int prev;
   if (k >= 0) {    if (k >= 0) {
Line 261  static int getOStypei() {
Line 271  static int getOStypei() {
      1  windows-cygwin       1  windows-cygwin
      2  windows-cygwin-on-X       2  windows-cygwin-on-X
      3  windows-native       3  windows-native
        4  windows-msys
        5  windows-msys-on-x
   */    */
   int ostype;    int ostype;
   char *s,*s2,*s3;    char *s,*s2,*s3;
 #if defined(__CYGWIN__)  #if defined(__CYGWIN__) || defined(__MSYS__)
   ostype = 1;    ostype = 1;
 #else  #else
   ostype = 0;    ostype = 0;
 #endif  #endif
   if (ostype == 0) return ostype;    if (ostype == 0) return ostype;
   /* Heuristic method */    /* Heuristic method */
     s = getenv("MSYSTEM");
     if (s != NULL) {
       if (strcmp(s,"MSYS")==0) return(4);
       s = (char *)getenv("WINDOWID");
       if (s != NULL) {
         return 5;  // not tested.
       }
     }
   s = (char *)getenv("WINDOWID");    s = (char *)getenv("WINDOWID");
   if (s != NULL) {    if (s != NULL) {
     return 2;      return 2;
Line 294  char *getOStypes() {
Line 314  char *getOStypes() {
     return("Windows-cygwin-on-X");      return("Windows-cygwin-on-X");
   }else if (ostype == 3) {    }else if (ostype == 3) {
     return("Windows-native");      return("Windows-native");
     }else if (ostype == 4) {
       return("Windows-msys");
     }else if (ostype == 5) {
       return("Windows-msys-on-X");
   }else{    }else{
     return("unix");      return("unix");
   }    }
Line 397  char *getOpenXM_HOME() {
Line 421  char *getOpenXM_HOME() {
   if (getOStypei() != 3) {    if (getOStypei() != 3) {
     p = "/usr/local/OpenXM";      p = "/usr/local/OpenXM";
   }else{    }else{
     p = "/cygdrive/c/usr/local/OpenXM";      p = cygname("/c/usr/local/OpenXM");
   }    }
   if (getFileSize(p) != -1) return addSlash(p);    if (getFileSize(p) != -1) return addSlash(p);
   msg_get_home(1,"OpenXM is not found under /usr/local");    msg_get_home(1,"OpenXM is not found under /usr/local");
   
   if (getOStypei() != 0) {    if (getOStypei() != 0) {
     p = "/cygdrive/c/OpenXM";      p = cygname("/c/OpenXM");
     if (getFileSize(p) != -1) return addSlash(p);      if (getFileSize(p) != -1) return addSlash(p);
     msg_get_home(1,"OpenXM is not found under c:\\");      msg_get_home(1,"OpenXM is not found under c:\\");
   
     p = "/cygdrive/c/OpenXM-win";      p = cygname("/c/OpenXM-win");
     if (getFileSize(p) != -1) return addSlash(p);      if (getFileSize(p) != -1) return addSlash(p);
     msg_get_home(1,"OpenXM-win is not found under c:\\");      msg_get_home(1,"OpenXM-win is not found under c:\\");
   
     p = "/cygdrive/c/Program Files/OpenXM";      p = cygname("/c/Program Files/OpenXM");
     if (getFileSize(p) != -1) return addSlash(p);      if (getFileSize(p) != -1) return addSlash(p);
     msg_get_home(1,"OpenXM is not found under c:\\Program Files");      msg_get_home(1,"OpenXM is not found under c:\\Program Files");
   
     p = "/cygdrive/c/Program Files/OpenXM-win";      p = cygname("/c/Program Files/OpenXM-win");
     if (getFileSize(p) != -1) return addSlash(p);      if (getFileSize(p) != -1) return addSlash(p);
     msg_get_home(1,"OpenXM-win is not found under c:\\Program Files");      msg_get_home(1,"OpenXM-win is not found under c:\\Program Files");
   
Line 592  char *cygwinPathToWinPath(char *s) {
Line 616  char *cygwinPathToWinPath(char *s) {
   }else{    }else{
     strcpy(ans,s);      strcpy(ans,s);
   }    }
   #if defined(__MSYS__)
     pos = (char *)strstr(s,"/c/");
     if (pos == s) {
       strcpy(ans,&(s[1]));
       ans[0] = s[1]; ans[1] = ':'; ans[2] = '\\';
     }else{
       strcpy(ans,s);
     }
   #endif
   
   if (ans[0] == '/') {    if (ans[0] == '/') {
 #if defined(__MSYS__) && defined(__x86_64__)  #if defined(__MSYS__) && defined(__x86_64__)
Line 694  char **getServerEnv(char *oxServer) {
Line 727  char **getServerEnv(char *oxServer) {
     argv[i] = get_ox_path(); i++; argv[i] = NULL;      argv[i] = get_ox_path(); i++; argv[i] = NULL;
     argv[i] = "-ox"; i++; argv[i] = NULL;      argv[i] = "-ox"; i++; argv[i] = NULL;
     argv[i] = oxServer; i++; argv[i] = NULL;      argv[i] = oxServer; i++; argv[i] = NULL;
   }else{    }else if ((ostype == 1) || (ostype == 3)) {  // cygwin or windows-native
     if (!NoX) {      if (!NoX) {
       if (getFileSize("/cygdrive/c/winnt/system32/cmd.exe") >= 0) {        if (getFileSize("/cygdrive/c/winnt/system32/cmd.exe") >= 0) {
         oxterm = "/cygdrive/c/winnt/system32/cmd.exe /c start /min ";          oxterm = "/cygdrive/c/winnt/system32/cmd.exe /c start /min ";
Line 707  char **getServerEnv(char *oxServer) {
Line 740  char **getServerEnv(char *oxServer) {
         NoX = 1;          NoX = 1;
       }        }
     }      }
       printf("oxterm=%s\n",oxterm); fflush(NULL);
     oxlog = " ";      oxlog = " ";
     if (!NoX) {      if (!NoX) {
       argv[i] = "/c"; i++; argv[i] = NULL;        argv[i] = "/c"; i++; argv[i] = NULL;
Line 716  char **getServerEnv(char *oxServer) {
Line 750  char **getServerEnv(char *oxServer) {
     argv[i] = cygwinPathToWinPath(get_ox_path()); i++; argv[i] = NULL;      argv[i] = cygwinPathToWinPath(get_ox_path()); i++; argv[i] = NULL;
     argv[i] = "-ox"; i++; argv[i] = NULL;      argv[i] = "-ox"; i++; argv[i] = NULL;
     argv[i] = oxServer; i++; argv[i] = NULL;      argv[i] = oxServer; i++; argv[i] = NULL;
     }else {
       /* msys with mintty*/
       if (!NoX) {
         oxterm = "/usr/bin/mintty";
       }
       if (!NoX) {
         argv[i] = oxterm ; i++; argv[i] = NULL;
         argv[i] = "--exec"; 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;
   }    }
   
   
   aaa = (char **) mymalloc(sizeof(char*)*(i+1));    aaa = (char **) mymalloc(sizeof(char*)*(i+1));
   if (aaa == NULL) nomemory(0);    if (aaa == NULL) nomemory(0);

Legend:
Removed from v.1.35  
changed lines
  Added in v.1.36

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