version 1.99, 2016/01/19 15:59:12 |
version 1.100, 2016/01/29 11:13:56 |
|
|
c = input_get(ictx, *i, 0, -1); |
c = input_get(ictx, *i, 0, -1); |
if (c == -1) { |
if (c == -1) { |
if (fgbg == 38) { |
if (fgbg == 38) { |
gc->flags &= ~GRID_FLAG_FG256; |
gc->flags &= ~(GRID_FLAG_FG256|GRID_FLAG_FGRGB); |
gc->fg = 8; |
gc->fg = 8; |
} else if (fgbg == 48) { |
} else if (fgbg == 48) { |
gc->flags &= ~GRID_FLAG_BG256; |
gc->flags &= ~(GRID_FLAG_BG256|GRID_FLAG_BGRGB); |
gc->bg = 8; |
gc->bg = 8; |
} |
} |
} else { |
} else { |
if (fgbg == 38) { |
if (fgbg == 38) { |
gc->flags |= GRID_FLAG_FG256; |
gc->flags |= GRID_FLAG_FG256; |
|
gc->flags &= ~GRID_FLAG_FGRGB; |
gc->fg = c; |
gc->fg = c; |
} else if (fgbg == 48) { |
} else if (fgbg == 48) { |
gc->flags |= GRID_FLAG_BG256; |
gc->flags |= GRID_FLAG_BG256; |
|
gc->flags &= ~GRID_FLAG_BGRGB; |
gc->bg = c; |
gc->bg = c; |
} |
} |
} |
} |
|
|
input_csi_dispatch_sgr_rgb(struct input_ctx *ictx, int fgbg, u_int *i) |
input_csi_dispatch_sgr_rgb(struct input_ctx *ictx, int fgbg, u_int *i) |
{ |
{ |
struct grid_cell *gc = &ictx->cell.cell; |
struct grid_cell *gc = &ictx->cell.cell; |
int c, r, g, b; |
int r, g, b; |
|
|
(*i)++; |
(*i)++; |
r = input_get(ictx, *i, 0, -1); |
r = input_get(ictx, *i, 0, -1); |
|
|
if (b == -1 || b > 255) |
if (b == -1 || b > 255) |
return; |
return; |
|
|
c = colour_find_rgb(r, g, b); |
|
if (fgbg == 38) { |
if (fgbg == 38) { |
gc->flags |= GRID_FLAG_FG256; |
gc->flags &= ~GRID_FLAG_FG256; |
gc->fg = c; |
gc->flags |= GRID_FLAG_FGRGB; |
|
gc->fg_rgb.r = r; |
|
gc->fg_rgb.g = g; |
|
gc->fg_rgb.b = b; |
} else if (fgbg == 48) { |
} else if (fgbg == 48) { |
gc->flags |= GRID_FLAG_BG256; |
gc->flags &= ~GRID_FLAG_BG256; |
gc->bg = c; |
gc->flags |= GRID_FLAG_BGRGB; |
|
gc->bg_rgb.r = r; |
|
gc->bg_rgb.g = g; |
|
gc->bg_rgb.b = b; |
} |
} |
} |
} |
|
|
|
|
case 35: |
case 35: |
case 36: |
case 36: |
case 37: |
case 37: |
gc->flags &= ~GRID_FLAG_FG256; |
gc->flags &= ~(GRID_FLAG_FG256|GRID_FLAG_FGRGB); |
gc->fg = n - 30; |
gc->fg = n - 30; |
break; |
break; |
case 39: |
case 39: |
gc->flags &= ~GRID_FLAG_FG256; |
gc->flags &= ~(GRID_FLAG_FG256|GRID_FLAG_FGRGB); |
gc->fg = 8; |
gc->fg = 8; |
break; |
break; |
case 40: |
case 40: |
|
|
case 45: |
case 45: |
case 46: |
case 46: |
case 47: |
case 47: |
gc->flags &= ~GRID_FLAG_BG256; |
gc->flags &= ~(GRID_FLAG_BG256|GRID_FLAG_BGRGB); |
gc->bg = n - 40; |
gc->bg = n - 40; |
break; |
break; |
case 49: |
case 49: |
gc->flags &= ~GRID_FLAG_BG256; |
gc->flags &= ~(GRID_FLAG_BG256|GRID_FLAG_BGRGB); |
gc->bg = 8; |
gc->bg = 8; |
break; |
break; |
case 90: |
case 90: |
|
|
case 95: |
case 95: |
case 96: |
case 96: |
case 97: |
case 97: |
gc->flags &= ~GRID_FLAG_FG256; |
gc->flags &= ~(GRID_FLAG_FG256|GRID_FLAG_FGRGB); |
gc->fg = n; |
gc->fg = n; |
break; |
break; |
case 100: |
case 100: |
|
|
case 105: |
case 105: |
case 106: |
case 106: |
case 107: |
case 107: |
gc->flags &= ~GRID_FLAG_BG256; |
gc->flags &= ~(GRID_FLAG_BG256|GRID_FLAG_BGRGB); |
gc->bg = n - 10; |
gc->bg = n - 10; |
break; |
break; |
} |
} |