45int str_copy(
char *dst,
const char *src,
int dst_size);
76void str_append(
char *dst,
const char *src,
int dst_size);
109void str_truncate(
char *dst,
int dst_size,
const char *src,
int truncation_len);
138[[gnu::format(printf, 3, 0)]]
int str_format_v(
char *buffer,
int buffer_size,
const char *format, va_list args);
156[[gnu::format(printf, 3, 4)]]
int str_format(
char *buffer,
int buffer_size,
const char *format, ...);
158#if !defined(CONF_DEBUG)
161template<
typename... Args>
162int str_format_opt(
char *buffer,
int buffer_size,
const char *format, Args... args)
164 static_assert(
sizeof...(args) > 0,
"Use str_copy instead of str_format without format arguments");
165 return str_format(buffer, buffer_size, format, args...);
169inline int str_format_opt(
char *buffer,
int buffer_size,
const char *format,
int val)
171 if(strcmp(format,
"%d") == 0)
177 return str_format(buffer, buffer_size, format, val);
181#define str_format str_format_opt
396int str_comp(
const char *a,
const char *b);
471const char *
str_endswith(
const char *str,
const char *suffix);
503const char *
str_find(
const char *haystack,
const char *needle);
519const char *
str_next_token(
const char *str,
const char *delim,
char *buffer,
int buffer_size);
533int str_in_list(
const char *list,
const char *delim,
const char *needle);
565const char *
str_rchr(
const char *haystack,
char needle);
595void str_hex(
char *dst,
int dst_size,
const void *data,
int data_size);
613void str_hex_cstyle(
char *dst,
int dst_size,
const void *data,
int data_size,
int bytes_per_line = 12);
644void str_base64(
char *dst,
int dst_size,
const void *data,
int data_size);
670void str_escape(
char **dst,
const char *src,
const char *end);
673bool str_toint(
const char *str,
int *out);
724void str_utf8_truncate(
char *dst,
int dst_size,
const char *src,
int truncation_len);
819const char *
str_utf8_find_nocase(
const char *haystack,
const char *needle,
const char **end =
nullptr);
919void str_utf8_stats(
const char *str,
size_t max_size,
size_t max_count,
size_t *size,
size_t *count);
const char * str_rchr(const char *haystack, char needle)
Definition str.cpp:559
void str_utf8_trim_right(char *param)
Definition str.cpp:1048
void str_hex_cstyle(char *dst, int dst_size, const void *data, int data_size, int bytes_per_line=12)
Definition str.cpp:591
int str_utf8_tolower_codepoint(int code)
Definition tolower.cpp:5
int str_utf8_comp_nocase(const char *a, const char *b)
Definition str.cpp:1147
char * str_skip_to_whitespace(char *str)
Definition str.cpp:321
size_t str_utf8_offset_chars_to_bytes(const char *str, size_t char_offset)
Definition str.cpp:1283
void str_utf8_copy_num(char *dst, const char *src, int dst_size, int num)
Definition str.cpp:1230
int str_length(const char *str)
Definition str.cpp:52
int str_utf8_forward(const char *str, int cursor)
Definition str.cpp:1207
const char * str_next_token(const char *str, const char *delim, char *buffer, int buffer_size)
Definition str.cpp:496
int str_utf8_decode(const char **ptr)
Definition str.cpp:947
void str_sanitize(char *str)
Definition str.cpp:171
const char * str_find_nocase(const char *haystack, const char *needle)
Definition str.cpp:444
const char * str_startswith(const char *str, const char *prefix)
Definition str.cpp:391
void str_base64(char *dst, int dst_size, const void *data, int data_size)
Definition str.cpp:683
int str_utf8_encode(char *ptr, int chr)
Definition str.cpp:902
int str_utf8_isstart(char c)
Definition str.cpp:1102
bool str_has_cc(const char *str)
Definition str.cpp:144
int str_utf32_dist_buffer(const int *a, int a_len, const int *b, int b_len, int *buf, int buf_len)
Definition str.cpp:1336
void str_sanitize_cc(char *str)
Definition str.cpp:159
const char * str_skip_whitespaces_const(const char *str)
Definition str.cpp:342
const char * str_skip_to_whitespace_const(const char *str)
Definition str.cpp:328
const char * str_utf8_skip_whitespaces(const char *str)
Definition str.cpp:1187
int str_format_v(char *buffer, int buffer_size, const char *format, va_list args)
Definition str.cpp:57
int str_comp_num(const char *a, const char *b, int num)
Definition str.cpp:373
bool str_delimiters_around_offset(const char *haystack, const char *delim, int offset, int *start, int *end)
Definition str.cpp:527
int str_utf8_comp_confusable(const char *str1, const char *str2)
Definition confusables.cpp:83
int str_base64_decode(void *dst, int dst_size, const char *data)
Definition str.cpp:760
void str_utf8_truncate(char *dst, int dst_size, const char *src, int truncation_len)
Definition str.cpp:1014
void str_utf8_stats(const char *str, size_t max_size, size_t max_count, size_t *size, size_t *count)
Definition str.cpp:1248
int str_hex_decode(void *dst, int dst_size, const char *src)
Definition str.cpp:666
int str_comp_filenames(const char *a, const char *b)
Definition str.cpp:258
void str_hex(char *dst, int dst_size, const void *data, int data_size)
Definition str.cpp:576
void str_utf8_tolower(const char *input, char *output, size_t size)
Definition str.cpp:1073
int str_comp_nocase(const char *a, const char *b)
Definition str.cpp:350
void str_truncate(char *dst, int dst_size, const char *src, int truncation_len)
Definition str.cpp:42
size_t str_utf8_offset_bytes_to_chars(const char *str, size_t byte_offset)
Definition str.cpp:1268
int str_countchr(const char *haystack, char needle)
Definition str.cpp:564
int str_comp(const char *a, const char *b)
Definition str.cpp:368
void str_append(char *dst, const char *src, int dst_size)
Definition str.cpp:25
int str_utf8_check(const char *str)
Definition str.cpp:1217
const char * str_utf8_find_nocase(const char *haystack, const char *needle, const char **end=nullptr)
Definition str.cpp:1120
void str_clean_whitespaces(char *str)
Definition str.cpp:290
int str_utf8_isspace(int code)
Definition str.cpp:1091
const char * str_startswith_nocase(const char *str, const char *prefix)
Definition str.cpp:378
int str_utf8_comp_nocase_num(const char *a, const char *b, int num)
Definition str.cpp:1163
const char * str_endswith_nocase(const char *str, const char *suffix)
Definition str.cpp:404
int str_copy(char *dst, const char *src, int dst_size)
Definition str.cpp:18
char * str_skip_whitespaces(char *str)
Definition str.cpp:335
int str_utf8_rewind(const char *str, int cursor)
Definition str.cpp:1109
int str_utf8_fix_truncation(char *str)
Definition str.cpp:1031
const char * str_find(const char *haystack, const char *needle)
Definition str.cpp:463
int str_comp_nocase_num(const char *a, const char *b, int num)
Definition str.cpp:359
int str_utf8_dist_buffer(const char *a, const char *b, int *buf, int buf_len)
Definition str.cpp:1316
int str_isspace(char c)
Definition str.cpp:126
const char * str_trim_words(const char *str, int words)
Definition str.cpp:131
int str_isallnum(const char *str)
Definition str.cpp:104
unsigned long str_toulong_base(const char *str, int base)
Definition str.cpp:867
int str_utf8_dist(const char *a, const char *b)
Definition str.cpp:1296
int str_toint_base(const char *str, int base)
Definition str.cpp:862
void str_escape(char **dst, const char *src, const char *end)
Definition str.cpp:829
void str_sanitize_filename(char *str)
Definition str.cpp:182
int str_in_list(const char *list, const char *delim, const char *needle)
Definition str.cpp:513
int str_format_int(char *buffer, size_t buffer_size, int value)
Definition str.cpp:70
int str_toint(const char *str)
Definition str.cpp:845
int str_format_opt(char *buffer, int buffer_size, const char *format, Args... args)
Definition str.h:162
bool str_isnum(char c)
Definition str.cpp:99
float str_tofloat(const char *str)
Definition str.cpp:877
unsigned str_quickhash(const char *str)
Definition str.cpp:894
#define str_format
Definition str.h:181
int str_isallnum_hex(const char *str)
Definition str.cpp:115
const char * str_endswith(const char *str, const char *suffix)
Definition str.cpp:424
char str_uppercase(char c)
Definition str.cpp:92
int64_t str_toint64_base(const char *str, int base=10)
Definition str.cpp:872
bool str_valid_filename(const char *str)
Definition str.cpp:196
int str_utf8_to_skeleton(const char *str, int *buf, int buf_len)
Definition confusables.cpp:66