From 7ea77f37c3d2ad6f176182e2b1441dd33e39af8c Mon Sep 17 00:00:00 2001 From: btakahashi Date: Tue, 10 May 2005 00:08:12 +0000 Subject: [PATCH] Applied Phil Endecott's patch to improve reverse-video escape-sequence handling --- inject_csi.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/inject_csi.c b/inject_csi.c index e7652aa..e2b6430 100644 --- a/inject_csi.c +++ b/inject_csi.c @@ -75,14 +75,17 @@ static void interpret_csi_SGR(RoteTerm *rt, int param[], int pcount) { ROTE_ATTR_MOD_BOLD(rt->curattr,1); else if (param[i] == 5) /* set blink */ ROTE_ATTR_MOD_BLINK(rt->curattr,1); - else if (param[i] == 7) rt->curattr = 0x07; /* reverse video */ + else if (param[i] == 7 || param[i] == 27) { /* reverse video */ + int fg = ROTE_ATTR_FG(rt->curattr); + int bg = ROTE_ATTR_BG(rt->curattr); + ROTE_ATTR_MOD_FG(rt->curattr, bg); + ROTE_ATTR_MOD_BG(rt->curattr, fg); + } else if (param[i] == 8) rt->curattr = 0x0; /* invisible */ else if (param[i] == 22 || param[i] == 24) /* bold off */ ROTE_ATTR_MOD_BOLD(rt->curattr,0); else if (param[i] == 25) /* blink off */ ROTE_ATTR_MOD_BLINK(rt->curattr,0); - else if (param[i] == 27) /* negative off */ - rt->curattr = 0x70; else if (param[i] == 28) /* invisible off */ rt->curattr = 0x70; else if (param[i] >= 30 && param[i] <= 37) /* set fg */ -- 2.20.1