Simon Tatham [Sat, 19 May 2001 15:23:12 +0000 (15:23 +0000)]
Add some spare SetForegroundWindow and SetActiveWindow calls to try
to improve window behaviour. Also make the About box a subdialog of
the config box instead of a separate child of the root.
Simon Tatham [Thu, 17 May 2001 08:53:13 +0000 (08:53 +0000)]
Fix the line-resizing bug in scroll(). (Thanks to RDB for pointing
it out. A line was removed from the scrollback, cleared, and placed
at the bottom of the screen. Fine, except that the clearing process
assumed the line was the right length already, and thanks to lazy
resizing this wasn't necessarily the case. Segfaults and memory
corruption ensued.)
Simon Tatham [Sun, 13 May 2001 14:11:49 +0000 (14:11 +0000)]
The host-key-unknown prompt now offers the same three options as the
host-key-changed prompt: update-cache-and-connect, connect-without-
updating-cache, and abandon-connection. (Previously the middle one
was missing.)
Simon Tatham [Sun, 13 May 2001 11:58:36 +0000 (11:58 +0000)]
Jacob's patch to make pressing Return on a selected saved session
load it and go, and simultaneously allow Alt-L on a selected saved
session not to change the focus.
Simon Tatham [Sun, 13 May 2001 10:45:56 +0000 (10:45 +0000)]
Added a new large icon for the PuTTY config box. Doesn't show up in
the actual window at all, but appears in the Alt-Tab task switcher
box in place of the tedious Windows Default icon.
Simon Tatham [Thu, 10 May 2001 08:34:20 +0000 (08:34 +0000)]
RDB's Unicode patch. Fonts are now used in Unicode mode where
possible and we have a single unified means of trying to display any
Unicode code point. Instead of the various ad-hoc translation modes
we had before, we now have a single `codepage' option which allows
us to treat the incoming (and outgoing) text as any given character
set, and locally we map that to Unicode and back.
Simon Tatham [Wed, 9 May 2001 15:12:26 +0000 (15:12 +0000)]
From RDB: a patch to allow special keys (^C, ^Z, Delete, Return) to
send Telnet special sequences (Interrupt Process, Suspend, Erase
Char, End Of Line) instead of their ASCII equivalents. In particular
Return -> Telnet End Of Line is _always_ enabled irrespective of the
configuration, while the others are optional. Also in this patch, an
entertainingly ghastly use of `switch' to allow literal ^M^J to do
the same thing as magic-^M (the Return key) when in Raw protocol.
Simon Tatham [Wed, 9 May 2001 13:30:06 +0000 (13:30 +0000)]
From RDB: according to VT manuals, application cursor keys should
never be enabled when app keypad is disabled. Also CTRL+arrows flips
the application-ness to make it easy to generate the other sequences
if required.
Simon Tatham [Wed, 9 May 2001 13:03:16 +0000 (13:03 +0000)]
RDB's alternative way to interpret the window size in Change
Settings: it describes the size of the _unmaximised_ window.
Maximisedness is a separate property which Change Settings doesn't
affect. So if you change the font while the window is maximised, the
terminal size adjusts accordingly. The downside is that you can't
read the width and height of a maximised window out of Change
Settings. Suggestions that restore this property are welcome.
Simon Tatham [Sat, 28 Apr 2001 17:35:18 +0000 (17:35 +0000)]
Debugging improvements. Started using Dave Hinton's dmemdump
function (woohoo!), improved that function so it provides an ASCII
dump as well as hex (whee!), removed all remaining spurious \r in
debug statements (ooh!), and made enabling of packet debugging in
SSH a matter of one ifdef rather than lots (phew!).
Simon Tatham [Sat, 28 Apr 2001 17:18:47 +0000 (17:18 +0000)]
Put the \001 prefix back on scp error messages when they're sent to
the server. (Not sure _why_ they're sent to the server; scp is
weird.) It may be pointless when sent to the screen, which is why I
removed it, but it's extremely pointful on the wire :-(
Simon Tatham [Sat, 28 Apr 2001 11:27:04 +0000 (11:27 +0000)]
Only update the system caret when we have the focus. This was
apparently causing the weird caret behaviour in Change Settings,
because that routine was still being called...
Simon Tatham [Sat, 28 Apr 2001 11:25:58 +0000 (11:25 +0000)]
Fix completely stupid agent_exists test. (Hint to self: you have to
actually _call_ a boolean-returning function, not just test its
address for nonzerohood.) Thanks Jacob.
Simon Tatham [Tue, 17 Apr 2001 09:25:52 +0000 (09:25 +0000)]
Two more small bugs introduced by the B-tree reorg: scroll() now
requires fix_cpos() to be called after it (otherwise cpos might point
to a line that isn't where you remember it being), and a mis-aimed
incpos() was causing forward selection dragging not to include the
char under the mouse. Both fixed.
Simon Tatham [Tue, 17 Apr 2001 08:53:31 +0000 (08:53 +0000)]
Fix alternate-screen bugs introduced by move to B-trees. Alternate
screen wasn't being correctly cleared on creation, and also wasn't
inhibiting scrollback like it should have.
Simon Tatham [Mon, 16 Apr 2001 21:29:12 +0000 (21:29 +0000)]
Put back Robert de Bath's second level of bell overload tracking. It
had a useful purpose: when primary overload handling is disabled, it
prevents MessageBeep calls overloading the program, because they
don't cancel each other like async PlaySounds do.
Simon Tatham [Mon, 16 Apr 2001 21:25:13 +0000 (21:25 +0000)]
Terminal now uses unsorted counted tree234 as its basic data type.
Should speed up scrollback to usable levels no matter how big your
scrollback buffer.
Simon Tatham [Mon, 16 Apr 2001 11:16:58 +0000 (11:16 +0000)]
Pageant interface changes. You can now do `pageant -c command' to
spawn another command after starting Pageant. Also, if Pageant is
already running, `pageant keyfile' and `pageant -c command' will do
the Right Thing, that is, add the key to the _first_ Pageant and/or
run a command and then exit. The only time you now get the `Pageant
is already running' error is if you try to start the second copy
with no arguments.
NB the affected files in this checkin are rather wide-ranging
because I renamed the not really SSH1-specific
`ssh1_bignum_bitcount' function to just `bignum_bitcount'.
Simon Tatham [Mon, 16 Apr 2001 09:10:34 +0000 (09:10 +0000)]
Log the text message in SSH_MSG_DISCONNECT (both protocols) so that
when people submit Event Logs for diagnosis it's a little easier to
work out what's up.
Simon Tatham [Fri, 13 Apr 2001 10:52:36 +0000 (10:52 +0000)]
New improved bell handling. Choice between visual and audible bell;
configurable bell overload handling. Thanks to Robert de Bath for
galvanising me into doing this, but I've had to rip most of his code
out and redo it myself...
Simon Tatham [Mon, 9 Apr 2001 12:52:43 +0000 (12:52 +0000)]
Keyboard handling patch from RDB: the Windows Application key is now
always Compose (we have no better use for it), and Ctrl-Alt can be
made to act like AltGr (but it's never Compose even when AltGr is).
Simon Tatham [Mon, 9 Apr 2001 11:59:35 +0000 (11:59 +0000)]
Default handling of VT100 line drawing characters in cut and paste is
now to translate them into poor man's characters (+--+ and |). We also
have an option to disable this (and map line drawing characters to the
corresponding ASCII code as before). Thanks to Robert de Bath.
Simon Tatham [Wed, 28 Mar 2001 16:38:40 +0000 (16:38 +0000)]
Oops. The new remote_cmd_ptr points in the wrong place when you copy a
Config structure like plink does at one point. (I'm almost tempted to
say this is where a copy constructor would be handy :-/ )
Simon Tatham [Fri, 23 Mar 2001 13:02:39 +0000 (13:02 +0000)]
Modify the new rsa_verify routine. We now also check the integrity of
the private data (verifying that p > q and that iqmp really is the
inverse of q mod p). In addition, we _no longer_ check that e*d == 1
mod (p-1)(q-1): instead we do separate checks mod (p-1) and mod (q-1),
since the order of the multiplicative group mod n is actually equal to
lcm(p-1,q-1) rather than phi(n)=(p-1)(q-1). (In other words, the
Fermat-Euler theorem doesn't point both ways.)
Simon Tatham [Fri, 23 Mar 2001 10:28:36 +0000 (10:28 +0000)]
Fix the SSH protocol version exchange, which had a weird stack trash
in it which for some reason didn't show up when built with VC++6 but
blew up the nightlies. Should be OK now.
Simon Tatham [Thu, 22 Mar 2001 21:48:33 +0000 (21:48 +0000)]
Following the recent advisory about attacks on PGP keys based on
tampering with the unencrypted public part of the key but leaving
the private part intact ... we are now ultra-paranoid about RSA key
files, and we check that the public part matches the private part
_before_ we generate any signatures with them.