diff options
author | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2007-12-29 20:52:44 +0800 |
---|---|---|
committer | piaip <piaip@63ad8ddf-47c3-0310-b6dd-a9e9d9715204> | 2007-12-29 20:52:44 +0800 |
commit | 3209f81bd9d94fd7b17dfae1f575dd01d5ea59c5 (patch) | |
tree | 6a2545acf6f88481608468201f8b8ebd7e26eb70 /mbbsd | |
parent | 7b2387bfe8a3207ccfa4d672932fa4575d7ea613 (diff) | |
download | pttbbs-3209f81bd9d94fd7b17dfae1f575dd01d5ea59c5.tar pttbbs-3209f81bd9d94fd7b17dfae1f575dd01d5ea59c5.tar.gz pttbbs-3209f81bd9d94fd7b17dfae1f575dd01d5ea59c5.tar.bz2 pttbbs-3209f81bd9d94fd7b17dfae1f575dd01d5ea59c5.tar.lz pttbbs-3209f81bd9d94fd7b17dfae1f575dd01d5ea59c5.tar.xz pttbbs-3209f81bd9d94fd7b17dfae1f575dd01d5ea59c5.tar.zst pttbbs-3209f81bd9d94fd7b17dfae1f575dd01d5ea59c5.zip |
- pfterm: optimize chattr, and improve display for those who set special
color for default.
git-svn-id: http://opensvn.csie.org/pttbbs/trunk/pttbbs@3760 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
Diffstat (limited to 'mbbsd')
-rw-r--r-- | mbbsd/pfterm.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/mbbsd/pfterm.c b/mbbsd/pfterm.c index 1dba337a..914aaa9b 100644 --- a/mbbsd/pfterm.c +++ b/mbbsd/pfterm.c @@ -1482,6 +1482,14 @@ fterm_chattr(char *s, ftattr oattr, ftattr nattr) *s++ = ESC_CHR; *s++ = '['; + + // optimization: reset as default + if (nattr == FTATTR_DEFAULT) + { + *s++ = 'm'; + *s++ = 0; + return 1; + } fg = FTATTR_GETFG(nattr); bg = FTATTR_GETBG(nattr); @@ -1669,7 +1677,7 @@ void fterm_rawclreol(void) { #ifdef FTCONF_CLEAR_SETATTR - ftattr oattr = ft.rattr; + // ftattr oattr = ft.rattr; // XXX If we skip with "backround only" here, future updating // may get wrong attributes. Or not? (consider DBCS...) // if (FTATTR_GETBG(oattr) != FTATTR_GETBG(FTATTR_ERASE)) @@ -1680,7 +1688,8 @@ fterm_rawclreol(void) fterm_raws(ESC_STR "[K"); #ifdef FTCONF_CLEAR_SETATTR - fterm_rawattr(oattr); + // No need to do so? because we will always reset attribute... + // fterm_rawattr(oattr); #endif } @@ -1814,6 +1823,7 @@ fterm_rawmove_opt(int y, int x) void fterm_rawcursor(void) { + // fterm_rawattr(FTATTR_DEFAULT); fterm_rawattr(ft.attr); fterm_rawmove_opt(ft.y, ft.x); fterm_rawflush(); |