version 1.101, 2016/03/02 15:36:02 |
version 1.102, 2016/07/15 00:42:56 |
|
|
(*i)++; |
(*i)++; |
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|GRID_FLAG_FGRGB); |
|
gc->fg = 8; |
gc->fg = 8; |
} else if (fgbg == 48) { |
else if (fgbg == 48) |
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->fg = c | COLOUR_FLAG_256; |
gc->flags &= ~GRID_FLAG_FGRGB; |
else if (fgbg == 48) |
gc->fg = c; |
gc->bg = c | COLOUR_FLAG_256; |
} else if (fgbg == 48) { |
|
gc->flags |= GRID_FLAG_BG256; |
|
gc->flags &= ~GRID_FLAG_BGRGB; |
|
gc->bg = c; |
|
} |
|
} |
} |
} |
} |
|
|
|
|
if (b == -1 || b > 255) |
if (b == -1 || b > 255) |
return; |
return; |
|
|
if (fgbg == 38) { |
if (fgbg == 38) |
gc->flags &= ~GRID_FLAG_FG256; |
gc->fg = colour_join_rgb(r, g, b); |
gc->flags |= GRID_FLAG_FGRGB; |
else if (fgbg == 48) |
gc->fg_rgb.r = r; |
gc->bg = colour_join_rgb(r, g, b); |
gc->fg_rgb.g = g; |
|
gc->fg_rgb.b = b; |
|
} else if (fgbg == 48) { |
|
gc->flags &= ~GRID_FLAG_BG256; |
|
gc->flags |= GRID_FLAG_BGRGB; |
|
gc->bg_rgb.r = r; |
|
gc->bg_rgb.g = g; |
|
gc->bg_rgb.b = b; |
|
} |
|
} |
} |
|
|
/* Handle CSI SGR. */ |
/* Handle CSI SGR. */ |
|
|
case 35: |
case 35: |
case 36: |
case 36: |
case 37: |
case 37: |
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|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|GRID_FLAG_BGRGB); |
|
gc->bg = n - 40; |
gc->bg = n - 40; |
break; |
break; |
case 49: |
case 49: |
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|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|GRID_FLAG_BGRGB); |
|
gc->bg = n - 10; |
gc->bg = n - 10; |
break; |
break; |
} |
} |