diff options
author | 2016-07-04 23:22:37 -0400 | |
---|---|---|
committer | 2016-07-04 23:22:37 -0400 | |
commit | bdf2059bf4bfb44b2ac2e55fbfb18408aba6d59d (patch) | |
tree | 8cf0e289d2f317eedffd8b8aa52b62680fbf72b2 /src/lib/util/zippath.cpp | |
parent | 0d4151e3663e610a48faae575a85e932b7a50e5e (diff) |
As per Vas Crabb, readding overloads that take a std::string& parameter for the result
Diffstat (limited to 'src/lib/util/zippath.cpp')
-rw-r--r-- | src/lib/util/zippath.cpp | 49 |
1 files changed, 43 insertions, 6 deletions
diff --git a/src/lib/util/zippath.cpp b/src/lib/util/zippath.cpp index 9ac9df5979a..1a13bfe7784 100644 --- a/src/lib/util/zippath.cpp +++ b/src/lib/util/zippath.cpp @@ -140,12 +140,11 @@ static void parse_parent_path(const char *path, int *beginpos, int *endpos) // zippath_parent - retrieves the parent directory // ------------------------------------------------- -std::string zippath_parent(const char *path) +std::string &zippath_parent(std::string &dst, const char *path) { int pos; parse_parent_path(path, &pos, nullptr); - std::string dst; if (pos >= 0) dst.assign(path, pos + 1); else @@ -156,6 +155,19 @@ std::string zippath_parent(const char *path) // ------------------------------------------------- +// zippath_parent - retrieves the parent directory +// ------------------------------------------------- + +std::string zippath_parent(const char *path) +{ + std::string result; + zippath_parent(result, path); + return result; +} + + + +// ------------------------------------------------- // zippath_parent_basename - retrieves the parent // directory basename // ------------------------------------------------- @@ -171,9 +183,8 @@ std::string zippath_parent(const char *path) * @return A std::string& */ -std::string zippath_parent_basename(const char *path) +std::string &zippath_parent_basename(std::string &dst, const char *path) { - std::string dst; int beginpos, endpos; parse_parent_path(path, &beginpos, &endpos); dst.copy((char*)(path + beginpos + 1), endpos - beginpos); @@ -183,6 +194,20 @@ std::string zippath_parent_basename(const char *path) // ------------------------------------------------- +// zippath_parent_basename - retrieves the parent +// directory basename +// ------------------------------------------------- + +std::string zippath_parent_basename(const char *path) +{ + std::string result; + zippath_parent_basename(result, path); + return result; +} + + + +// ------------------------------------------------- // zippath_combine - combines two paths // ------------------------------------------------- @@ -198,9 +223,8 @@ std::string zippath_parent_basename(const char *path) * @return A std::string& */ -std::string zippath_combine(const char *path1, const char *path2) +std::string &zippath_combine(std::string &dst, const char *path1, const char *path2) { - std::string dst; if (!strcmp(path2, ".")) { dst.assign(path1); @@ -226,6 +250,19 @@ std::string zippath_combine(const char *path1, const char *path2) +// ------------------------------------------------- +// zippath_combine - combines two paths +// ------------------------------------------------- + +std::string zippath_combine(const char *path1, const char *path2) +{ + std::string result; + zippath_combine(result, path1, path2); + return result; +} + + + /*************************************************************************** FILE OPERATIONS ***************************************************************************/ |