Author: pulkomandy Date: 2010-08-16 16:28:12 +0200 (Mon, 16 Aug 2010) New Revision: 38141 Changeset: http://dev.haiku-os.org/changeset/38141 Modified: haiku/trunk/src/apps/terminal/TermParse.cpp haiku/trunk/src/apps/terminal/TermView.cpp Log: * 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 Modified: haiku/trunk/src/apps/terminal/TermParse.cpp =================================================================== --- haiku/trunk/src/apps/terminal/TermParse.cpp 2010-08-16 13:37:10 UTC (rev 38140) +++ haiku/trunk/src/apps/terminal/TermParse.cpp 2010-08-16 14:28:12 UTC (rev 38141) @@ -802,7 +802,6 @@ case CASE_SGR: { /* SGR */ - char xterm256_mode = 0; for (row = 0; row < nparam; ++row) { switch (param[row]) { case DEFAULT: @@ -810,11 +809,8 @@ 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 @@ 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 @@ 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; Modified: haiku/trunk/src/apps/terminal/TermView.cpp =================================================================== --- haiku/trunk/src/apps/terminal/TermView.cpp 2010-08-16 13:37:10 UTC (rev 38140) +++ haiku/trunk/src/apps/terminal/TermView.cpp 2010-08-16 14:28:12 UTC (rev 38141) @@ -298,30 +298,30 @@ {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