diff --git a/xurses.c b/xurses.c index 16629e5..37154fd 100644 --- a/xurses.c +++ b/xurses.c @@ -68,8 +68,21 @@ static char * curses_format_character (char character, int colour, int effect) { character = ' '; } - curses_format [2] = (char) (effect % EFFECT_COUNT) + '0'; - curses_format [5] = (char) (colour % COLOUR_COUNT) + '0'; + colour %= COLOUR_COUNT; + effect %= EFFECT_COUNT; + + switch (effect) { + case EFFECT_NORMAL: effect = 0; break; + case EFFECT_BOLD: effect = 1; break; + case EFFECT_ITALIC: effect = 3; break; + case EFFECT_UNDERLINE: effect = 4; break; + case EFFECT_BLINK: effect = 5; break; + case EFFECT_REVERSE: effect = 7; break; + default: effect = 0; break; + } + + curses_format [2] = (char) effect + '0'; + curses_format [5] = (char) colour + '0'; curses_format [7] = character; /*log_out ("curses.log");*/