Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenlib/BLI_string_utf8.h
| Show All 19 Lines | |||||
| /** \file | /** \file | ||||
| * \ingroup bli | * \ingroup bli | ||||
| */ | */ | ||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||
| extern "C" { | extern "C" { | ||||
| #endif | #endif | ||||
| typedef unsigned int BLI_unicode; | |||||
| #include "BLI_compiler_attrs.h" | #include "BLI_compiler_attrs.h" | ||||
| char *BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) | char *BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) | ||||
| ATTR_NONNULL(); | ATTR_NONNULL(); | ||||
| size_t BLI_strncpy_utf8_rlen(char *__restrict dst, const char *__restrict src, size_t maxncpy) | size_t BLI_strncpy_utf8_rlen(char *__restrict dst, const char *__restrict src, size_t maxncpy) | ||||
| ATTR_NONNULL(); | ATTR_NONNULL(); | ||||
| char *BLI_strncat_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) | char *BLI_strncat_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) | ||||
| ATTR_NONNULL(); | ATTR_NONNULL(); | ||||
| ptrdiff_t BLI_utf8_invalid_byte(const char *str, size_t length) ATTR_NONNULL(); | ptrdiff_t BLI_utf8_invalid_byte(const char *str, size_t length) ATTR_NONNULL(); | ||||
| int BLI_utf8_invalid_strip(char *str, size_t length) ATTR_NONNULL(); | int BLI_utf8_invalid_strip(char *str, size_t length) ATTR_NONNULL(); | ||||
| /* warning, can return -1 on bad chars */ | /* warning, can return -1 on bad chars */ | ||||
| int BLI_str_utf8_size(const char *p) ATTR_NONNULL(); | int BLI_str_utf8_size(const char *p) ATTR_NONNULL(); | ||||
| int BLI_str_utf8_size_safe(const char *p) ATTR_NONNULL(); | int BLI_str_utf8_size_safe(const char *p) ATTR_NONNULL(); | ||||
| /* copied from glib */ | /* copied from glib */ | ||||
| unsigned int BLI_str_utf8_as_unicode(const char *p) ATTR_NONNULL(); | BLI_unicode BLI_str_utf8_as_unicode(const char *p) ATTR_NONNULL(); | ||||
| unsigned int BLI_str_utf8_as_unicode_and_size(const char *__restrict p, size_t *__restrict index) | BLI_unicode BLI_str_utf8_as_unicode_and_size(const char *__restrict p, size_t *__restrict index) | ||||
| ATTR_NONNULL(); | ATTR_NONNULL(); | ||||
| unsigned int BLI_str_utf8_as_unicode_and_size_safe(const char *__restrict p, | BLI_unicode BLI_str_utf8_as_unicode_and_size_safe(const char *__restrict p, | ||||
| size_t *__restrict index) ATTR_NONNULL(); | size_t *__restrict index) ATTR_NONNULL(); | ||||
| unsigned int BLI_str_utf8_as_unicode_step(const char *__restrict p, size_t *__restrict index) | BLI_unicode BLI_str_utf8_as_unicode_step(const char *__restrict p, size_t *__restrict index) | ||||
| ATTR_NONNULL(); | ATTR_NONNULL(); | ||||
| size_t BLI_str_utf8_from_unicode(unsigned int c, char *outbuf); | size_t BLI_str_utf8_from_unicode(BLI_unicode c, char *outbuf); | ||||
| size_t BLI_str_utf8_as_unicode_array(BLI_unicode *__restrict dst_w, | |||||
| const char *__restrict src_c, | |||||
| const size_t maxncpy) ATTR_NONNULL(); | |||||
| size_t BLI_unicode_array_as_str_utf8(char *__restrict dst, | |||||
| const BLI_unicode *__restrict src, | |||||
| const size_t maxncpy) ATTR_NONNULL(); | |||||
| size_t BLI_unicode_array_utf8_len(const BLI_unicode *src) ATTR_NONNULL(); | |||||
| char *BLI_str_find_prev_char_utf8(const char *str, const char *p) ATTR_NONNULL(); | char *BLI_str_find_prev_char_utf8(const char *str, const char *p) ATTR_NONNULL(); | ||||
| char *BLI_str_find_next_char_utf8(const char *p, const char *end) ATTR_NONNULL(1); | char *BLI_str_find_next_char_utf8(const char *p, const char *end) ATTR_NONNULL(1); | ||||
| char *BLI_str_prev_char_utf8(const char *p) ATTR_NONNULL(); | char *BLI_str_prev_char_utf8(const char *p) ATTR_NONNULL(); | ||||
| /* wchar_t functions, copied from blenders own font.c originally */ | /* wchar_t functions, copied from blenders own font.c originally */ | ||||
| size_t BLI_wstrlen_utf8(const wchar_t *src) ATTR_NONNULL(); | size_t BLI_wstrlen_utf8(const wchar_t *src) ATTR_NONNULL(); | ||||
| size_t BLI_strlen_utf8_ex(const char *strc, size_t *r_len_bytes) ATTR_NONNULL(); | size_t BLI_strlen_utf8_ex(const char *strc, size_t *r_len_bytes) ATTR_NONNULL(); | ||||
| Show All 11 Lines | |||||
| /* count columns that character/string occupies, based on wcwidth.c */ | /* count columns that character/string occupies, based on wcwidth.c */ | ||||
| int BLI_wcwidth(wchar_t ucs); | int BLI_wcwidth(wchar_t ucs); | ||||
| int BLI_wcswidth(const wchar_t *pwcs, size_t n) ATTR_NONNULL(); | int BLI_wcswidth(const wchar_t *pwcs, size_t n) ATTR_NONNULL(); | ||||
| /* warning, can return -1 on bad chars */ | /* warning, can return -1 on bad chars */ | ||||
| int BLI_str_utf8_char_width(const char *p) ATTR_NONNULL(); | int BLI_str_utf8_char_width(const char *p) ATTR_NONNULL(); | ||||
| int BLI_str_utf8_char_width_safe(const char *p) ATTR_NONNULL(); | int BLI_str_utf8_char_width_safe(const char *p) ATTR_NONNULL(); | ||||
| size_t BLI_str_partition_utf8(const char *str, | size_t BLI_str_partition_utf8(const char *str, | ||||
| const unsigned int delim[], | const BLI_unicode delim[], | ||||
| const char **sep, | const char **sep, | ||||
| const char **suf) ATTR_NONNULL(); | const char **suf) ATTR_NONNULL(); | ||||
| size_t BLI_str_rpartition_utf8(const char *str, | size_t BLI_str_rpartition_utf8(const char *str, | ||||
| const unsigned int delim[], | const BLI_unicode delim[], | ||||
| const char **sep, | const char **sep, | ||||
| const char **suf) ATTR_NONNULL(); | const char **suf) ATTR_NONNULL(); | ||||
| size_t BLI_str_partition_ex_utf8(const char *str, | size_t BLI_str_partition_ex_utf8(const char *str, | ||||
| const char *end, | const char *end, | ||||
| const unsigned int delim[], | const BLI_unicode delim[], | ||||
| const char **sep, | const char **sep, | ||||
| const char **suf, | const char **suf, | ||||
| const bool from_right) ATTR_NONNULL(1, 3, 4, 5); | const bool from_right) ATTR_NONNULL(1, 3, 4, 5); | ||||
| int BLI_str_utf8_offset_to_index(const char *str, int offset); | int BLI_str_utf8_offset_to_index(const char *str, int offset); | ||||
| int BLI_str_utf8_offset_from_index(const char *str, int index); | int BLI_str_utf8_offset_from_index(const char *str, int index); | ||||
| int BLI_str_utf8_offset_to_column(const char *str, int offset); | int BLI_str_utf8_offset_to_column(const char *str, int offset); | ||||
| int BLI_str_utf8_offset_from_column(const char *str, int column); | int BLI_str_utf8_offset_from_column(const char *str, int column); | ||||
| Show All 18 Lines | |||||