1
1
This commit was SVN r336.
Этот коммит содержится в:
Jeff Squyres 2004-01-13 22:21:30 +00:00
родитель f10878eb35
Коммит 175c1553b0

Просмотреть файл

@ -22,13 +22,6 @@
#define PATHENVSEP ':' #define PATHENVSEP ':'
#endif #endif
/**
* Directory seperator
*/
#define STRDIR '/'
#define STRSDIR "/"
static void path_env_load(char *path, int *pargc, char ***pargv); static void path_env_load(char *path, int *pargc, char ***pargv);
static char *path_access(char *fname, char *path, int mode); static char *path_access(char *fname, char *path, int mode);
static char *list_env_get(char *var, char **list); static char *list_env_get(char *var, char **list);
@ -61,7 +54,7 @@ lam_path_findv(char *fname, char **pathv, int mode, char **envv)
/* /*
* If absolute path is given, return it without searching. * If absolute path is given, return it without searching.
*/ */
if (STRDIR == *fname) { if ('/' == *fname) {
return(path_access(fname, "", mode)); return(path_access(fname, "", mode));
} }
/* /*
@ -78,19 +71,19 @@ lam_path_findv(char *fname, char **pathv, int mode, char **envv)
* Replace environment variable at the head of the string. * Replace environment variable at the head of the string.
*/ */
if ('$' == *pathv[i]) { if ('$' == *pathv[i]) {
delimit = strchr(pathv[i], STRDIR); delimit = strchr(pathv[i], '/');
if (delimit) { if (delimit) {
*delimit = '\0'; *delimit = '\0';
} }
env = list_env_get(pathv[i]+1, envv); env = list_env_get(pathv[i]+1, envv);
if (delimit) { if (delimit) {
*delimit = STRDIR; *delimit = '/';
} }
if (env) { if (env) {
if (!delimit) { if (!delimit) {
fullpath = path_access(fname, env, mode); fullpath = path_access(fname, env, mode);
} else { } else {
pfix = LAM_MALLOC((unsigned) strlen(env) + strlen(delimit) + 1); pfix = LAM_MALLOC(strlen(env) + strlen(delimit) + 1);
if (NULL == pfix){ if (NULL == pfix){
return(0); return(0);
} }
@ -232,14 +225,14 @@ path_access(char *fname, char *path, int mode)
/* /*
* Allocate space for the full pathname. * Allocate space for the full pathname.
*/ */
fullpath = LAM_MALLOC((unsigned) strlen(path) + strlen(fname) + 2); fullpath = LAM_MALLOC(strlen(path) + strlen(fname) + 2);
if (NULL == fullpath){ if (NULL == fullpath){
return(0); return(0);
} }
if (strlen(path) > 0) { if (strlen(path) > 0) {
strcpy(fullpath, path); strcpy(fullpath, path);
strcat(fullpath, STRSDIR); strcat(fullpath, "/");
strcat(fullpath, fname); strcat(fullpath, fname);
} else { } else {
strcpy(fullpath, fname); strcpy(fullpath, fname);