[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 1/5] ui/curses: Fix build with -m32
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL 1/5] ui/curses: Fix build with -m32 |
Date: |
Fri, 7 Jun 2019 15:18:57 +0200 |
From: Max Reitz <address@hidden>
wchar_t may resolve to be an unsigned long on 32-bit architectures.
Using the %x conversion specifier will then give a compiler warning:
ui/curses.c: In function ‘get_ucs’:
ui/curses.c:492:49: error: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 3 has type ‘wchar_t’ {aka ‘long int’} [-Werror=format=]
492 | fprintf(stderr, "Could not convert 0x%04x "
| ~~~^
| |
| unsigned int
| %04lx
493 | "from wchar_t to a multibyte character: %s\n",
494 | wch, strerror(errno));
| ~~~
| |
| wchar_t {aka long int}
ui/curses.c:504:49: error: format ‘%x’ expects argument of type ‘unsigned int’,
but argument 3 has type ‘wchar_t’ {aka ‘long int’} [-Werror=format=]
504 | fprintf(stderr, "Could not convert 0x%04x "
| ~~~^
| |
| unsigned int
| %04lx
505 | "from a multibyte character to UCS-2 : %s\n",
506 | wch, strerror(errno));
| ~~~
| |
| wchar_t {aka long int}
Fix this by casting the wchar_t value to an unsigned long and using %lx
as the conversion specifier.
Fixes: b7b664a4fe9a955338f2e11a0f7433b29c8cbad0
Signed-off-by: Max Reitz <address@hidden>
Reviewed-by: Samuel Thibault <address@hidden>
Message-id: address@hidden
Signed-off-by: Gerd Hoffmann <address@hidden>
---
ui/curses.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/ui/curses.c b/ui/curses.c
index 1f3fcabb004b..e9319eb8ae19 100644
--- a/ui/curses.c
+++ b/ui/curses.c
@@ -489,9 +489,9 @@ static uint16_t get_ucs(wchar_t wch, iconv_t conv)
memset(&ps, 0, sizeof(ps));
ret = wcrtomb(mbch, wch, &ps);
if (ret == -1) {
- fprintf(stderr, "Could not convert 0x%04x "
+ fprintf(stderr, "Could not convert 0x%04lx "
"from wchar_t to a multibyte character: %s\n",
- wch, strerror(errno));
+ (unsigned long)wch, strerror(errno));
return 0xFFFD;
}
@@ -501,9 +501,9 @@ static uint16_t get_ucs(wchar_t wch, iconv_t conv)
such = sizeof(uch);
if (iconv(conv, &pmbch, &smbch, &puch, &such) == (size_t) -1) {
- fprintf(stderr, "Could not convert 0x%04x "
+ fprintf(stderr, "Could not convert 0x%04lx "
"from a multibyte character to UCS-2 : %s\n",
- wch, strerror(errno));
+ (unsigned long)wch, strerror(errno));
return 0xFFFD;
}
--
2.18.1
- [Qemu-devel] [PULL 0/5] Ui 20190607 patches, Gerd Hoffmann, 2019/06/07
- [Qemu-devel] [PULL 4/5] egl-helpers: add modifier support to egl_get_fd_for_texture()., Gerd Hoffmann, 2019/06/07
- [Qemu-devel] [PULL 3/5] vfio/display: set dmabuf modifier field, Gerd Hoffmann, 2019/06/07
- [Qemu-devel] [PULL 1/5] ui/curses: Fix build with -m32,
Gerd Hoffmann <=
- [Qemu-devel] [PULL 2/5] console: add dmabuf modifier field., Gerd Hoffmann, 2019/06/07
- [Qemu-devel] [PULL 5/5] egl-helpers: add modifier support to egl_dmabuf_import_texture(), Gerd Hoffmann, 2019/06/07
- Re: [Qemu-devel] [PULL 0/5] Ui 20190607 patches, Peter Maydell, 2019/06/07