From cec9f7abfe55a70fc7e56960eda1870aee596cbb Mon Sep 17 00:00:00 2001 From: gingerBill Date: Sun, 19 Nov 2017 15:06:56 +0000 Subject: Add `-debug` command (still in development) --- src/string.cpp | 39 +++++++++++---------------------------- 1 file changed, 11 insertions(+), 28 deletions(-) (limited to 'src/string.cpp') diff --git a/src/string.cpp b/src/string.cpp index 8e6006c46..822a386d7 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -180,17 +180,20 @@ template bool operator >= (String const &a, char const (&b)[N]) { retu -gb_inline bool str_has_prefix(String s, String prefix) { - isize i; - if (prefix.len < s.len) { +gb_inline bool string_starts_with(String s, String prefix) { + if (prefix.len > s.len) { return false; } - for (i = 0; i < prefix.len; i++) { - if (s[i] != prefix[i]) { - return false; - } + + return substring(s, 0, prefix.len) == prefix; +} + +gb_inline bool string_ends_with(String s, String suffix) { + if (suffix.len > s.len) { + return false; } - return true; + + return substring(s, s.len-suffix.len, s.len) == suffix; } gb_inline isize string_extension_position(String str) { @@ -225,26 +228,6 @@ String string_trim_whitespace(String str) { return str; } -gb_inline bool string_has_extension(String str, String ext) { - str = string_trim_whitespace(str); - if (str.len <= ext.len+1) { - return false; - } - isize len = str.len; - for (isize i = len-1; i >= 0; i--) { - if (str[i] == '.') { - break; - } - len--; - } - if (len == 0) { - return false; - } - - u8 *s = str.text + len; - return gb_memcompare(s, ext.text, ext.len) == 0; -} - bool string_contains_char(String s, u8 c) { isize i; for (i = 0; i < s.len; i++) { -- cgit v1.2.3