forked from bartvdbraak/blender
BLI_string_utf8: add BLI_strncpy_utf8_rlen
This commit is contained in:
parent
e182d43d3e
commit
00197a668b
@ -34,6 +34,7 @@ extern "C" {
|
||||
#include "BLI_compiler_attrs.h"
|
||||
|
||||
char *BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL();
|
||||
size_t BLI_strncpy_utf8_rlen(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL();
|
||||
char *BLI_strncat_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL();
|
||||
int BLI_utf8_invalid_byte(const char *str, int length) ATTR_NONNULL();
|
||||
int BLI_utf8_invalid_strip(char *str, int length) ATTR_NONNULL();
|
||||
|
@ -209,6 +209,22 @@ char *BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t
|
||||
return r_dst;
|
||||
}
|
||||
|
||||
size_t BLI_strncpy_utf8_rlen(char *__restrict dst, const char *__restrict src, size_t maxncpy)
|
||||
{
|
||||
char *r_dst = dst;
|
||||
|
||||
BLI_assert(maxncpy != 0);
|
||||
|
||||
#ifdef DEBUG_STRSIZE
|
||||
memset(dst, 0xff, sizeof(*dst) * maxncpy);
|
||||
#endif
|
||||
|
||||
/* note: currently we don't attempt to deal with invalid utf8 chars */
|
||||
BLI_STR_UTF8_CPY(dst, src, maxncpy);
|
||||
|
||||
return (size_t)(dst - r_dst);
|
||||
}
|
||||
|
||||
char *BLI_strncat_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy)
|
||||
{
|
||||
while (*dst && maxncpy > 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user