From 2b67e9a3a72acffbd4636d0825e7948c738716fb Mon Sep 17 00:00:00 2001 From: Adrien Destugues Date: Wed, 9 Jan 2013 19:56:26 +0100 Subject: [PATCH] Merge changes from Fonzoterm : - Report the terminal as xterm-color instead of just xterm, since we handle that fine. - Tweak the SGR handler a bit to use bright rather than bold in some cases - Change the color palette so the result is still readable (white on white doesn't work so well) with the default colorscheme. --- src/apps/terminal/Shell.cpp | 2 +- src/apps/terminal/TermParse.cpp | 23 +++++++++++++++-------- src/apps/terminal/TermView.cpp | 4 ++-- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/src/apps/terminal/Shell.cpp b/src/apps/terminal/Shell.cpp index 12c3c92689..5dd10ae79d 100644 --- a/src/apps/terminal/Shell.cpp +++ b/src/apps/terminal/Shell.cpp @@ -539,7 +539,7 @@ Shell::_Spawn(int row, int col, const ShellParameters& parameters) /* * setenv TERM and TTY. */ - setenv("TERM", "xterm", true); + setenv("TERM", "xterm-color", true); setenv("TTY", ttyName, true); setenv("TTYPE", parameters.Encoding(), true); diff --git a/src/apps/terminal/TermParse.cpp b/src/apps/terminal/TermParse.cpp index 0ae798a326..6664dd0b59 100644 --- a/src/apps/terminal/TermParse.cpp +++ b/src/apps/terminal/TermParse.cpp @@ -833,23 +833,30 @@ TermParse::EscParse() fAttr = FORECOLORED(7); break; - case 1: /* Bold */ - case 5: - fAttr |= BOLD; + case 1: /* Bright / Bold */ + fAttr |= FORECOLORED(8); + fAttr |= FORESET; break; case 4: /* Underline */ fAttr |= UNDERLINE; break; + case 5: + fAttr |= BOLD; + break; + case 7: /* Inverse */ fAttr |= INVERSE; break; - case 22: /* Not Bold */ - fAttr &= ~BOLD; + case 2: /* Faint: decreased intensity */ + case 21: /* Bright/Bold: off or Underline: Double */ + case 22: /* Not Bold, not bright, not faint */ + fAttr &= ~(FORECOLORED(8) | BOLD); + fAttr |= FORESET; break; - + case 24: /* Not Underline */ fAttr &= ~UNDERLINE; break; @@ -866,7 +873,7 @@ TermParse::EscParse() case 35: case 36: case 37: - fAttr &= ~FORECOLOR; + fAttr &= ~FORECOLORED(7); fAttr |= FORECOLORED(param[row] - 30); fAttr |= FORESET; break; @@ -875,7 +882,7 @@ TermParse::EscParse() { if (nparam != 3 || param[1] != 5) break; - fAttr &= ~FORECOLOR; + fAttr &= ~FORECOLORED(255 - 8); fAttr |= FORECOLORED(param[2]); fAttr |= FORESET; diff --git a/src/apps/terminal/TermView.cpp b/src/apps/terminal/TermView.cpp index 8da3c92dc7..c79960e357 100644 --- a/src/apps/terminal/TermView.cpp +++ b/src/apps/terminal/TermView.cpp @@ -79,14 +79,14 @@ static rgb_color kTermColorTable[256] = { { 6, 152, 154, 0}, // cyan {245, 245, 245, 0}, // white - {128, 128, 128, 0}, // black + { 64, 64, 64, 0}, // black {255, 0, 0, 0}, // red { 0, 255, 0, 0}, // green {255, 255, 0, 0}, // yellow { 0, 0, 255, 0}, // blue {255, 0, 255, 0}, // magenta { 0, 255, 255, 0}, // cyan - {255, 255, 255, 0}, // white + {128, 128, 128, 0}, // white { 0, 0, 0, 0}, { 0, 0, 51, 0},