=================================================================== RCS file: /home/cvs/OpenXM/src/util/ox_pathfinder.c,v retrieving revision 1.9 retrieving revision 1.13 diff -u -p -r1.9 -r1.13 --- OpenXM/src/util/ox_pathfinder.c 2003/11/24 11:47:35 1.9 +++ OpenXM/src/util/ox_pathfinder.c 2003/12/03 13:38:39 1.13 @@ -1,4 +1,4 @@ -/* $OpenXM: OpenXM/src/util/ox_pathfinder.c,v 1.8 2003/11/16 07:14:11 takayama Exp $ */ +/* $OpenXM: OpenXM/src/util/ox_pathfinder.c,v 1.12 2003/12/03 08:58:35 takayama Exp $ */ /* Moved from misc-2003/07/cygwin/test.c */ #include @@ -111,9 +111,12 @@ static void myforkwait() { int status; int pid; int i,j; - signal(SIGCHLD,SIG_IGN); + /* signal(SIGCHLD,SIG_IGN); It is not allowed in posix */ pid = wait(&status); fprintf(stderr,"Child process %d is exiting.\n",pid); + if (pid < 0) { + perror("wait"); + } for (i=0; i MAXTMP2-10) && (!clean)) { + /* Clean the old garbages. */ + for (i=0; i= 0) && (buf.st_mtime+120 < time(NULL))) { + unlink(fname); + } + } + } + num = 0; clean=1; prevnum=0; + } + } + } + return NULL; +} char *getCppPath(void) { static char *cpp = "/usr/local/bin/cpp"; @@ -956,5 +1030,48 @@ char *oxWhich_unix(char *cmdname,char *path) { } } return NULL; +} + +char *oxEvalEnvVar(char *s) { + int n, i,j; + char *es; + char *news; + int flag,flag2; + flag=-1; + n = strlen(s); + es = (char *)mymalloc(n+1); es[0] = 0; + if (es == NULL) nomemory(1); + for (i=0; i= 0) { + es = (char *)getenv(es); + if (es == NULL) es=""; + news = (char *) mymalloc(n+5+strlen(es)); + if (news == NULL) nomemory(1); + j = 0; + for (i=0; i