summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-12-01 22:58:51 +0300
committerAndrei Karas <akaras@inbox.ru>2015-12-01 23:00:32 +0300
commitedab962f4183b599c4c7c5beb75947589443ccca (patch)
treeb57644fb6da0a03ade25247624538e6b0b59d327
parent1a21baa93fd555e25b95732590282ba9a63dea86 (diff)
downloadmanaplus-edab962f4183b599c4c7c5beb75947589443ccca.tar.gz
manaplus-edab962f4183b599c4c7c5beb75947589443ccca.tar.bz2
manaplus-edab962f4183b599c4c7c5beb75947589443ccca.tar.xz
manaplus-edab962f4183b599c4c7c5beb75947589443ccca.zip
Add string cut functions.
-rw-r--r--src/utils/stringutils.cpp20
-rw-r--r--src/utils/stringutils.h6
2 files changed, 26 insertions, 0 deletions
diff --git a/src/utils/stringutils.cpp b/src/utils/stringutils.cpp
index 864f509fc..ee6b6fb07 100644
--- a/src/utils/stringutils.cpp
+++ b/src/utils/stringutils.cpp
@@ -638,6 +638,16 @@ bool findCutLast(std::string &restrict str1, const std::string &restrict str2)
return false;
}
+void cutLast(std::string &restrict str1, const std::string &restrict str2)
+{
+ const size_t s1 = str1.size();
+ const size_t s2 = str2.size();
+ if (s1 < s2)
+ return;
+ if (str1.substr(s1 - s2) == str2)
+ str1 = str1.substr(0, s1 - s2);
+}
+
bool findCutFirst(std::string &restrict str1, const std::string &restrict str2)
{
const size_t s1 = str1.size();
@@ -652,6 +662,16 @@ bool findCutFirst(std::string &restrict str1, const std::string &restrict str2)
return false;
}
+void cutFirst(std::string &restrict str1, const std::string &restrict str2)
+{
+ const size_t s1 = str1.size();
+ const size_t s2 = str2.size();
+ if (s1 < s2)
+ return;
+ if (str1.substr(0, s2) == str2)
+ str1 = str1.substr(s2);
+}
+
std::string &removeProtocol(std::string &url)
{
const size_t i = url.find("://");
diff --git a/src/utils/stringutils.h b/src/utils/stringutils.h
index 73e4b7697..31f562587 100644
--- a/src/utils/stringutils.h
+++ b/src/utils/stringutils.h
@@ -222,9 +222,15 @@ bool findFirst(const std::string &restrict str1,
bool findCutLast(std::string &restrict str1,
const std::string &restrict str2) A_WARN_UNUSED;
+void cutLast(std::string &restrict str1,
+ const std::string &restrict str2);
+
bool findCutFirst(std::string &restrict str1,
const std::string &restrict str2);
+void cutFirst(std::string &restrict str1,
+ const std::string &restrict str2);
+
std::string &removeProtocol(std::string &url);
bool strStartWith(const std::string &restrict str,