19#define lexbor_str_get(str, attr) str->attr
20#define lexbor_str_set(str, attr) lexbor_str_get(str, attr)
21#define lexbor_str_len(str) lexbor_str_get(str, length)
22#define lexbor_str(p) {.data = (lxb_char_t *) (p), sizeof(p) - 1}
25#define lexbor_str_check_size_arg_m(str, size, mraw, plus_len, return_fail) \
29 if (str->length > (SIZE_MAX - (plus_len))) \
30 return (return_fail); \
32 if ((str->length + (plus_len)) > (size)) { \
33 tmp = lexbor_mraw_realloc(mraw, str->data, \
34 (str->length + plus_len)); \
37 return (return_fail); \
40 str->data = (lxb_char_t *) tmp; \
223 str->
data[length] = 0x00;
lxb_inline size_t lexbor_mraw_data_size(void *data)
LXB_API lxb_char_t * lexbor_str_length_set_noi(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t length)
LXB_API const lxb_char_t * lexbor_str_data_find_uppercase(const lxb_char_t *data, size_t len)
LXB_API 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_API lexbor_str_t * lexbor_str_create(void)
lxb_inline lxb_char_t * lexbor_str_length_set(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t length)
LXB_API bool lexbor_str_data_nupcmp_right(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
LXB_API 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_API size_t lexbor_str_whitespace_from_end(lexbor_str_t *target)
LXB_API lxb_char_t * lexbor_str_append_one(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t data)
LXB_API bool lexbor_str_data_nlocmp_right(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
LXB_API void lexbor_str_data_to_uppercase(lxb_char_t *to, const lxb_char_t *from, size_t len)
lxb_inline size_t lexbor_str_size(lexbor_str_t *str)
LXB_API void lexbor_str_stay_only_whitespace(lexbor_str_t *target)
LXB_API lexbor_str_t * lexbor_str_destroy(lexbor_str_t *str, lexbor_mraw_t *mraw, bool destroy_obj)
LXB_API lxb_char_t * lexbor_str_init(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t size)
LXB_API bool lexbor_str_data_ncmp(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
LXB_API lxb_char_t * lexbor_str_data_noi(lexbor_str_t *str)
LXB_API lxb_char_t * lexbor_str_append_before(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *buff, size_t length)
LXB_API void lexbor_str_data_set_noi(lexbor_str_t *str, lxb_char_t *data)
LXB_API bool lexbor_str_data_ncmp_end(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
LXB_API lxb_char_t * lexbor_str_check_size(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t plus_len)
LXB_API void lexbor_str_data_to_lowercase(lxb_char_t *to, const lxb_char_t *from, size_t len)
LXB_API 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_API bool lexbor_str_data_casecmp(const lxb_char_t *first, const lxb_char_t *sec)
LXB_API lxb_char_t * lexbor_str_realloc(lexbor_str_t *str, lexbor_mraw_t *mraw, size_t new_size)
LXB_API size_t lexbor_str_size_noi(lexbor_str_t *str)
LXB_API size_t lexbor_str_length_noi(lexbor_str_t *str)
LXB_API const lxb_char_t * lexbor_str_data_find_lowercase(const lxb_char_t *data, size_t len)
LXB_API lxb_char_t * lexbor_str_append_lowercase(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *data, size_t length)
LXB_API size_t lexbor_str_whitespace_from_begin(lexbor_str_t *target)
LXB_API bool lexbor_str_data_cmp(const lxb_char_t *first, const lxb_char_t *sec)
LXB_API void lexbor_str_clean(lexbor_str_t *str)
lxb_inline void lexbor_str_data_set(lexbor_str_t *str, lxb_char_t *data)
LXB_API lxb_char_t * lexbor_str_init_append(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *data, size_t length)
LXB_API void lexbor_str_clean_all(lexbor_str_t *str)
LXB_API size_t lexbor_str_crop_whitespace_from_begin(lexbor_str_t *target)
LXB_API bool lexbor_str_data_ncasecmp_end(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
LXB_API lxb_char_t * lexbor_str_copy(lexbor_str_t *dest, const lexbor_str_t *target, lexbor_mraw_t *mraw)
LXB_API lxb_char_t * lexbor_str_append(lexbor_str_t *str, lexbor_mraw_t *mraw, const lxb_char_t *data, size_t length)
LXB_API bool lexbor_str_data_ncasecmp(const lxb_char_t *first, const lxb_char_t *sec, size_t size)
lxb_inline lxb_char_t * lexbor_str_data(lexbor_str_t *str)
LXB_API const lxb_char_t * lexbor_str_data_ncasecmp_first(const lxb_char_t *first, const lxb_char_t *sec, size_t sec_size)
LXB_API void lexbor_str_strip_collapse_whitespace(lexbor_str_t *target)
LXB_API bool lexbor_str_data_cmp_ws(const lxb_char_t *first, const lxb_char_t *sec)
lxb_inline size_t lexbor_str_length(lexbor_str_t *str)