couple of DECgraphics optimizations

If a termcap entry for ending attributes and color also contains
the code to switch from secondary font back to primary (HE_resets_AS
hack), maybe strip the AS code out of HE (and clear the HE_resets_AS
flag) when setting up DECgraphics.  Affects whether nethack sends
extra AS sequences while rendering a run of VT line-drawing chars.
My HE doesn't reset AS so that aspect hasn't been exercized.

When switching back and forth between normal and line-drawing,
defer the switch away from line-drawing if the character will be
rendered the same in both character sets (uppercase letter, digit,
most punctuation).  That might just defer the AE, but could skip it
and next AS depending on what characters are written.  The cycle
might repeat an arbitrary number of times, avoiding sending many
AS+AE combinations rather than just one.

Both of these optimizations are pretty small but reducing the number
of characters sent from a server to a remote user is worthwhile.
This commit is contained in:
PatR
2024-02-18 15:01:21 -08:00
parent 44de195718
commit 9226a5dea6
3 changed files with 33 additions and 20 deletions

View File

@@ -1,4 +1,4 @@
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1377 $ $NHDT-Date: 1707525192 2024/02/10 00:33:12 $
NHDT-Branch: NetHack-3.7 $:$NHDT-Revision: 1.1380 $ $NHDT-Date: 1708290308 2024/02/18 21:05:08 $
General Fixes and Modified Features
-----------------------------------
@@ -2542,6 +2542,11 @@ tiles: male and female variations in monsters.txt; tested only with tile2bmp
tty: use bright colors directly on supporting terminals
tty: if a message is marked urgent, override message suppression initiated
by user having typed ESC at previous --More-- prompt
tty+DECgraphics: when ready to print a normal character after having printed
a line-drawing character, don't switch back to normal character set
unless current char is one that gets rendered differently as a line
drawing char (mainly lowercase letters) so that we might be able to
avoid the need to switch to line drawing for next char that uses that
Unix: can define NOSUSPEND in config.h or src/Makefile's CFLAGS to prevent
unixconf.h from enabling SUSPEND without need to modify unixconf.h
Unix: support --nethackrc=filename on the command line; same effect as