Add a mini-rant to the top comment explaining why threads are
required. (I just tried getting rid of them; it worked fine for
serial ports, but not for anything else. The Windows I/O API sucks.)


git-svn-id: svn://svn.tartarus.org/sgt@6843 cda61777-01e9-0310-a592-d414129be87e
Support for an alternative mechanism for displaying wide characters
under X: instead of having two separate fixed-width fonts one of
which is twice the width of the other, you can instead have a single
font in which some characters are twice as wide as others.

This is implemented very simply: if you specify a wide font, it will
be used for wide characters, and if you don't then the normal font
will be used for wide characters (so they'd better _be_ wide in that
font, or there'll be trouble).

I got this idea from Jed, whose latest version supports UTF-8 and
requires a font of this type. If there are going to be X fonts like
that kicking around, there will doubtless be people who want to use
them.


git-svn-id: svn://svn.tartarus.org/sgt@6844 cda61777-01e9-0310-a592-d414129be87e
Slight change to password expiry UI for the benefit of Cisco servers, which
are as usual slightly odd.


git-svn-id: svn://svn.tartarus.org/sgt@6845 cda61777-01e9-0310-a592-d414129be87e
I seem to have slightly funted Plink's display of banners etc in r6437, oops.
Fixed.


git-svn-id: svn://svn.tartarus.org/sgt@6846 cda61777-01e9-0310-a592-d414129be87e
CSI 3 J now clears the scrollback, as in xterm.


git-svn-id: svn://svn.tartarus.org/sgt@6847 cda61777-01e9-0310-a592-d414129be87e
Note that the dynamic-tunnel proxy does not support UDP, since we get asked
about this quite often.


git-svn-id: svn://svn.tartarus.org/sgt@6855 cda61777-01e9-0310-a592-d414129be87e
Fix breakage of `Restart Session' in r6802. When restarting the
session, we were clearing the new session_closed flag, but failing
to clear must_close_session; with that set, the session was being
opened but immediately re-closed.


git-svn-id: svn://svn.tartarus.org/sgt@6857 cda61777-01e9-0310-a592-d414129be87e
IXON and IXOFF belong in _iflag_, not cflag! While I'm here, be more
reliable in clearing of RTS/CTS flags.


git-svn-id: svn://svn.tartarus.org/sgt@6864 cda61777-01e9-0310-a592-d414129be87e
Disable a bunch of undesirable termios flags. ICRNL, in particular,
is liable to have been set on serial ports previously used as
terminal devices, and definitely wants not to be set on serial ports
being used for callout.


git-svn-id: svn://svn.tartarus.org/sgt@6865 cda61777-01e9-0310-a592-d414129be87e
Minor semantic tweak to bug-compatibility modes: make
BUG_NEEDS_SSH1_PLAIN_PASSWORD do exactly what it says on the tin, independent
of whether BUG_CHOKES_ON_SSH1_IGNORE is set.

This is invisible in the default configuration, as all servers marked as having
the second bug have the first one too, but it would allow one to manually
configure PuTTY to cope with a SSH-1 server that got upset by ignore messages
during authentication, but was fine with their use as keepalives.


git-svn-id: svn://svn.tartarus.org/sgt@6876 cda61777-01e9-0310-a592-d414129be87e
Spotted by Tim Kosse: we were returning an incorrect path in canonify() when
we couldn't get any sense out of the server.


git-svn-id: svn://svn.tartarus.org/sgt@6877 cda61777-01e9-0310-a592-d414129be87e
Tiny comment fix.


git-svn-id: svn://svn.tartarus.org/sgt@6885 cda61777-01e9-0310-a592-d414129be87e
Administrivia: most SSH-2 specs are no longer drafts.


git-svn-id: svn://svn.tartarus.org/sgt@6890 cda61777-01e9-0310-a592-d414129be87e
There's been an increase in people posting non-SSH PuTTY-related questions
to comp.security.ssh, posting queries that are clearly about PuTTY to
newsgroups without actually mentioning PuTTY, and so on. They may have been
directed there by this document :( Add a futile attempt to instil a sense of
etiquette.


git-svn-id: svn://svn.tartarus.org/sgt@6895 cda61777-01e9-0310-a592-d414129be87e
Link to faq-cleanup from faq-settings.


git-svn-id: svn://svn.tartarus.org/sgt@6904 cda61777-01e9-0310-a592-d414129be87e
publickeyfile now an RFC


git-svn-id: svn://svn.tartarus.org/sgt@6905 cda61777-01e9-0310-a592-d414129be87e
(Config).remote_cmd2[512] was added in r1208, but it wasn't used then and isn't
now, so presumably never has been. Remove.


git-svn-id: svn://svn.tartarus.org/sgt@6906 cda61777-01e9-0310-a592-d414129be87e
Chris Boucher spotted that after "-nc" was added (r6823), cfg->ssh_nc_host
was not always initialised, which could lead to spurious attempts to open
a bogus channel (typically refused: "FATAL ERROR: Server refused to open
a direct-tcpip channel"). Fixed.


git-svn-id: svn://svn.tartarus.org/sgt@6907 cda61777-01e9-0310-a592-d414129be87e
Reinstate as much of the Windows font-linking behaviour as I can
easily manage, by adopting a hybrid approach to Unicode text
display. The old approach of simply calling ExtTextOutW provided
font linking without us having to lift a finger, but didn't do the
right thing when it came to bidirectional or Arabic-shaped text.
Arabeyes' replacement exact_textout() supported the latter, but
turned out to break the former (with no warning from the Windows API
documentation, so it's not their fault).

So now I've got a second wrapper layer called general_textout(),
which splits the input string into substrings based on bidi
character class. Any character liable to cause bidi or shaping
behaviour if fed straight to ExtTextOutW is instead fed through
Arabeyes' exact_textout(), but the rest is fed straight to
ExtTextOutW as it used to be.

The effect appears to be that font linking is restored for all
characters _except_ Arabic and other bidi scripts, which means in
particular that we are no longer in a state of regression over 0.57.
(0.57 would have done font linking on Arabic as well, but would also
have misbidied it, so we've merely exchanged one failure mode for
another slightly less harmful one in that situation.)


git-svn-id: svn://svn.tartarus.org/sgt@6910 cda61777-01e9-0310-a592-d414129be87e
I've just discovered that using the saved sessions menu from Unix
PuTTY causes the child process to inherit a lot of socket fds from
its parent, which is a pain if one of them then ends up holding open
a listening socket which the parent was using for port forwarding
after the parent itself is dead.

Therefore, this checkin sprinkles FD_CLOEXEC throughout the Unix
platform directory wherever there looks like being a long-lived fd.


git-svn-id: svn://svn.tartarus.org/sgt@6917 cda61777-01e9-0310-a592-d414129be87e