summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/util/zippath.cpp
diff options
context:
space:
mode:
author Nathan Woods <npwoods@mess.org>2016-07-04 23:22:37 -0400
committer Nathan Woods <npwoods@mess.org>2016-07-04 23:22:37 -0400
commitbdf2059bf4bfb44b2ac2e55fbfb18408aba6d59d (patch)
tree8cf0e289d2f317eedffd8b8aa52b62680fbf72b2 /src/lib/util/zippath.cpp
parent0d4151e3663e610a48faae575a85e932b7a50e5e (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.cpp49
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&amp;
*/
-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&amp;
*/
-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
***************************************************************************/