From 7af3adc344adef1758db193fcfd806f30bef6edb Mon Sep 17 00:00:00 2001 From: ridiculousfish Date: Sat, 21 Jul 2018 20:57:21 -0700 Subject: [PATCH] Revert "Don't require ./etc to exist in relocatable fish" This reverts commit e2a3dae58b265121f192bf6518ff2f7969378aeb. This idea failed because ./share was not complete when bliding via cmake; it misses critical files such as config.fish. --- src/fish.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/fish.cpp b/src/fish.cpp index 6ad5de493..baeab0dd0 100644 --- a/src/fish.cpp +++ b/src/fish.cpp @@ -156,11 +156,12 @@ 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 directories exist. Allow the sysconf dir to be invalid. - // Handle the doc directories separately. - if (0 == waccess(paths.data, R_OK)) { + // 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)) { // The docs dir may not exist; in that case fall back to the compiled in path. - if (0 == waccess(paths.doc, R_OK)) { + if (0 != wstat(paths.doc, &buf)) { paths.doc = L"" DOCDIR; } done = true;