* Rewrite the parsing of xterm extension so that it doesn't touch ANSI standard things

* Some adjustements to the color table to have less duplicate colors


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38141 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Adrien Destugues
2010-08-16 14:28:12 +00:00
parent a20769b39c
commit 59c2d19e1e
2 changed files with 43 additions and 41 deletions
+21 -19
View File
@@ -802,7 +802,6 @@ TermParse::EscParse()
case CASE_SGR:
{
/* SGR */
char xterm256_mode = 0;
for (row = 0; row < nparam; ++row) {
switch (param[row]) {
case DEFAULT:
@@ -810,11 +809,8 @@ TermParse::EscParse()
fAttr = 0;
break;
case 5: /* Bold or validation of xterm 256 col*/
if (xterm256_mode)
xterm256_mode |= 4;
// falthrough
case 1: /* Bold */
case 5:
fAttr |= BOLD;
break;
@@ -852,8 +848,17 @@ TermParse::EscParse()
break;
case 38:
xterm256_mode = 1;
{
if (nparam != 3 || param[1] != 5)
break;
fAttr &= ~FORECOLOR;
fAttr |= FORECOLORED(param[2]);
fAttr |= FORESET;
row = nparam; // force exit of the parsing
break;
}
case 39:
fAttr &= ~FORESET;
@@ -873,25 +878,22 @@ TermParse::EscParse()
break;
case 48:
xterm256_mode = 2;
{
if (nparam != 3 || param[1] != 5)
break;
fAttr &= ~BACKCOLOR;
fAttr |= BACKCOLORED(param[2]);
fAttr |= BACKSET;
row = nparam; // force exit of the parsing
break;
}
case 49:
fAttr &= ~BACKSET;
break;
}
if (xterm256_mode == 5) {
fAttr &= ~FORECOLOR;
fAttr |= FORECOLORED(param[row]);
fAttr |= FORESET;
}
if (xterm256_mode == 6) {
fAttr &= ~BACKCOLOR;
fAttr |= BACKCOLORED(param[row]);
fAttr |= BACKSET;
}
}
parsestate = groundtable;
break;
+22 -22
View File
@@ -298,30 +298,30 @@ const static rgb_color kTermColorTable[256] = {
{255, 255, 204, 0},
{255, 255, 255, 0},
{ 0, 0, 0, 0},
{ 11, 11, 11, 0},
{ 22, 22, 22, 0},
{ 33, 33, 33, 0},
{ 44, 44, 44, 0},
{ 55, 55, 55, 0},
{ 66, 66, 66, 0},
{ 77, 77, 77, 0},
{ 88, 88, 88, 0},
{ 99, 99, 99, 0},
{ 10, 10, 10, 0},
{ 20, 20, 20, 0},
{ 30, 30, 30, 0},
{ 40, 40, 40, 0},
{ 50, 50, 50, 0},
{ 60, 60, 60, 0},
{ 70, 70, 70, 0},
{ 80, 80, 80, 0},
{ 90, 90, 90, 0},
{100, 100, 100, 0},
{110, 110, 110, 0},
{121, 121, 121, 0},
{132, 132, 132, 0},
{143, 143, 143, 0},
{154, 154, 154, 0},
{165, 165, 165, 0},
{176, 176, 176, 0},
{187, 187, 187, 0},
{198, 198, 198, 0},
{209, 209, 209, 0},
{120, 120, 120, 0},
{130, 130, 130, 0},
{140, 140, 140, 0},
{150, 150, 150, 0},
{160, 160, 160, 0},
{170, 170, 170, 0},
{180, 180, 180, 0},
{190, 190, 190, 0},
{200, 200, 200, 0},
{210, 210, 210, 0},
{220, 220, 220, 0},
{231, 231, 231, 0},
{242, 242, 242, 0},
{253, 253, 253, 0},
{230, 230, 230, 0},
{240, 240, 240, 0},
};
#define ROWS_DEFAULT 25