diff options
author | Devin J. Pohly <djpohly+launchpad@gmail.com> | 2011-09-07 15:44:36 -0400 |
---|---|---|
committer | Anthony Liguori <aliguori@us.ibm.com> | 2011-09-09 12:58:16 -0500 |
commit | df00bed0fa30a6f5712456e7add783e470c534c9 (patch) | |
tree | 059a74bafa5d495988647ba3b4ef36d2b0bed684 | |
parent | 3b86b13ab07407fc8c6ac0efbd717fe51df1cad7 (diff) |
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>
-rw-r--r-- | console.c | 2 | ||||
-rw-r--r-- | console.h | 5 |
2 files changed, 7 insertions, 0 deletions
@@ -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)) |