From ca8700fdd406f148dd27bb238fc748f00ede69f4 Mon Sep 17 00:00:00 2001 From: Ray Speth Date: Fri, 21 Sep 2018 16:17:01 -0400 Subject: [PATCH] Expand '~' as user homedir shortcut when adding data directories This matches the behavior used when searching for specific input files. --- src/base/application.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/base/application.cpp b/src/base/application.cpp index 1ccf52e79..146efaa56 100644 --- a/src/base/application.cpp +++ b/src/base/application.cpp @@ -379,6 +379,17 @@ void Application::addDataDirectory(const std::string& dir) } string d = stripnonprint(dir); + // Expand "~/" to user's home directory, if possible + if (d.find("~/") == 0 || d.find("~\\") == 0) { + char* home = getenv("HOME"); // POSIX systems + if (!home) { + home = getenv("USERPROFILE"); // Windows systems + } + if (home) { + d = home + d.substr(1, npos); + } + } + // Remove any existing entry for this directory auto iter = std::find(inputDirs.begin(), inputDirs.end(), d); if (iter != inputDirs.end()) {