Skip to content
  • Hanna Reitz's avatar
    dc3c871a
    ui/curses: Fix build with -m32 · dc3c871a
    Hanna Reitz authored
    
    
    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: b7b664a4
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    Reviewed-by: default avatarSamuel Thibault <samuel.thibault@ens-lyon.org>
    Message-id: 20190527142540.23255-1-mreitz@redhat.com
    Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
    dc3c871a
    ui/curses: Fix build with -m32
    Hanna Reitz authored
    
    
    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: b7b664a4
    Signed-off-by: default avatarMax Reitz <mreitz@redhat.com>
    Reviewed-by: default avatarSamuel Thibault <samuel.thibault@ens-lyon.org>
    Message-id: 20190527142540.23255-1-mreitz@redhat.com
    Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
Loading