From e76242d1f47cd5822d40bb46ba6206eb43d9552d Mon Sep 17 00:00:00 2001 From: piaip Date: Wed, 11 Apr 2012 01:06:20 +0000 Subject: Revert Escape hack: #1FX6qLcO (PttCurrent) git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5617 63ad8ddf-47c3-0310-b6dd-a9e9d9715204 --- pttbbs/mbbsd/screen.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pttbbs/mbbsd/screen.c b/pttbbs/mbbsd/screen.c index 711103fc..98352e0d 100644 --- a/pttbbs/mbbsd/screen.c +++ b/pttbbs/mbbsd/screen.c @@ -543,8 +543,13 @@ outc(unsigned char c) slp->len = cur_col + 1; } - // always invalid escapes - if (c == ESC_CHR || slp->data[cur_col] != c) { + // Escape processing is a mess here. If we don't always invalid ESC, + // attributes will be not updated if some ouptut generates ESC on same + // position; if we do that, cross-line outputs also corrupted, or more: + // #1FX6qLcO (PttCurrent). This has been turned on/off several times - and + // I still don't know how to make a perfect workaround. + // Well, we probably still need to call SOLVE_ANSI_CACHE everywhere... + if (slp->data[cur_col] != c) { slp->data[cur_col] = c; if (!(slp->mode & MODIFIED)) slp->smod = slp->emod = cur_col; -- cgit v1.2.3