36#ifndef LIBITE_STRING_H_
37#define LIBITE_STRING_H_
51 __typeof__ (a) _a = (a); \
52 __typeof__ (b) _b = (b); \
60 __typeof__ (a) _a = (a); \
61 __typeof__ (b) _b = (b); \
66int strnmatch (
const char *str,
const char **list,
size_t num);
67int strmatch (
const char *str,
const char **list);
70size_t strlcpy (
char *dst,
const char *src,
size_t siz);
73size_t strlcat (
char *dst,
const char *src,
size_t siz);
76long long strtonum (
const char *numstr,
long long minval,
long long maxval,
const char **errstrp);
86static inline int atonum(
const char *str)
92 val =
strtonum(str, 0, INT32_MAX, &errstr);
105static inline int string_valid(
const char *str)
107 return str && strlen(str);
116static inline int string_match(
const char *a,
const char *b)
118 size_t min = MIN(strlen(a), strlen(b));
120 return !strncasecmp(a, b,
min);
129static inline int string_compare(
const char *a,
const char *b)
131 return strlen(a) == strlen(b) && !strcmp(a, b);
141static inline int string_case_compare(
const char *a,
const char *b)
143 return strlen(a) == strlen(b) && !strcasecmp(a, b);
char * strtrim(char *str)
int strmatch(const char *str, const char **list)
int strnmatch(const char *str, const char **list, size_t num)
long long strtonum(const char *numstr, long long minval, long long maxval, const char **errstrp)
size_t strlcat(char *dst, const char *src, size_t siz)
size_t strlcpy(char *dst, const char *src, size_t siz)