From c3bbd62830271ecfce6ed5600a23b24ba8f054db Mon Sep 17 00:00:00 2001 From: Sam Hocevar Date: Tue, 25 Apr 2006 18:16:42 +0000 Subject: [PATCH] * Really fixed bold in ANSI loader, and removed dead code. --- cucul/import.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/cucul/import.c b/cucul/import.c index 8d9d5ae..675bee3 100644 --- a/cucul/import.c +++ b/cucul/import.c @@ -199,7 +199,7 @@ static cucul_canvas_t *import_text(void const *data, unsigned int size) #define END_TUP 0x1337 unsigned char _get_ansi_command(unsigned char const *buffer, int size); int _parse_tuple(unsigned int *ret, unsigned char const *buffer, int size); -void _manage_modifiers(int i, int *fg, int *bg, int *save_fg, int *save_bg); +void _manage_modifiers(int i, int *fg, int *bg, int *save_fg, int *save_bg, int *bold); static cucul_canvas_t *import_ansi(void const *data, unsigned int size) { @@ -212,10 +212,11 @@ static cucul_canvas_t *import_ansi(void const *data, unsigned int size) int x = 0, y = 0, width = 80, height = 25; int save_x = 0, save_y = 0; unsigned int j, add = 0; - int fg, bg, save_fg, save_bg; + int fg, bg, save_fg, save_bg, bold; fg = save_fg = CUCUL_COLOR_LIGHTGRAY; bg = save_bg = CUCUL_COLOR_BLACK; + bold = 0; cv = cucul_create_canvas(width, height); @@ -284,7 +285,11 @@ static cucul_canvas_t *import_ansi(void const *data, unsigned int size) break; case 'm': for(j = 0; j < count; j++) - _manage_modifiers(tuple[j], &fg, &bg, &save_fg, &save_bg); + _manage_modifiers(tuple[j], &fg, &bg, &save_fg, &save_bg, &bold); + if(bold && fg < 8) + fg += 8; + if(bold && bg < 8) + bg += 8; cucul_set_color(cv, fg, bg); break; default: @@ -305,14 +310,7 @@ static cucul_canvas_t *import_ansi(void const *data, unsigned int size) } else { - if((buffer[i] >= 0x20) || (buffer[i] <= 0x7E)) - { - _cucul_putchar32(cv, x, y,_cucul_cp437_to_utf32(buffer[i])); - - // cucul_putchar(cv, x, y, buffer[i]); - } - else - cucul_putchar(cv, x, y, '?'); + _cucul_putchar32(cv, x, y,_cucul_cp437_to_utf32(buffer[i])); x++; } } @@ -390,7 +388,7 @@ int _parse_tuple(unsigned int *ret, unsigned char const *buffer, int size) -void _manage_modifiers(int i, int *fg, int *bg, int *save_fg, int *save_bg) +void _manage_modifiers(int i, int *fg, int *bg, int *save_fg, int *save_bg, int *bold) { static uint8_t const ansi2cucul[] = { @@ -421,12 +419,10 @@ void _manage_modifiers(int i, int *fg, int *bg, int *save_fg, int *save_bg) case 0: *fg = CUCUL_COLOR_DEFAULT; *bg = CUCUL_COLOR_DEFAULT; + *bold = 0; break; case 1: /* BOLD */ - if(*fg < 8) - *fg += 8; - if(*bg < 8) - *bg += 8; + *bold = 1; break; case 4: // Underline break;