mirror of
https://github.com/labwc/labwc.git
synced 2025-11-09 13:30:01 -05:00
string-helpers: add str_endswith_ignore_case()
This commit is contained in:
parent
41aa7e1a7d
commit
10c6abb36a
2 changed files with 37 additions and 3 deletions
|
|
@ -2,11 +2,18 @@
|
|||
#include <assert.h>
|
||||
#include <ctype.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include "common/mem.h"
|
||||
#include "common/string-helpers.h"
|
||||
|
||||
enum str_flags {
|
||||
STR_FLAG_NONE = 0,
|
||||
STR_FLAG_IGNORE_CASE,
|
||||
};
|
||||
|
||||
bool
|
||||
string_null_or_empty(const char *s)
|
||||
{
|
||||
|
|
@ -154,8 +161,8 @@ str_join(const char *const parts[],
|
|||
return buf;
|
||||
}
|
||||
|
||||
bool
|
||||
str_endswith(const char *const string, const char *const suffix)
|
||||
static bool
|
||||
_str_endswith(const char *const string, const char *const suffix, uint32_t flags)
|
||||
{
|
||||
size_t len_str = string ? strlen(string) : 0;
|
||||
size_t len_sfx = suffix ? strlen(suffix) : 0;
|
||||
|
|
@ -168,7 +175,23 @@ str_endswith(const char *const string, const char *const suffix)
|
|||
return true;
|
||||
}
|
||||
|
||||
return strcmp(string + len_str - len_sfx, suffix) == 0;
|
||||
if (flags & STR_FLAG_IGNORE_CASE) {
|
||||
return strcasecmp(string + len_str - len_sfx, suffix) == 0;
|
||||
} else {
|
||||
return strcmp(string + len_str - len_sfx, suffix) == 0;
|
||||
}
|
||||
}
|
||||
|
||||
bool
|
||||
str_endswith(const char *const string, const char *const suffix)
|
||||
{
|
||||
return _str_endswith(string, suffix, STR_FLAG_NONE);
|
||||
}
|
||||
|
||||
bool
|
||||
str_endswith_ignore_case(const char *const string, const char *const suffix)
|
||||
{
|
||||
return _str_endswith(string, suffix, STR_FLAG_IGNORE_CASE);
|
||||
}
|
||||
|
||||
bool
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue