Add string
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
/* 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
|
||||
|
||||
#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_cstring libcdsb_string_trim_cstring
|
||||
#define string_trim_char libcdsb_string_trim_char
|
||||
#define string_ltrim_cstring libcdsb_string_ltrim_cstring
|
||||
#define string_ltrim_char libcdsb_string_ltrim_char
|
||||
#define string_rtrim_cstring libcdsb_string_rtrim_cstring
|
||||
#define string_rtrim_char libcdsb_string_rtrim_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
|
||||
|
||||
#endif /* LIBCDSB_SRC_STRING_INCLUDE_H */
|
||||
Reference in New Issue
Block a user