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 New Issue
Block a user