Преглед изворни кода

* Simplified _manage_modifiers() a bit.

tags/v0.99.beta14
Sam Hocevar sam пре 18 година
родитељ
комит
e499f61ff9
1 измењених фајлова са 28 додато и 40 уклоњено
  1. +28
    -40
      cucul/import.c

+ 28
- 40
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(char c, 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);

static cucul_canvas_t *import_ansi(void const *data, unsigned int size)
{
@@ -390,15 +390,39 @@ int _parse_tuple(unsigned int *ret, unsigned char const *buffer, int size)



void _manage_modifiers(char c, 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)
{
switch(c)
static uint8_t const ansi2cucul[] =
{
CUCUL_COLOR_BLACK,
CUCUL_COLOR_RED,
CUCUL_COLOR_GREEN,
CUCUL_COLOR_BROWN,
CUCUL_COLOR_BLUE,
CUCUL_COLOR_MAGENTA,
CUCUL_COLOR_CYAN,
CUCUL_COLOR_LIGHTGRAY
};

if(i >= 30 && i <= 37)
*fg = ansi2cucul[i - 30];
else if(i == 39)
*fg = CUCUL_COLOR_DEFAULT;
else if(i >= 40 && i <= 47)
*bg = ansi2cucul[i - 40];
else if(i == 49)
*bg = CUCUL_COLOR_DEFAULT;
else if(i >= 90 && i <= 97)
*fg = ansi2cucul[i - 90] + 8;
else if(i >= 100 && i <= 107)
*bg = ansi2cucul[i - 100] + 8;
else switch(i)
{
case 0:
*fg = CUCUL_COLOR_DEFAULT;
*bg = CUCUL_COLOR_DEFAULT;
break;
case 1: // BOLD
case 1: /* BOLD */
if(*fg < 8)
*fg += 8;
if(*bg < 8)
@@ -422,42 +446,6 @@ void _manage_modifiers(char c, int *fg, int *bg, int *save_fg, int *save_bg)
*fg = *save_fg;
*bg = *save_bg;
break;
case 30: *fg = CUCUL_COLOR_BLACK; break;
case 31: *fg = CUCUL_COLOR_RED; break;
case 32: *fg = CUCUL_COLOR_GREEN; break;
case 33: *fg = CUCUL_COLOR_BROWN; break;
case 34: *fg = CUCUL_COLOR_BLUE; break;
case 35: *fg = CUCUL_COLOR_MAGENTA; break;
case 36: *fg = CUCUL_COLOR_CYAN; break;
case 37: *fg = CUCUL_COLOR_WHITE; break;
case 39: *fg = CUCUL_COLOR_LIGHTGRAY; break;
case 40: *bg = CUCUL_COLOR_BLACK; break;
case 41: *bg = CUCUL_COLOR_RED; break;
case 42: *bg = CUCUL_COLOR_GREEN; break;
case 43: *bg = CUCUL_COLOR_BROWN; break;
case 44: *bg = CUCUL_COLOR_BLUE; break;
case 45: *bg = CUCUL_COLOR_MAGENTA; break;
case 46: *bg = CUCUL_COLOR_CYAN; break;
case 47: *bg = CUCUL_COLOR_WHITE; break;
case 49: *bg = CUCUL_COLOR_BLACK; break;

case 90: *fg = CUCUL_COLOR_DARKGRAY; break;
case 91: *fg = CUCUL_COLOR_LIGHTRED; break;
case 92: *fg = CUCUL_COLOR_LIGHTGREEN; break;
case 93: *fg = CUCUL_COLOR_YELLOW; break;
case 94: *fg = CUCUL_COLOR_LIGHTBLUE; break;
case 95: *fg = CUCUL_COLOR_LIGHTMAGENTA; break;
case 96: *fg = CUCUL_COLOR_LIGHTCYAN; break;
case 97: *fg = CUCUL_COLOR_WHITE; break;
case 100: *bg = CUCUL_COLOR_DARKGRAY; break;
case 101: *bg = CUCUL_COLOR_LIGHTRED; break;
case 102: *bg = CUCUL_COLOR_LIGHTGREEN; break;
case 103: *bg = CUCUL_COLOR_YELLOW; break;
case 104: *bg = CUCUL_COLOR_LIGHTBLUE; break;
case 105: *bg = CUCUL_COLOR_LIGHTMAGENTA; break;
case 106: *bg = CUCUL_COLOR_LIGHTCYAN; break;
case 107: *bg = CUCUL_COLOR_WHITE; break;

default:
/* printf("Unknow option to 'm' %d (%c)\n", c, IS_ALPHA(c)?c:'.'); */
break;


Loading…
Откажи
Сачувај