libcdsb/src/string/include.h

64 lines
2.2 KiB
C

/* This software is licensed by the MIT License, see LICENSE file */
/* Copyright © 2022 Gregory Lirent */
#include "../../modules/libunic/include.h"
#include "../../include/extra/string.h"
#include "../__internal/include.h"
#ifndef LIBCDSB_SRC_STRING_INCLUDE_H
#define LIBCDSB_SRC_STRING_INCLUDE_H
ainline(char* next_char(char* s)) {
int cs = charsize(s);
if (cs) return s + cs;
return ++s;
}
ainline(char* prev_char(char* s)) {
if (*(--s)&0x80) {
char* p = s;
while ((*(--p)&0xc0) == 0x80) {}
if (charsize(p) == s - p)
return p;
}
return s;
}
extern void libcdsb_string_replace(str_t* x, char* p, size_t n, const char* v, size_t vn);
#ifdef string_replace
#undef string_replace
#endif
#ifdef string_trim_spaces
#undef string_trim_spaces
#endif
#define string_replace libcdsb_string_replace
#define string_indexof_cstring libcdsb_string_indexof_cstring
#define string_indexof_char libcdsb_string_indexof_char
#define string_count_cstring libcdsb_string_count_cstring
#define string_count_char libcdsb_string_count_char
#define string_concat_cstring libcdsb_string_concat_cstring
#define string_concat_char libcdsb_string_concat_char
#define string_trim_spaces libcdsb_string_trim_spaces
#define string_trim_cstring libcdsb_string_trim_cstring
#define string_trim_char libcdsb_string_trim_char
#define string_replace_cstring_cstring libcdsb_string_replace_cstring_cstring
#define string_replace_cstring_char libcdsb_string_replace_cstring_char
#define string_replace_char_cstring libcdsb_string_replace_char_cstring
#define string_replace_char_char libcdsb_string_replace_char_char
#define string_split_string libcdsb_string_split_string
#define string_split_cstring libcdsb_string_split_cstring
#define string_split_char libcdsb_string_split_char
#define string_replace_cstring_cstring_r libcdsb_string_replace_r_cstring_cstring
#define string_replace_cstring_char_r libcdsb_string_replace_r_cstring_char
#define string_replace_char_cstring_r libcdsb_string_replace_r_char_cstring
#endif /* LIBCDSB_SRC_STRING_INCLUDE_H */