diff options
author | mano-wii <germano.costa@ig.com.br> | 2019-11-22 18:26:54 +0300 |
---|---|---|
committer | mano-wii <germano.costa@ig.com.br> | 2019-11-22 18:27:34 +0300 |
commit | 177dfc6384b926dd19e3b7e98a995ccb4da9167c (patch) | |
tree | 865abe9f707bee039a506bfc17cb4cff218bd6c6 /extern/wcwidth/wcwidth.h | |
parent | 1304cee920c5f01fd9f0474ea782db61ac031403 (diff) |
Fix T71273: Bad encoding of utf-8 for Text objects
`BLI_strncpy_wchar_from_utf8` internally assumes `wchar_t` is 32 bits
which is not the case on windows.
The solution is to replace `wchar_t` with `char32_t`.
Thanks to @robbott for compatibility on macOS.
Differential Revision: https://developer.blender.org/D6198
Diffstat (limited to 'extern/wcwidth/wcwidth.h')
-rw-r--r-- | extern/wcwidth/wcwidth.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/extern/wcwidth/wcwidth.h b/extern/wcwidth/wcwidth.h index 9ae6ec9ef14..d87eaf20695 100644 --- a/extern/wcwidth/wcwidth.h +++ b/extern/wcwidth/wcwidth.h @@ -20,11 +20,19 @@ #ifndef __WCWIDTH_H__ #define __WCWIDTH_H__ -#include <wchar.h> +#ifndef __cplusplus +# if defined(__APPLE__) +/* The <uchar.h> standard header is missing on macOS. */ +#include <stddef.h> +typedef unsigned int char32_t; +# else +# include <uchar.h> +# endif +#endif -int mk_wcwidth(wchar_t ucs); -int mk_wcswidth(const wchar_t *pwcs, size_t n); -int mk_wcwidth_cjk(wchar_t ucs); -int mk_wcswidth_cjk(const wchar_t *pwcs, size_t n); +int mk_wcwidth(char32_t ucs); +int mk_wcswidth(const char32_t *pwcs, size_t n); +int mk_wcwidth_cjk(char32_t ucs); +int mk_wcswidth_cjk(const char32_t *pwcs, size_t n); #endif |