On Sat, Oct 3, 2020 at 12:42 AM Daniel P. Berrangé wrote: > > On Sat, Oct 03, 2020 at 12:38:50AM +0800, 罗勇刚(Yonggang Luo) wrote: > > On Fri, Oct 2, 2020 at 11:36 PM Daniel P. Berrangé > > wrote: > > > > > > On Fri, Oct 02, 2020 at 01:32:28AM +0800, Yonggang Luo wrote: > > > > msys2/mingw lacks the POSIX-required langinfo.h. > > > > > > > > gcc test.c -DNCURSES_WIDECHAR -I/mingw64/include/ncursesw -pipe > > -lncursesw -lgnurx -ltre -lintl -liconv > > > > test.c:4:10: fatal error: langinfo.h: No such file or directory > > > > 4 | #include > > > > | ^~~~~~~~~~~~ > > > > compilation terminated. > > > > > > > > So we using g_get_codeset instead of nl_langinfo(CODESET) > > > > > > > > Signed-off-by: Yonggang Luo > > > > Reviewed-by: Gerd Hoffmann > > > > --- > > > > ui/curses.c | 10 +++++----- > > > > 1 file changed, 5 insertions(+), 5 deletions(-) > > > > > > > > diff --git a/ui/curses.c b/ui/curses.c > > > > index a59b23a9cf..12bc682cf9 100644 > > > > --- a/ui/curses.c > > > > +++ b/ui/curses.c > > > > @@ -30,7 +30,6 @@ > > > > #endif > > > > #include > > > > #include > > > > -#include > > > > #include > > > > > > > > #include "qapi/error.h" > > > > @@ -526,6 +525,7 @@ static void font_setup(void) > > > > iconv_t nativecharset_to_ucs2; > > > > iconv_t font_conv; > > > > int i; > > > > + g_autofree gchar *local_codeset = g_get_codeset(); > > > > > > > > /* > > > > * Control characters are normally non-printable, but VGA does have > > > > @@ -566,14 +566,14 @@ static void font_setup(void) > > > > 0x25bc > > > > }; > > > > > > > > - ucs2_to_nativecharset = iconv_open(nl_langinfo(CODESET), "UCS-2"); > > > > + ucs2_to_nativecharset = iconv_open(local_codeset, "UCS-2"); > > > > if (ucs2_to_nativecharset == (iconv_t) -1) { > > > > fprintf(stderr, "Could not convert font glyphs from UCS-2: > > '%s'\n", > > > > strerror(errno)); > > > > exit(1); > > > > } > > > > > > > > - nativecharset_to_ucs2 = iconv_open("UCS-2", nl_langinfo(CODESET)); > > > > + nativecharset_to_ucs2 = iconv_open("UCS-2", local_codeset); > > > > if (nativecharset_to_ucs2 == (iconv_t) -1) { > > > > iconv_close(ucs2_to_nativecharset); > > > > fprintf(stderr, "Could not convert font glyphs to UCS-2: > > '%s'\n", > > > > @@ -581,7 +581,7 @@ static void font_setup(void) > > > > exit(1); > > > > } > > > > > > > > - font_conv = iconv_open(nl_langinfo(CODESET), font_charset); > > > > + font_conv = iconv_open(local_codeset, font_charset); > > > > if (font_conv == (iconv_t) -1) { > > > > iconv_close(ucs2_to_nativecharset); > > > > iconv_close(nativecharset_to_ucs2); > > > > @@ -602,7 +602,7 @@ static void font_setup(void) > > > > /* DEL */ > > > > convert_ucs(0x7F, 0x2302, ucs2_to_nativecharset); > > > > > > > > - if (strcmp(nl_langinfo(CODESET), "UTF-8")) { > > > > + if (strcmp(local_codeset, "UTF-8")) { > > > > > > If you're removing use of nl_langinfo / langinfo.h then you need > > > to also update configure, because it is checking for this function > > > and header file when validating curses library support. > > The change of configure are waiting for meson 0.56, so I didn't post that > > yet And this patch > > is a pre-request for msys2/mingw support and won't hurt other platform > > > > We are converting everything to meson, so I am not willing to change > > configure this time > > I don't see why the configure change has any dependancy on meson 0.56. > It just requires you to remove the mentioned header file and function > from the configure check. This patch needs to include that or it is > incomplete IMHO > Because the configure script change far more complicated than you imgaine. And I post that before > Regards, > Daniel > -- > |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| > |: https://libvirt.org -o- https://fstop138.berrange.com :| > |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :| > -- 此致 礼 罗勇刚 Yours sincerely, Yonggang Luo