From 51d0532c3e56ca0816da20f6f3e59d2d0f2c55c9 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Thu, 21 Jul 2016 00:38:15 +0100 Subject: Only allow .odin files to be parsed --- src/common.cpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/common.cpp') diff --git a/src/common.cpp b/src/common.cpp index 7d7bed316..e5b674c3b 100644 --- a/src/common.cpp +++ b/src/common.cpp @@ -31,6 +31,35 @@ gb_inline b32 are_strings_equal(String a, String b) { return false; } + +gb_inline isize string_has_any_extension(String str) { + isize dot_pos = -1; + isize i = str.len; + b32 seen_dot = false; + while (i --> 0) { + if (str.text[i] == GB_PATH_SEPARATOR) + break; + if (str.text[i] == '.') { + dot_pos = i; + break; + } + } + + return dot_pos; +} + +gb_inline b32 string_has_extension(String str, String ext) { + if (str.len > ext.len+1) { + u8 *s = str.text+str.len - ext.len-1; + if (s[0] == '.') { + s++; + return gb_memcompare(s, ext.text, ext.len) == 0; + } + return false; + } + return false; +} + // Hasing gb_inline u64 hashing_proc(void const *data, isize len) { -- cgit v1.2.3