mirror of
https://gitlab.com/qemu-project/qemu
synced 2024-09-06 01:43:39 +00:00
curses: fix garbling when chtype != long
Qemu currently assumes that chtype is typedef'd to unsigned long, but this is not necessarily the case (ncurses, for instance, can configure this at build-time). This patch uses the predefined chtype if qemu is configured for curses support and falls back to unsigned long otherwise. Fixes bug 568614. Signed-off-by: Devin J. Pohly <djpohly+launchpad@gmail.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
This commit is contained in:
parent
3b86b13ab0
commit
df00bed0fa
|
@ -343,6 +343,7 @@ static const uint32_t dmask4[4] = {
|
|||
|
||||
static uint32_t color_table[2][8];
|
||||
|
||||
#ifndef CONFIG_CURSES
|
||||
enum color_names {
|
||||
COLOR_BLACK = 0,
|
||||
COLOR_RED = 1,
|
||||
|
@ -353,6 +354,7 @@ enum color_names {
|
|||
COLOR_CYAN = 6,
|
||||
COLOR_WHITE = 7
|
||||
};
|
||||
#endif
|
||||
|
||||
static const uint32_t color_table_rgb[2][8] = {
|
||||
{ /* dark */
|
||||
|
|
|
@ -328,7 +328,12 @@ static inline int ds_get_bytes_per_pixel(DisplayState *ds)
|
|||
return ds->surface->pf.bytes_per_pixel;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_CURSES
|
||||
#include <curses.h>
|
||||
typedef chtype console_ch_t;
|
||||
#else
|
||||
typedef unsigned long console_ch_t;
|
||||
#endif
|
||||
static inline void console_write_ch(console_ch_t *dest, uint32_t ch)
|
||||
{
|
||||
if (!(ch & 0xff))
|
||||
|
|
Loading…
Reference in a new issue