mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-11-27 03:13:37 +08:00
Don't require ./etc to exist in relocatable fish
fish tries to be relocatable by looking for directories relative to its executable. These directories are not found when running fish from within a cmake build because the etc directory is not present. Stop requiring this directory to be present since it's not critical for running fish. Fixes #4825
This commit is contained in:
parent
0f568d4f66
commit
e2a3dae58b
|
@ -156,12 +156,11 @@ static struct config_paths_t determine_config_directory_paths(const char *argv0)
|
|||
paths.doc = base_path + (seems_installed ? L"/share/doc/fish" : L"/user_doc/html");
|
||||
paths.bin = base_path + (seems_installed ? L"/bin" : L"");
|
||||
|
||||
// Check only that the data and sysconf directories exist. Handle the doc
|
||||
// directories separately.
|
||||
struct stat buf;
|
||||
if (0 == wstat(paths.data, &buf) && 0 == wstat(paths.sysconf, &buf)) {
|
||||
// Check only that the data directories exist. Allow the sysconf dir to be invalid.
|
||||
// Handle the doc directories separately.
|
||||
if (0 == waccess(paths.data, R_OK)) {
|
||||
// The docs dir may not exist; in that case fall back to the compiled in path.
|
||||
if (0 != wstat(paths.doc, &buf)) {
|
||||
if (0 == waccess(paths.doc, R_OK)) {
|
||||
paths.doc = L"" DOCDIR;
|
||||
}
|
||||
done = true;
|
||||
|
|
Loading…
Reference in New Issue
Block a user