=================================================================== RCS file: /cvs/mandoc/test-wchar.c,v retrieving revision 1.1 retrieving revision 1.4 diff -u -p -r1.1 -r1.4 --- mandoc/test-wchar.c 2014/08/16 19:00:01 1.1 +++ mandoc/test-wchar.c 2016/07/31 09:29:13 1.4 @@ -1,4 +1,4 @@ -/* $Id: test-wchar.c,v 1.1 2014/08/16 19:00:01 schwarze Exp $ */ +/* $Id: test-wchar.c,v 1.4 2016/07/31 09:29:13 schwarze Exp $ */ /* * Copyright (c) 2014 Ingo Schwarze * @@ -15,6 +15,10 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#if defined(__linux__) || defined(__MINT__) +#define _GNU_SOURCE /* wcwidth() */ +#endif + #include #include #include @@ -28,32 +32,32 @@ main(void) if (setlocale(LC_ALL, "") == NULL) { fputs("setlocale(LC_ALL, \"\") failed\n", stderr); - return(1); + return 1; } - if (setlocale(LC_CTYPE, "en_US.UTF-8") == NULL) { - fputs("setlocale(LC_CTYPE, \"en_US.UTF-8\") failed\n", - stderr); - return(1); + if (setlocale(LC_CTYPE, UTF8_LOCALE) == NULL) { + fprintf(stderr, "setlocale(LC_CTYPE, \"%s\") failed\n", + UTF8_LOCALE); + return 1; } if (sizeof(wchar_t) < 4) { fprintf(stderr, "wchar_t is only %zu bytes\n", sizeof(wchar_t)); - return(1); + return 1; } if ((width = wcwidth(L' ')) != 1) { fprintf(stderr, "wcwidth(L' ') returned %d\n", width); - return(1); + return 1; } dup2(STDERR_FILENO, STDOUT_FILENO); wc = L'*'; - if (putwchar(wc) != wc) { + if (putwchar(wc) != (wint_t)wc) { fputs("bad putwchar return value\n", stderr); - return(1); + return 1; } - return(0); + return 0; }