added real_path function; bumped version to 1.1

This commit is contained in:
Bob Polis 2020-08-23 17:21:19 +02:00
parent 66f0de4970
commit 6e0c828404
3 changed files with 80 additions and 74 deletions

View File

@ -1,6 +1,6 @@
LIBNAME := $(shell basename $$(pwd)) LIBNAME := $(shell basename $$(pwd))
MAJOR := 1 MAJOR := 1
MINOR := 0.0 MINOR := 1.0
UNAME_S := $(shell uname -s) UNAME_S := $(shell uname -s)

View File

@ -198,11 +198,7 @@ string sc::filename_extension(const string& path) {
string sc::tool_path(const string& name) { string sc::tool_path(const string& name) {
if (name.find('/') != string::npos) { // name has (at least one) slash if (name.find('/') != string::npos) { // name has (at least one) slash
vector<char> buf; return sc::real_path(name);
buf.resize(PATH_MAX);
if (::realpath(name.c_str(), buf.data())) {
return string(buf.data());
}
} else { // no slash in name => command from PATH? } else { // no slash in name => command from PATH?
string envpath {::getenv("PATH")}; string envpath {::getenv("PATH")};
vector<string> paths {sc::split(envpath, ":")}; vector<string> paths {sc::split(envpath, ":")};
@ -259,3 +255,12 @@ bool sc::is_valid_utf8(const string& str) {
} }
return true; return true;
} }
string sc::real_path(const string& path) {
vector<char> buf;
buf.resize(PATH_MAX);
if (::realpath(path.c_str(), buf.data())) {
return string(buf.data());
}
return "";
}

View File

@ -63,6 +63,7 @@ namespace sc {
bool is_valid_utf8 (const std::string& str); bool is_valid_utf8 (const std::string& str);
std::string real_path (const std::string& path);
} }
#endif // _string_utils_ #endif // _string_utils_