From 482981410f52fff5b3e721bd51ce31c118bdaeaf Mon Sep 17 00:00:00 2001
From: Andrei Karas <akaras@inbox.ru>
Date: Sat, 15 Apr 2017 20:17:18 +0300
Subject: Fix download urls on windows.

---
 src/utils/stringutils.cpp | 37 +++++++++++++++++++++++++++++++++++++
 src/utils/stringutils.h   |  3 +++
 2 files changed, 40 insertions(+)

(limited to 'src/utils')

diff --git a/src/utils/stringutils.cpp b/src/utils/stringutils.cpp
index 5a343cdbd..90d5835a5 100644
--- a/src/utils/stringutils.cpp
+++ b/src/utils/stringutils.cpp
@@ -1143,6 +1143,43 @@ std::string pathJoin(std::string str1,
     }
 }
 
+std::string urlJoin(std::string str1,
+                    const std::string &str2)
+{
+    const char sep = '/';
+    std::string sepStr = "/";
+
+    if (str1.empty())
+    {
+        if (str2[0] == sep)
+            return str2;
+        else
+            return sepStr.append(str2);
+    }
+    const size_t sz1 = str1.size();
+    if (str2.empty())
+    {
+        if (str1[sz1 - 1] == sep)
+            return str1;
+        else
+            return str1.append(sepStr);
+    }
+    if (str1[sz1 - 1] == sep)
+    {
+        if (str2[0] == sep)
+            return str1.append(str2.substr(1));
+        else
+            return str1.append(str2);
+    }
+    else
+    {
+        if (str2[0] == sep)
+            return str1.append(str2);
+        else
+            return str1.append(sepStr).append(str2);
+    }
+}
+
 #ifndef DYECMD
 void replaceItemLinks(std::string &msg)
 {
diff --git a/src/utils/stringutils.h b/src/utils/stringutils.h
index 02113d4c2..545734a56 100644
--- a/src/utils/stringutils.h
+++ b/src/utils/stringutils.h
@@ -282,4 +282,7 @@ std::string pathJoin(std::string str1,
                      const std::string &str2,
                      const std::string &str3);
 
+std::string urlJoin(std::string str1,
+                    const std::string &str2);
+
 #endif  // UTILS_STRINGUTILS_H
-- 
cgit v1.2.3-70-g09d2