summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/util/corestr.h
diff options
context:
space:
mode:
author npwoods <npwoods@mess.org>2022-06-30 03:25:50 -0400
committer GitHub <noreply@github.com>2022-06-30 09:25:50 +0200
commitab3a5e1df7c5cc430b6f4a3cf4516a1f734bb2b2 (patch)
tree7a59fd392959cd3e8a70de97c16a03eb21a2bca6 /src/lib/util/corestr.h
parent7e123ca663943617d3d3169582964b8fee3d39ec (diff)
Created a CBM DOS file system driver and added it to the 1541 implementation (#9922)
Diffstat (limited to 'src/lib/util/corestr.h')
-rw-r--r--src/lib/util/corestr.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/lib/util/corestr.h b/src/lib/util/corestr.h
index 81b04eeebaf..8caf014509b 100644
--- a/src/lib/util/corestr.h
+++ b/src/lib/util/corestr.h
@@ -16,6 +16,7 @@
#include <string>
#include <string_view>
+#include <algorithm>
#include <cstring>
@@ -51,6 +52,26 @@ int core_strnicmp(const char *s1, const char *s2, size_t n);
int core_strwildcmp(const char *sp1, const char *sp2);
bool core_iswildstr(const char *sp);
+/* trim functions */
+template<typename TPred>
+std::string_view strtrimleft(std::string_view str, TPred pred)
+{
+ std::string_view::iterator start = std::find_if(
+ str.begin(),
+ str.end(),
+ pred);
+ return str.substr(start - str.begin(), str.end() - start);
+}
+
+template<typename TPred>
+std::string_view strtrimright(std::string_view str, TPred pred)
+{
+ std::string_view::reverse_iterator end = std::find_if(
+ str.rbegin(),
+ str.rend(),
+ pred);
+ return str.substr(0, str.size() - (end - str.rbegin()));
+}
void strdelchr(std::string& str, char chr);
void strreplacechr(std::string& str, char ch, char newch);