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é <berra...@redhat.com> > 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 <langinfo.h> > > > | ^~~~~~~~~~~~ > > > compilation terminated. > > > > > > So we using g_get_codeset instead of nl_langinfo(CODESET) > > > > > > Signed-off-by: Yonggang Luo <luoyongg...@gmail.com> > > > Reviewed-by: Gerd Hoffmann <kra...@redhat.com> > > > --- > > > 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 <locale.h> > > > #include <wchar.h> > > > -#include <langinfo.h> > > > #include <iconv.h> > > > > > > #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 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 :|