add functions: fc_string_case_compare, fc_string_case_equal etc.
parent
07ba689835
commit
cc304e5d7a
3
HISTORY
3
HISTORY
|
|
@ -1,9 +1,10 @@
|
||||||
|
|
||||||
Version 1.49 2021-03-19
|
Version 1.49 2021-03-21
|
||||||
* add macros: FC_ABS and FC_NEGATIVE
|
* add macros: FC_ABS and FC_NEGATIVE
|
||||||
* uniq_skiplist.c: add uniq_skiplist_pair struct and init function
|
* uniq_skiplist.c: add uniq_skiplist_pair struct and init function
|
||||||
* add functions: fc_mkdirs and str_replace
|
* add functions: fc_mkdirs and str_replace
|
||||||
* add FilenameString type and macro
|
* add FilenameString type and macro
|
||||||
|
* add functions: fc_string_case_compare, fc_string_case_equal etc.
|
||||||
|
|
||||||
Version 1.48 2021-02-01
|
Version 1.48 2021-02-01
|
||||||
* fast_buffer.[hc]: add function fast_buffer_append_binary
|
* fast_buffer.[hc]: add function fast_buffer_append_binary
|
||||||
|
|
|
||||||
|
|
@ -207,6 +207,12 @@ typedef struct
|
||||||
int count;
|
int count;
|
||||||
} string_array_t;
|
} string_array_t;
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
int64_t id;
|
||||||
|
string_t name;
|
||||||
|
} id_name_pair_t;
|
||||||
|
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
string_t key;
|
string_t key;
|
||||||
|
|
@ -327,6 +333,39 @@ static inline bool fc_string_equal2(const string_t *s1,
|
||||||
#define fc_string_equals(s1, s2) fc_string_equal(s1, s2)
|
#define fc_string_equals(s1, s2) fc_string_equal(s1, s2)
|
||||||
#define fc_string_equals2(s1, str2, len2) fc_string_equal2(s1, str2, len2)
|
#define fc_string_equals2(s1, str2, len2) fc_string_equal2(s1, str2, len2)
|
||||||
|
|
||||||
|
|
||||||
|
#define fc_case_compare_string(s1, s2) fc_string_case_compare(s1, s2)
|
||||||
|
|
||||||
|
static inline int fc_string_case_compare(const string_t *s1, const string_t *s2)
|
||||||
|
{
|
||||||
|
int result;
|
||||||
|
if (s1->len == s2->len) {
|
||||||
|
return strncasecmp(s1->str, s2->str, s1->len);
|
||||||
|
} else if (s1->len < s2->len) {
|
||||||
|
result = strncasecmp(s1->str, s2->str, s1->len);
|
||||||
|
return result == 0 ? -1 : result;
|
||||||
|
} else {
|
||||||
|
result = strncasecmp(s1->str, s2->str, s2->len);
|
||||||
|
return result == 0 ? 1 : result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bool fc_string_case_equal(const string_t *s1, const string_t *s2)
|
||||||
|
{
|
||||||
|
return (s1->len == s2->len) && (strncasecmp(s1->str, s2->str, s1->len) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline bool fc_string_case_equal2(const string_t *s1,
|
||||||
|
const char *str2, const int len2)
|
||||||
|
{
|
||||||
|
return (s1->len == len2) && (strncasecmp(s1->str, str2, s1->len) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define fc_string_case_equals(s1, s2) fc_string_case_equal(s1, s2)
|
||||||
|
#define fc_string_case_equals2(s1, str2, len2) \
|
||||||
|
fc_string_case_equal2(s1, str2, len2)
|
||||||
|
|
||||||
|
|
||||||
static inline int fc_compare_int64(const int64_t n1, const int64_t n2)
|
static inline int fc_compare_int64(const int64_t n1, const int64_t n2)
|
||||||
{
|
{
|
||||||
int64_t sub;
|
int64_t sub;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue