diff options
Diffstat (limited to 'char/test-wchar.c')
-rw-r--r-- | char/test-wchar.c | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/char/test-wchar.c b/char/test-wchar.c new file mode 100644 index 0000000..ab37604 --- /dev/null +++ b/char/test-wchar.c @@ -0,0 +1,31 @@ +#define _POSIX_C_SOURCE 200809L +#define _XOPEN_SOURCE 700 + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <locale.h> +#include <wchar.h> + +int main () { + setlocale (LC_ALL, ""); + + char *line = NULL; + ssize_t str_len = getline (&line, &(size_t){ 0 }, stdin); + + mbstate_t mbs; + wchar_t wc; + size_t mbrlen_result; + int wcwidth_result; + + memset (&mbs, 0, sizeof (mbs)); + mbrlen_result = mbrlen (line, str_len, &mbs); + + memset (&mbs, 0, sizeof (mbs)); + mbrtowc (&wc, line, str_len, &mbs); + wcwidth_result = wcwidth (wc); + + printf ("mbrlen = %zu, wcwidth = %d\n", mbrlen_result, wcwidth_result); + free (line); + return 0; +} |