diff options
author | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-05-31 00:57:45 +0330 |
---|---|---|
committer | A404M <ahmadmahmoudiprogrammer@gmail.com> | 2025-05-31 00:57:45 +0330 |
commit | b89fc3da7d9f1badde2f4879924b5df5522da203 (patch) | |
tree | 1d081ff63564fd2b7c42a374ef62d432761c4124 /src/utils | |
parent | c91d3a8893b9c53c5c8e4c5cff72d7caf44cfee4 (diff) |
add ability to specify int type as extension
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/string.c | 17 | ||||
-rw-r--r-- | src/utils/string.h | 3 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/utils/string.c b/src/utils/string.c index 1932d89..28c1600 100644 --- a/src/utils/string.c +++ b/src/utils/string.c @@ -1,5 +1,6 @@ #include "string.h" #include "memory.h" +#include "utils/log.h" #include "utils/type.h" size_t strLength(const char *str) { @@ -28,6 +29,16 @@ bool strnEquals(const char *left, const char *right, size_t len) { return true; } +bool strnEqualsCaseInsensitive(const char *left, const char *right, + size_t len) { + for (size_t i = 0; i < len; ++i) { + if (!charEqualsCaseInsensitive(left[i], right[i])) { + return false; + } + } + return true; +} + size_t searchInStringArray(const char *array[], size_t array_size, const char *str, size_t str_size) { for (size_t i = 0; i < array_size; ++i) { @@ -143,3 +154,9 @@ char *strClone(const char *str) { } return result; } + +bool charEqualsCaseInsensitive(char left, char right) { + return left == right || + ('A' <= right && right <= 'Z' && left == right + ('a' - 'A')) || + ('A' <= left && left <= 'Z' && right == left + ('a' - 'A')); +} diff --git a/src/utils/string.h b/src/utils/string.h index dd2209c..0b11dae 100644 --- a/src/utils/string.h +++ b/src/utils/string.h @@ -8,6 +8,7 @@ size_t strLength(const char *str); bool strEquals(const char *left, const char *right); bool strnEquals(const char *left, const char *right, size_t len); +bool strnEqualsCaseInsensitive(const char *left, const char *right, size_t len); size_t searchInStringArray(const char *array[], size_t array_size, const char *str, size_t str_size); @@ -18,3 +19,5 @@ f128 numberToFloat(char const*str_begin, char const*str_end, bool *success); char *u64ToString(u64 value); char *strClone(const char *str); + +bool charEqualsCaseInsensitive(char left,char right); |