Favor /proc/self/exe over argv[0] on Linux, to match other platforms.
We don't favor searching the $PATH, though, since that relies on argv[0] too.
This commit is contained in:
parent
9d01a645ed
commit
2392ca1aa3
|
@ -248,10 +248,6 @@ char *__PHYSFS_platformCalcBaseDir(const char *argv0)
|
||||||
char *retval = NULL;
|
char *retval = NULL;
|
||||||
char *envr = NULL;
|
char *envr = NULL;
|
||||||
|
|
||||||
/* fast path: default behaviour can handle this. */
|
|
||||||
if ( (argv0 != NULL) && (strchr(argv0, '/') != NULL) )
|
|
||||||
return NULL; /* higher level will parse out real path from argv0. */
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Try to avoid using argv0 unless forced to. If there's a Linux-like
|
* Try to avoid using argv0 unless forced to. If there's a Linux-like
|
||||||
* /proc filesystem, you can get the full path to the current process from
|
* /proc filesystem, you can get the full path to the current process from
|
||||||
|
@ -275,8 +271,13 @@ char *__PHYSFS_platformCalcBaseDir(const char *argv0)
|
||||||
*(ptr+1) = '\0';
|
*(ptr+1) = '\0';
|
||||||
} /* if */
|
} /* if */
|
||||||
|
|
||||||
|
/* No /proc/self/exe, but we have an argv[0] we can parse? */
|
||||||
if ((retval == NULL) && (argv0 != NULL))
|
if ((retval == NULL) && (argv0 != NULL))
|
||||||
{
|
{
|
||||||
|
/* fast path: default behaviour can handle this. */
|
||||||
|
if (strchr(argv0, '/') != NULL)
|
||||||
|
return NULL; /* higher level parses out real path from argv0. */
|
||||||
|
|
||||||
/* If there's no dirsep on argv0, then look through $PATH for it. */
|
/* If there's no dirsep on argv0, then look through $PATH for it. */
|
||||||
/* !!! FIXME: smallAlloc? */
|
/* !!! FIXME: smallAlloc? */
|
||||||
envr = __PHYSFS_platformCopyEnvironmentVariable("PATH");
|
envr = __PHYSFS_platformCopyEnvironmentVariable("PATH");
|
||||||
|
|
Loading…
Reference in New Issue