9#define LEXBOR_STR_RES_ANSI_REPLACEMENT_CHARACTER
10#define LEXBOR_STR_RES_MAP_LOWERCASE
11#define LEXBOR_STR_RES_MAP_UPPERCASE
137 mraw, (length + 1),
NULL);
155 mraw, (length + 1),
NULL);
190 mraw, (length + 1),
NULL);
194 for (i = 0; i < length; i++) {
195 data_begin[i] = lexbor_str_res_map_lowercase[
data[i] ];
198 data_begin[i] =
'\0';
209 size_t current_len = str->
length;
212 mraw, (length + 1),
NULL);
215 while (buff !=
end) {
227 lexbor_str_res_ansi_replacement_character,
228 sizeof(lexbor_str_res_ansi_replacement_character) - 1);
243 return &str->
data[current_len];
250 if (target->data ==
NULL) {
271 for (i = 0; i < target->length; i++) {
278 target->length =
pos;
287 if (target->length == 0) {
295 for (i = 0,
offset = 0, ws_i = 0; i < target->length; i++)
298 if (
data[ws_i] != 0x20) {
306 if (
data[ws_i] == 0x20) {
333 for (i = 0; i < target->length; i++) {
339 if (i != 0 && i != target->length) {
340 memmove(target->data, &target->data[i], (target->length - i));
353 for (i = 0; i < target->length; i++) {
365 size_t i = target->length;
372 return target->length - (i + 1);
389 for (i = 0; i < sec_size; i++) {
390 if (first[i] ==
'\0') {
394 if (lexbor_str_res_map_lowercase[ first[i] ]
395 != lexbor_str_res_map_lowercase[ sec[i] ])
411 if (lexbor_str_res_map_lowercase[ first[
size] ]
412 != lexbor_str_res_map_lowercase[ sec[
size] ])
425 for (
size_t i = 0; what_size <= (where_size - i); i++) {
438 for (
size_t i = 0; i <
size; i++) {
439 if (lexbor_str_res_map_lowercase[ first[i] ]
440 != lexbor_str_res_map_lowercase[ sec[i] ])
453 for (
size_t i = 0; i <
size; i++) {
454 if (first[i] != lexbor_str_res_map_lowercase[ sec[i] ]) {
466 for (
size_t i = 0; i <
size; i++) {
467 if (first[i] != lexbor_str_res_map_uppercase[ sec[i] ]) {
479 if (lexbor_str_res_map_lowercase[*first]
480 != lexbor_str_res_map_lowercase[*sec])
485 if (*first ==
'\0') {
513 for (
size_t i = 0; what_size <= (where_size - i); i++) {
514 if(memcmp(&where[i], what,
sizeof(
lxb_char_t) * what_size) == 0) {
533 if (*first != *sec) {
537 if (*first ==
'\0') {
550 if (*first != *sec) {
569 to[
len] = lexbor_str_res_map_lowercase[ from[
len] ];
579 to[
len] = lexbor_str_res_map_uppercase[ from[
len] ];
memset(ptr, 0, type->size)
LXB_API void * lexbor_free(void *dst)
LXB_API void * lexbor_calloc(size_t num, size_t size)
void * lexbor_mraw_free(lexbor_mraw_t *mraw, void *data)
void * lexbor_mraw_realloc(lexbor_mraw_t *mraw, void *data, size_t new_size)
void * lexbor_mraw_alloc(lexbor_mraw_t *mraw, size_t size)
unsigned const char * end
unsigned const char * pos
bool lexbor_str_data_ncmp_contain(const lxb_char_t *where, size_t where_size, const lxb_char_t *what, size_t what_size)
lxb_char_t * lexbor_str_copy(lexbor_str_t *dest, const lexbor_str_t *target, lexbor_mraw_t *mraw)
bool lexbor_str_data_ncasecmp(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
void lexbor_str_data_set_noi(lexbor_str_t *str, lxb_char_t *data)
const lxb_char_t * lexbor_str_data_find_lowercase(const lxb_char_t *data, size_t len)
lxb_char_t * lexbor_str_realloc(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t new_size)
lxb_char_t * lexbor_str_append_with_rep_null_chars(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *buff, size_t length)
lxb_char_t * lexbor_str_append(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *buff, size_t length)
bool lexbor_str_data_nupcmp_right(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
lxb_char_t * lexbor_str_check_size(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t plus_len)
lxb_char_t * lexbor_str_append_before(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *buff, size_t length)
bool lexbor_str_data_cmp(const lxb_char_t *first, const lxb_char_t *sec)
size_t lexbor_str_length_noi(lexbor_str_t *str)
bool lexbor_str_data_ncmp_end(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
size_t lexbor_str_crop_whitespace_from_begin(lexbor_str_t *target)
const lxb_char_t * lexbor_str_data_ncasecmp_first(const lxb_char_t *first, const lxb_char_t *sec, size_t sec_size)
void lexbor_str_clean(lexbor_str_t *str)
const lxb_char_t * lexbor_str_data_find_uppercase(const lxb_char_t *data, size_t len)
lexbor_str_t * lexbor_str_create(void)
size_t lexbor_str_size_noi(lexbor_str_t *str)
bool lexbor_str_data_cmp_ws(const lxb_char_t *first, const lxb_char_t *sec)
size_t lexbor_str_whitespace_from_begin(lexbor_str_t *target)
void lexbor_str_strip_collapse_whitespace(lexbor_str_t *target)
lxb_char_t * lexbor_str_init(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t size)
void lexbor_str_data_to_lowercase(lxb_char_t *to, const lxb_char_t *from, size_t len)
lxb_char_t * lexbor_str_data_noi(lexbor_str_t *str)
lxb_char_t * lexbor_str_init_append(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *data, size_t length)
void lexbor_str_data_to_uppercase(lxb_char_t *to, const lxb_char_t *from, size_t len)
void lexbor_str_stay_only_whitespace(lexbor_str_t *target)
bool lexbor_str_data_ncasecmp_end(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
bool lexbor_str_data_casecmp(const lxb_char_t *first, const lxb_char_t *sec)
lxb_char_t * lexbor_str_length_set_noi(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t length)
size_t lexbor_str_whitespace_from_end(lexbor_str_t *target)
bool lexbor_str_data_ncmp(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
void lexbor_str_clean_all(lexbor_str_t *str)
lxb_char_t * lexbor_str_append_lowercase(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *data, size_t length)
bool lexbor_str_data_nlocmp_right(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
lexbor_str_t * lexbor_str_destroy(lexbor_str_t *str, lexbor_mraw_t *mraw, bool destroy_obj)
lxb_char_t * lexbor_str_append_one(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t data)
bool lexbor_str_data_ncasecmp_contain(const lxb_char_t *where, size_t where_size, const lxb_char_t *what, size_t what_size)
lxb_inline lxb_char_t * lexbor_str_length_set(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t length)
lxb_inline size_t lexbor_str_size(lexbor_str_t *str)
lxb_inline void lexbor_str_data_set(lexbor_str_t *str, lxb_char_t *data)
#define lexbor_str_check_size_arg_m(str, size, mraw, plus_len, return_fail)
lxb_inline lxb_char_t * lexbor_str_data(lexbor_str_t *str)
lxb_inline size_t lexbor_str_length(lexbor_str_t *str)
#define lexbor_utils_whitespace(onechar, action, logic)