59 lines
1.4 KiB
C
59 lines
1.4 KiB
C
#define STR_FMT(buff, str) \
|
|
va_list args1; \
|
|
va_start(args1, str); \
|
|
i32 len = stbsp_vsnprintf(buff, sizeof(buff), str, args1); \
|
|
va_end(args1)
|
|
|
|
i32 str_len(char *str) {
|
|
i32 i = 0;
|
|
while (str[i]) i += 1;
|
|
return i;
|
|
}
|
|
|
|
b32 s8_equal(s8_t a, s8_t b);
|
|
s8_t s8_from_char(char *string);
|
|
b32 str_eq(char *a, char *b) {
|
|
return s8_equal(s8_from_char(a), s8_from_char(b));
|
|
}
|
|
|
|
char char_to_lower_case(char a) {
|
|
if (a >= 'A' && a <= 'Z') a += 32;
|
|
return a;
|
|
}
|
|
|
|
char char_to_upper_case(char a) {
|
|
if (a >= 'a' && a <= 'z') a -= 32;
|
|
return a;
|
|
}
|
|
|
|
b32 char_is_whitespace(char w) {
|
|
b32 result = w == '\n' || w == ' ' || w == '\t' || w == '\v' || w == '\r';
|
|
return result;
|
|
}
|
|
|
|
b32 char_is_alphabetic(char a) {
|
|
b32 result = (a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z');
|
|
return result;
|
|
}
|
|
|
|
b32 char_is_ident(char a) {
|
|
b32 result = (a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z') || a == '_';
|
|
return result;
|
|
}
|
|
|
|
b32 char_is_digit(char a) {
|
|
b32 result = a >= '0' && a <= '9';
|
|
return result;
|
|
}
|
|
|
|
b32 char_is_alphanumeric(char a) {
|
|
b32 result = char_is_digit(a) || char_is_alphabetic(a);
|
|
return result;
|
|
}
|
|
|
|
i64 wstr_len(wchar_t *string) {
|
|
i64 len = 0;
|
|
while (*string++ != 0)
|
|
len++;
|
|
return len;
|
|
} |