putty/doc
Simon Tatham 6afa955a2e Option to support VT100 line drawing in UTF-8 mode.
Thanks to Jiri Kaspar for sending this patch (apart from the new docs
section, which is in my own words), which implements a feature we've
had as a wishlist item ('utf8-plus-vt100') for a long time.

I was actually surprised it was possible to implement it in so few
lines of code! I'd forgotten, or possibly never noticed in the first
place, that even in UTF-8 mode PuTTY not only accepts but still
_processes_ all the ISO 2022 control sequences and shift characters,
and keeps running track of all the same state in term->cset and
term->cset_attrs that it tracks in IS0-2022-enabled modes. It's just
that in UTF-8 mode, at the very last minute when a character+attribute
pair is about to be written into the terminal's character buffer, it
deliberately ignores the contents of those variables.

So all that was needed was a new flag checked at that last moment
which causes it not quite to ignore them after all, and bingo,
utf8-plus-vt100 is supported. And it works no matter which ISO 2022
sequences you're using; whether you're using ESC ( 0 to select the
line drawing set directly into GL and ESC ( B to get back when you're
done, or whether you send a preliminary ESC ( B ESC ) 0 to get GL/GR
to be ASCII and line drawing respectively so you can use SI and SO as
one-byte mode switches thereafter, both work just as well.

This implementation strategy has a couple of consequences, which I
don't think matter very much one way or the other but I document them
just in case they turn out to be important later:

 - if an application expecting this mode has already filled your
   terminal window with lqqqqqqqqk, then enabling this mode in Change
   Settings won't retroactively turn them into the line drawing
   characters you wanted, because no memory is preserved in the screen
   buffer of what the ISO 2022 state was when they were printed. So
   the application still has to do a screen refresh.

 - on the other hand, if you already sent the ESC ( 0 or whatever to
   put the terminal _into_ line drawing mode, and then you turn on
   this mode in Change Settings, you _will_ still be in line drawing
   mode, because the system _does_ remember your current ISO 2022
   state at all times, whether it's currently applying it to output
   printing characters or not.
2018-05-12 08:48:20 +01:00
..
Makefile Switch to using Halibut's new direct .CHM generation. 2017-05-13 18:51:10 +01:00
blurb.but Switch to using Halibut's new direct .CHM generation. 2017-05-13 18:51:10 +01:00
chm.css Minor style tweaks for the CHM. 2006-12-19 10:28:44 +00:00
config.but Option to support VT100 line drawing in UTF-8 mode. 2018-05-12 08:48:20 +01:00
errors.but Remove some ancient cruft from the FAQ. 2017-05-23 23:13:17 +01:00
faq.but Add a FAQ about servers that don't like IUTF8. 2017-07-12 10:19:23 +01:00
feedback.but Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
gs.but Cross-reference all the host key docs. 2016-03-26 17:38:49 +00:00
index.but Update copy and paste documentation. 2018-02-04 12:27:17 +00:00
intro.but Remove references to "Win32" and "32-bit Windows". 2017-02-15 23:58:25 +00:00
man-pag.but Support sh/csh syntax switching for Unix Pageant. 2016-03-25 16:43:59 +00:00
man-pg.but Document cmdgen ability to read public-only keys. 2017-02-11 21:12:16 +00:00
man-pl.but Add -share -noshare command line option to plink to share SSL connections. 2017-07-08 09:28:20 +01:00
man-pscp.but Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
man-psft.but Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
man-ptel.but Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
man-pter.but Examples in man pages for '-fn' option. 2016-03-27 11:33:21 +01:00
man-putt.but Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
mancfg.but
manpages.but
pageant.but Emphasise that agent forwarding exposes all keys. 2016-03-25 13:15:57 +00:00
pgpkeys.but Switch chiark URLs to https. 2017-05-07 16:29:01 +01:00
plink.but Add -share -noshare command line option to plink to share SSL connections. 2017-07-08 09:28:20 +01:00
pscp.but Update version number for 0.70 release. 2017-07-04 20:29:54 +01:00
psftp.but Rework versioning system to not depend on Subversion. 2014-09-24 10:33:13 +00:00
pubkey.but Update docs and FAQ for current DSA policy. 2016-03-27 20:10:56 +01:00
site.but
sshnames.but Cross-reference the description of winadj@putty.projects.tartarus.org 2014-10-21 11:33:33 +00:00
udp.but Remove Makefile.bor. 2017-09-13 19:26:28 +01:00
using.but Document Ctrl-Shift-PgUp/PgDn. 2018-02-04 14:19:31 +00:00
vids.but Rework versioning system to not depend on Subversion. 2014-09-24 10:33:13 +00:00