From 96eac11d3b54e9ae07d333b8c60ac4a9aaa3cb24 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sat, 2 Feb 2019 00:29:36 -0500 Subject: [PATCH] Update DataDir search paths (GH #760) --- validate.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/validate.h b/validate.h index 5337169e..bcd2a8d2 100644 --- a/validate.h +++ b/validate.h @@ -259,7 +259,8 @@ inline int StringToValue(const std::string& str) inline std::string AddSeparator(std::string str) { - const char last = (str.empty() ? '\0' : str[str.length()-1]); + if (str.empty()) return ""; + const char last = str[str.length()-1]; if (last != '/' && last != '\\') return str + "/"; return str; @@ -282,6 +283,13 @@ static std::string GetDataDir() file.open(name.c_str()); if (file.is_open()) return AddSeparator(g_argvPathHint) + std::string("../share/cryptopp/"); +#endif +#ifdef CRYPTOPP_DATA_DIR + // Honor CRYPTOPP_DATA_DIR. This is likely an install directory if it is not "./". + name = AddSeparator(CRYPTOPP_DATA_DIR) + filename; + file.open(name.c_str()); + if (file.is_open()) + return AddSeparator(CRYPTOPP_DATA_DIR); #endif return "./"; } @@ -291,14 +299,6 @@ inline std::string DataDir(const std::string& filename) std::string name; std::ifstream file; -#ifdef CRYPTOPP_DATA_DIR - // Honor CRYPTOPP_DATA_DIR. This is likely an install directory if it is not "./". - name = AddSeparator(CRYPTOPP_DATA_DIR) + filename; - file.open(name.c_str()); - if (file.is_open()) - return name; -#endif - #if CRYPTOPP_CXX11_DYNAMIC_INIT static std::string path = AddSeparator(GetDataDir()); name = path + filename;