summaryrefslogtreecommitdiff
path: root/minion/src/util.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'minion/src/util.cpp')
-rw-r--r--minion/src/util.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/minion/src/util.cpp b/minion/src/util.cpp
new file mode 100644
index 0000000..f587781
--- /dev/null
+++ b/minion/src/util.cpp
@@ -0,0 +1,35 @@
+#include "util.hpp"
+
+namespace util
+{
+
+bool str_ends_with(const char *str, const char *other_str) noexcept
+{
+ if (str == nullptr || other_str == nullptr)
+ {
+ return false;
+ }
+
+ auto str_length = strlen(str);
+ auto other_str_length = strlen(other_str);
+
+ if (other_str_length > str_length)
+ {
+ return false;
+ }
+
+ return strncmp(str + str_length - other_str_length, other_str, other_str_length) == 0;
+}
+
+void substr(const char *str, const char *end, char *dest) noexcept
+{
+ auto *dest_head = dest;
+
+ for (const char *char_ptr = str; char_ptr + 1 != end; ++char_ptr)
+ {
+ *dest_head = *char_ptr;
+ dest_head++;
+ }
+}
+
+} // namespace util