diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2012-04-11 09:06:20 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2012-04-11 09:06:20 +0800 |
commit | e76242d1f47cd5822d40bb46ba6206eb43d9552d (patch) | |
tree | 4f170c5014ea60969724da06b5ada0147ab9e415 | |
parent | 719b39ec2c97fb3900924c03514e039513e9a3ff (diff) | |
download | pttbbs-e76242d1f47cd5822d40bb46ba6206eb43d9552d.tar pttbbs-e76242d1f47cd5822d40bb46ba6206eb43d9552d.tar.gz pttbbs-e76242d1f47cd5822d40bb46ba6206eb43d9552d.tar.bz2 pttbbs-e76242d1f47cd5822d40bb46ba6206eb43d9552d.tar.lz pttbbs-e76242d1f47cd5822d40bb46ba6206eb43d9552d.tar.xz pttbbs-e76242d1f47cd5822d40bb46ba6206eb43d9552d.tar.zst pttbbs-e76242d1f47cd5822d40bb46ba6206eb43d9552d.zip |
Revert Escape hack: #1FX6qLcO (PttCurrent)
git-svn-id: http://opensvn.csie.org/pttbbs/trunk@5617 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r-- | pttbbs/mbbsd/screen.c | 9 |
1 files 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; |