History of windows/window.c of dc0247bf7bc74ef3

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

History of file windows/window.c at check-in dc0247bf7bc74ef3

2014-02-16
10:40
Stop sending release events for mouse wheel 'buttons' in X mouse mode. On Windows (X mouse reporting of the mouse wheel isn't currently done by the Unix front end, though I'm shortly about to fix that too) a mouse wheel event is translated into a virtual button, and we send both a press and a release of that button to terminal.c, which encodes both in X mouse reporting escape sequences and passes them on to the server. This isn't consistent with what xterm does - scroll-wheel events are encoded _like_ button presses, but differ semantically in that they don't have matching releases. So we're updating to match xterm. file: [4b5e16f467] check-in: [318dea6985] user: simon branch: trunk, size: 159723
2014-01-25
09:58
Use the new host_str* functions to improve IPv6 literal support. I've gone through everywhere we handle host names / addresses (on command lines, in PuTTY config, in port forwarding, in X display names, in host key storage...) and tried to make them handle IPv6 literals sensibly, by using the host_str* functions I introduced in my previous commit. Generally it's now OK to use a bracketed IPv6 literal anywhere a hostname might have been valid; in a few cases where no ambiguity exists (e.g. no :port suffix is permitted anyway) unbracketed IPv6 literals are also acceptable. file: [45cca75568] check-in: [7c4cad97cb] user: simon branch: trunk, size: 159881
2013-11-17
08:05
Implement connection sharing between instances of PuTTY. The basic strategy is described at the top of the new source file sshshare.c. In very brief: an 'upstream' PuTTY opens a Unix-domain socket or Windows named pipe, and listens for connections from other PuTTYs wanting to run sessions on the same server. The protocol spoken down that socket/pipe is essentially the bare ssh-connection protocol, using a trivial binary packet protocol with no encryption, and the upstream has to do some fiddly transformations that I've been referring to as 'channel-number NAT' to avoid resource clashes between the sessions it's managing. This is quite different from OpenSSH's approach of using the Unix- domain socket as a means of passing file descriptors around; the main reason for that is that fd-passing is Unix-specific but this system has to work on Windows too. However, there are additional advantages, such as making it easy for each downstream PuTTY to run its own independent set of port and X11 forwardings (though the method for making the latter work is quite painful). Sharing is off by default, but configuration is intended to be very easy in the normal case - just tick one box in the SSH config panel and everything else happens automatically. file: [da560b264a] check-in: [998dfad436] user: simon branch: trunk, size: 159859
08:03
Find ToUnicodeEx() at run time, not load time. This restores PuTTY's backward compatibility to versions of Windows too old to have ToUnicodeEx in their system libraries, which was accidentally broken in 0.63. file: [1b32c66064] check-in: [f163f89666] user: simon branch: trunk, size: 159776
2013-11-11
17:01
Replace GetQueueStatus with PeekMessage(PM_NOREMOVE). A couple of users report that my recent reworking of the Windows top-level message loop has led to messages occasionally being lost, and MsgWaitForMultipleObjects blocking when it ought to have been called with a zero timeout. I haven't been able to reproduce this myself, but according to one reporter, PeekMessage(PM_NOREMOVE) is effective at checking for a non-empty message queue in a way that GetQueueStatus is not. Switch to using that instead. Thanks to Eric Flumerfelt for debugging and testing help. file: [df4f1ebc0a] check-in: [0eada414dc] user: simon branch: trunk, size: 159586
2013-10-25
12:44
Avoid leaving unread Windows messages in the queue. Jochen Erwied points out that once you've used PeekMessage to remove _one_ message from the message queue, MsgWaitForMultipleObjects will consider the whole queue to have been 'read', or at least looked at and deemed uninteresting, and so it will block until a further message comes in. Hence, my change in r10040 which stops us from looping on PeekMessage until the queue is empty has the effect of causing the rest of the message queue not to be acted on until a new message comes in to unblock it. Fix by checking if the queue is nonempty in advance of calling MsgWaitForMultipleObjects, and if so, giving it a zero timeout just as we do if there's a pending toplevel callback. file: [cd85a01bfa] check-in: [bb372d7013] user: simon branch: trunk, size: 159559
2013-09-15
09:05
Only run one toplevel callback per event loop iteration. This change attempts to reinstate as a universal property something which was sporadically true of the ad-hockery that came before toplevel callbacks: that if there's a _very long_ queue of things to be done through the callback mechanism, the doing of them will be interleaved with re-checks of other event sources, which might (e.g.) cause a flag to be set which makes the next callback decide not to do anything after all. file: [aa378915f6] check-in: [36d3c24f08] user: simon branch: trunk, size: 158556
2013-08-17
11:06
Make calling term_nopaste() a cross-platform feature. It was one of those things that went in ages ago on Windows and never got replicated in the Unix front end. And it needn't be: ldisc.c is a perfect place to put it, since it knows which of the data it's sending is based on a keystroke and which is automatically generated, and it also has access to the terminal context. So now a keypress can interrupt a runaway paste on all platforms. file: [15a8b2bdaa] check-in: [98e29c499b] user: simon branch: trunk, size: 158399
11:06
Revamp Windows pending_netevent using toplevel callbacks. This greatly simplifies the process of calling select_result() from the top level after receiving WM_NETEVENT. file: [346b80513b] check-in: [c50a760764] user: simon branch: trunk, size: 158820
11:06
Revamp net_pending_errors using toplevel callbacks. Again, I've removed the special-purpose ad-hockery from the assorted front end message loops that dealt with deferred handling of socket errors, and instead uxnet.c and winnet.c arrange that for themselves by calling the new general top-level callback mechanism. file: [df57e80542] check-in: [441fc5a4dd] user: simon branch: trunk, size: 158838
11:06
Revamp Windows's close_session() using toplevel callbacks. Instead of setting a must_close_session flag and having special code in the message loop to check it, we'll schedule the call to close_session using the new top-level callback system. file: [1c7ce2a667] check-in: [f66bde9fae] user: simon branch: trunk, size: 158956
11:06
Revamp the terminal paste mechanism using toplevel callbacks. I've removed the ad-hoc front-end bodgery in the Windows and GTK ports to arrange for term_paste to be called at the right moments, and instead, terminal.c itself deals with knowing when to send the next chunk of pasted data using a combination of timers and the new top-level callback mechanism. As a happy side effect, it's now all in one place so I can actually understand what it's doing! It turns out that what all that confusing code was up to is: send a line of pasted data, and delay sending the next line until either a CR or LF is returned from the server (typically indicating that the pasted text has been received and echoed) or 450ms elapse, whichever comes first. file: [d41cf85c9b] check-in: [e18f3877ae] user: simon branch: trunk, size: 159386
11:06
Add a general way to request an immediate top-level callback. This is a little like schedule_timer, in that the callback you provide will be run from the top-level message loop of whatever application you're in; but unlike the timer mechanism, it will happen _immediately_. The aim is to provide a general way to avoid re-entrance of code, in cases where just _doing_ the thing you want done is liable to trigger a confusing recursive call to the function in which you came to the decision to do it; instead, you just request a top-level callback at the message loop's earliest convenience, and do it then. file: [9892dee49f] check-in: [0345763d47] user: simon branch: trunk, size: 159470
2013-08-04
14:32
Reinstate a piece of code accidentally removed in r9214, where Windows PuTTY does not trim a colon suffix off the hostname if it contains _more than one_ colon. This allows IPv6 literals to be entered. (Really we need to do a much bigger revamp of all uses of hostnames to arrange that square-bracketed IPv6 literals work consistently, but this at least removes a regression over 0.62.) file: [f29cfdd740] check-in: [6a08410fec] user: simon branch: trunk, size: 159561
2013-07-22
02:12
Increase FONT_MAXNO from 0x2f to 0x40, to ensure the fonts[] array includes every possible combination of the font bitfields, in particular ATTR_OEM|ATTR_NARROW. file: [9900a7ad91] check-in: [6eed22fa7a] user: simon branch: trunk, size: 159173
02:12
Correct an inequality sign causing the bounds check in Windows palette_set() to be bogus. Fortunately, this isn't exploitable through the terminal emulator, because the palette escape sequence parser contains its own bounds check before even calling palette_set(). While I'm at it, fix the same goof in the OS X version! That port is more or less abandoned, but that's no excuse for leaving obviously wrong code lying around. file: [0c250e5395] check-in: [eb7d5a10e2] user: simon branch: trunk, size: 159173
02:11
Another big batch of memory leak fixes, again mostly on error paths. The most interesting one is printer_add_enum, which I've modified to take a char ** rather than a char * so that it can both realloc its input buffer _and_ return NULL to indicate error. file: [bdf0489ef9] check-in: [c3f3ee12f4] user: simon branch: trunk, size: 159172
2013-07-20
06:31
Switch to translating keystrokes using ToUnicodeEx rather than ToAsciiEx, where possible. This enables support for keys which generate Unicode characters that aren't in the system code page, which seems to me like a perverse way for Windows to have set up the system code page but apparently does happen, e.g. (I'm told) U+0219 and U+021B on Romanian keyboards. Patch mostly due to Andrei Damian-Fekete. file: [f7afbc07ac] check-in: [14d0fea887] user: simon branch: trunk, size: 158940
2013-07-19
12:44
Add a nonfatal() function everywhere, to be used for reporting things that the user really ought to know but that are not actually fatal to continued operation of PuTTY or a single network connection. file: [2d471a7a51] check-in: [ad8c919057] user: simon branch: trunk, size: 158671
2012-12-04
14:53
Patch from Hideki Eiraku to make PuTTY call GetScrollInfo, so it can use 32-bit scrollbar position data instead of being limited to the 16-bit version that comes in scrollbar messages' wParam. file: [4f96690a46] check-in: [765fc74497] user: simon branch: trunk, size: 158324
2012-10-10
13:29
A user points out that we should free the 'hProcess' and 'hThread' handles returned in the PROCESS_INFORMATION structure after we call CreateProcess. file: [152398819f] check-in: [4091a039e9] user: simon branch: trunk, size: 158053
2012-10-02
14:31
Sumudu Fernando points out that in the big r9214 destabilisation I mistakenly rearranged the logic in an if statement in window.c, with the effect that scroll-wheel events are no longer sent via xterm mouse tracking. Put it back to the way it was. file: [e1a6197563] check-in: [db702f5b14] user: simon branch: trunk, size: 157970
2012-09-18
16:42
Two related changes to timing code: First, make absolute times unsigned. This means that it's safe to depend on their overflow behaviour (which is undefined for signed integers). This requires a little extra care in handling comparisons, but I think I've correctly adjusted them all. Second, functions registered with schedule_timer() are guaranteed to be called with precisely the time that was returned by schedule_timer(). Thus, it's only necessary to check these values for equality rather than doing risky range checks, so do that. The timing code still does lots that's undefined, unnecessary, or just wrong, but this is a good start. file: [1778a39eb2] check-in: [a2d79b9e07] user: ben branch: trunk, size: 157948
2012-06-09
10:09
Introduce a third setting for the 'bold as colour' mode, which lets you both brighten the colour _and_ bold the font at the same time. (Fixes 'bold-font-colour' and Debian #193352.) file: [7c76a14359] check-in: [8394417bea] user: simon branch: trunk, size: 157894
2012-05-13
10:59
Fix from Robert de Bath which reorders the Windows initialisation sequence: since init_fonts sets up ucsdata based on the available Windows fonts, we should call it before passing ucsdata to term_init. file: [44d93d0894] check-in: [2717a22bba] user: simon branch: trunk, size: 157808
10:59
Bug fix from Robert de Bath: since lpDx_maybe is always supposed to equal either lpDx or NULL, we mustn't forget to update it when we realloc lpDx. file: [a5380edcbc] check-in: [97d3643dfe] user: simon branch: trunk, size: 157808
2012-04-22
09:22
Patch from Robert de Bath to ifdef out the Windows-specific hack for the offset horizontal line characters in the VT100 line-drawing set (o,p,r,s), so that no trace of it - and hence no pointless performance hit - is compiled into the cross-platform modules on non-Windows platforms. file: [8c3313d4b2] check-in: [c9610e7ecb] user: simon branch: trunk, size: 157850
2012-02-17
13:28
Patch from Yoshida Masato to fill in the missing pieces of Windows UTF-16 support. High Unicode characters in the terminal are now converted back into surrogates during copy and draw operations, and the Windows drawing code takes account of that when splitting up the UTF-16 string for display. Meanwhile, accidental uses of wchar_t have been replaced with 32-bit integers in parts of the cross-platform code which were expecting not to have to deal with UTF-16. file: [94f587bdc6] check-in: [af034c145b] user: simon branch: trunk, size: 157819
2012-02-05
04:08
WM_SIZE/SIZE_MAXIMIZED can show up even during an interactive resize, so we should ensure we treat it the same way as other WM_SIZEs that show up during that time: set the width and height in conf, and set the flag to have that width and height enacted on WM_EXITSIZEMOVE. Fixes a bug in which dragging a PuTTY window directly from the Win7 snapped-to-half-screen position to the snapped-to-maximised state would leave the terminal in the pre-snapped size. file: [b9c90ee3de] check-in: [f465256d47] user: simon branch: trunk, size: 154700
2011-12-10
12:08
Tag 0.62 release. file: [0062492760] check-in: [9c44b3c894] user: simon branch: putty-branch-0.61, size: 150298
2011-10-01
12:38
Change the semantics of 'FontSpec' so that it's a dynamically allocated type. The main reason for this is to stop it from taking up a fixed large amount of space in every 'struct value' subunion in conf.c, although that makes little difference so far because Filename is still doing the same thing (and is therefore next on my list). However, the removal of its arbitrary length limit is not to be sneezed at. file: [5a055a715c] check-in: [78529746fb] user: simon branch: trunk, size: 154050
2011-09-13
06:44
Revamp of EOF handling in all network connections, pipes and other data channels. Should comprehensively fix 'half-closed', in principle, though it's a big and complicated change and so there's a good chance I've made at least one mistake somewhere. All connections should now be rigorous about propagating end-of-file (or end-of-data-stream, or socket shutdown, or whatever) independently in both directions, except in frontends with no mechanism for sending explicit EOF (e.g. interactive terminal windows) or backends which are basically always used for interactive sessions so it's unlikely that an application would be depending on independent EOF (telnet, rlogin). EOF should now never accidentally be sent while there's still buffered data to go out before it. (May help fix 'portfwd-corrupt', and also I noticed recently that the ssh main session channel can accidentally have MSG_EOF sent before the output bufchain is clear, leading to embarrassment when it subsequently does send the output). file: [a138aa4c1b] check-in: [0831792ea4] user: simon branch: trunk, size: 154000
2011-07-20
10:55
Fix 'Duplicate Session' on Windows, broken during the config revamp. (In an embarrassingly silly way, too. No end of difficult stuff about Conf serialisation done with great care and working just fine, and then a trivial goof in using sscanf lets the whole lot down.) file: [2fcb554a37] check-in: [552d854ddf] user: simon branch: trunk, size: 153892
2011-07-18
13:04
Reinstate a missing invocation of the FONT_QUALITY macro which I accidentally removed in the big config revamp. file: [871b2fdb35] check-in: [73aacdd5a1] user: simon branch: trunk, size: 153892
2011-07-17
17:35
Fix a typo in r9214 that plausibly explains a resizing weirdness I had with today's snapshot on Windows. file: [336f3053fc] check-in: [322ea75b60] user: jacob branch: trunk, size: 153878
2011-07-15
11:03
When doing manual underlining, underline the text in question rather than a box to the right of it. Probably introduced sometime around r9063. file: [5807e39563] check-in: [08a0d45df9] user: jacob branch: trunk, size: 153879
2011-07-14
13:52
Post-release destabilisation! Completely remove the struct type 'Config' in putty.h, which stores all PuTTY's settings and includes an arbitrary length limit on every single one of those settings which is stored in string form. In place of it is 'Conf', an opaque data type everywhere outside the new file conf.c, which stores a list of (key, value) pairs in which every key contains an integer identifying a configuration setting, and for some of those integers the key also contains extra parts (so that, for instance, CONF_environmt is a string-to-string mapping). Everywhere that a Config was previously used, a Conf is now; everywhere there was a Config structure copy, conf_copy() is called; every lookup, adjustment, load and save operation on a Config has been rewritten; and there's a mechanism for serialising a Conf into a binary blob and back for use with Duplicate Session. User-visible effects of this change _should_ be minimal, though I don't doubt I've introduced one or two bugs here and there which will eventually be found. The _intended_ visible effects of this change are that all arbitrary limits on configuration strings and lists (e.g. limit on number of port forwardings) should now disappear; that list boxes in the configuration will now be displayed in a sorted order rather than the arbitrary order in which they were added to the list (since the underlying data structure is now a sorted tree234 rather than an ad-hoc comma-separated string); and one more specific change, which is that local and dynamic port forwardings on the same port number are now mutually exclusive in the configuration (putting 'D' in the key rather than the value was a mistake in the first place). One other reorganisation as a result of this is that I've moved all the dialog.c standard handlers (dlg_stdeditbox_handler and friends) out into config.c, because I can't really justify calling them generic any more. When they took a pointer to an arbitrary structure type and the offset of a field within that structure, they were independent of whether that structure was a Config or something completely different, but now they really do expect to talk to a Conf, which can _only_ be used for PuTTY configuration, so I've renamed them all things like conf_editbox_handler and moved them out of the nominally independent dialog-box management module into the PuTTY-specific config.c. file: [445b1446f2] check-in: [a2c0243430] user: simon branch: trunk, size: 153851
2011-03-02
12:52
Set the 'must_close_session' flag at the end of close_session(), so that we won't keep calling close_session() again the next time we go round the message loop. Should fix unclean-close-hang. Thanks to Simon Coleman for debugging. file: [78ececb9f4] check-in: [5813186d25] user: simon branch: trunk, size: 150270
2010-12-29
18:06
Stop general_textout() from trying to slice up the input clipping rectangle into smaller ones: it doesn't work any more, since the new variable-pitch code can now call general_textout() with a larger clipping rectangle than the text it's meant to be displaying. Instead, general_textout() now uses the same semantics as the next loop up in do_text_internal(): the first piece of text it displays uses the opacity setting passed in, which blanks the entire clipping rectangle if necessary, and then subsequent overlays are non-opaque. And the same clipping rectangle is used throughout. file: [762921dce6] check-in: [5d4503f498] user: simon branch: trunk, size: 149927
17:48
Rationalise the mechanism in do_text_internal for providing the 'lpDx' array to ExtTextOut: - move it inside the new big loop (this should fix a potential bug whereby the DBCS handling altered some elements of it but the loop did not actually step along it) - initialise it more sensibly - rename it to lpDx rather than IpDx, since as far as I can tell the latter name was derived from a misreading of the former in the Windows API docs. file: [2d9b22959e] check-in: [c25029f114] user: simon branch: trunk, size: 150898
16:38
Move some not-compiled-in debug code somewhere more useful. file: [8d3c66971e] check-in: [314693f089] user: jacob branch: trunk, size: 150788
10:00
Fix segfault in general_textout with variable-pitch fonts: we can't pass null lpDx, because general_textout depends on it being filled in. Instead we null it out in the calls to subroutines _from_ general_textout. file: [e58c8ed8ab] check-in: [26def99f43] user: simon branch: trunk, size: 150788
08:11
Support for using variable-pitch fonts for the terminal on Windows. Done in much the same way as it is in the GTK front end: the character cell width is determined using the font's digits (which seems to give generally not-too-offensive spacing in most cases, at the expense of Ms and Ws typically overhanging a bit into adjacent cells) and each character is centred in its cell. Overhangs never leave permanent droppings on the window, because the existing work done in r5003 handles them just fine even in this stressful scenario. There's a hacky new checkbox in the Appearance panel to make variable-pitch fonts appear in the font selector (they still don't by default, because I still think it's _usually_ not What You Want); the checkbox state is not actually stored as part of a saved session, but it should be automatically ticked when reloading a session that's got a variable pitch font selected. (I'm half-expecting a potential flurry of requests for this feature in the wake of http://xkcd.com/840/ , so I thought I'd pre-empt them :-) file: [7c130d1ac2] check-in: [be5245e8df] user: simon branch: trunk, size: 150696
05:57
Thou shalt not suffer a misplaced apostrophe to live. file: [0229d45b78] check-in: [496ebff61c] user: simon branch: trunk, size: 146665
2010-12-27
06:58
Fix resize handling when enabling and disabling full-screen mode. I'm not sure whether I broke this in the recent revamp or whether it was always broken, but: transitions in and out of full-screen mode work by first maximising or restoring the window, which triggers a WM_SIZE, whose handler then fiddles with the window style to disable or re-enable all the furniture, which in turn triggers a recursive WM_SIZE. The trouble is, after returning from the handler for the inner WM_SIZE, the rest of the outer handler runs, and its client area size is now out of date. So I've added a flag which is set when a resize is handled 'properly', so that after returning from the inner WM_SIZE handler the outer one knows not to try to redo badly work that's already been done well. file: [50c36cf2e8] check-in: [b927047766] user: simon branch: trunk, size: 146666
2010-12-23
11:32
Support for Windows 7 jump lists (right-click on a program's taskbar icon, even if the program isn't running at the time, to be presented with an application-defined collection of helpful links). The current jump list is updated every time a saved session is loaded, and shows the last few launchable saved sessions (i.e. not those like Default Settings) that were loaded. Also, if Pageant or PuTTYgen or both is in the same directory as the PuTTY binary, the jump list will present links to launch those too. Based on a patch sent last year by Daniel B. Roy, though it's barely recognisable any more... file: [a31529b5bb] check-in: [70edd9bb03] user: simon branch: trunk, size: 145824
11:16
The special treatment of Alt-resize (to cause resizing to affect the font instead of the terminal size) should only be active in RESIZE_EITHER mode - in RESIZE_TERM it is worse than useless. file: [4daeb63c93] check-in: [5b02dad7cc] user: simon branch: trunk, size: 145127
09:44
Another fix to yesterday's window-resizing revamp: when restoring from maximised state, we must be sure to disable the window offset used to centre the terminal in cases where the window is non-negotiably the wrong size (e.g. maximised). Hence we must call reset_window after our terminal resize. file: [28fd027b88] check-in: [a41a48a0c1] user: simon branch: trunk, size: 144981
2010-12-22
10:14
Pay attention to the width and height provided in WM_SIZE even when restoring a maximised window. Failure to do this was noticeable in the following scenario (again using Aero UI enhancements): 1. resize window using topmost resize handle, and move pointer to top of screen which 'maximises' the window vertically 2. now maximise the window properly using the maximise button in top right 3. now restore. Notepad restores to its position before step 1, because Aero remembers that position for the purpose, but PuTTY thinks it knows better. Only now it doesn't any more. file: [e9ed71ebc3] check-in: [5ed4cc5656] user: simon branch: trunk, size: 144944
09:49
Reorganise handling of WM_SIZE to fix two generality problems. Firstly, maximise and restore events were expected never to occur during an interactive resize process (i.e. between WM_ENTERSIZEMOVE and WM_EXITSIZEMOVE), but in fact Aero now allows this to happen if you move the pointer to the top of the screen while dragging the window. Secondly, plain old WM_SIZE events were expected never to occur _outside_ interactive resizes, but Aero permits that too (e.g. Windows-left and Windows-right), and also third-party window repositioning tools will send these. file: [a1bff7d617] check-in: [d757855927] user: simon branch: trunk, size: 144741
2010-09-13
03:29
Create, and use for all loads of system DLLs, a wrapper function called load_system32_dll() which constructs a full pathname for the DLL using GetSystemDirectory. The only DLL load not covered by this change is the one for gssapi32.dll, because that one's not in the system32 directory. file: [46d45f505a] check-in: [ebb9344ea6] user: simon branch: trunk, size: 144415
2010-07-30
14:45
A comment typo fix I've had lying around for a while. file: [f33cb56009] check-in: [8d38bf5439] user: jacob branch: trunk, size: 144409
2010-04-23
13:32
New SSH bug flag, for 'can't handle SSH2_MSG_IGNORE'. Another user today reported an SSH2_MSG_UNIMPLEMENTED from a Cisco router which looks as if it was triggered by SSH2_MSG_IGNORE, so I'm experimentally putting this flag in. Currently must be manually enabled, though if it turns out to solve the user's problem then I'll probably add at least one version string... [Edited commit message: actually, I also committed in error a piece of experimental code as part of this checkin. Serve me right for not running 'svn diff' first.] file: [3d1d588a9d] check-in: [9c99f25c74] user: simon branch: trunk, size: 144407
2010-03-06
09:50
Centralise generation of the control sequences for arrow keys into a function in terminal.c, and replace the cloned-and-hacked handling code in all our front ends with calls to that. This was intended for code cleanliness, but a side effect is to make the GTK arrow-key handling support disabling of application cursor key mode in the Features panel. Previously that checkbox was accidentally ignored, and nobody seems to have noticed before! file: [ad74c99c73] check-in: [35aecab820] user: simon branch: trunk, size: 144252
2009-11-08
13:22
Use DECL/GET_WINDOWS_FUNCTION in a few more places in place of ad-hoc GetProcAddress(). file: [34a2f9e1fb] check-in: [de2a5fba6a] user: jacob branch: trunk, size: 145143
2009-09-27
11:20
Remove is_shift_pressed() -- it's not been used since r4906. file: [9233046cd7] check-in: [63058ec840] user: jacob branch: trunk, size: 145247
2009-09-13
18:29
If there are no saved sessions, put a grayed "(No sessions)" entry on the saved sessions submenu of the terminal window context menu (as Pageant does), rather than an empty menu (which often renders poorly). file: [c574263801] check-in: [67bc4c7b05] user: jacob branch: trunk, size: 145479
2009-08-15
12:45
Keep the state of the "Full Screen" menu item on the Ctrl+right-click context menu in sync with reality and the system menu. file: [dd0e554c0d] check-in: [8ce7de2804] user: jacob branch: trunk, size: 145375
2009-01-21
12:47
Don't call ReleaseCapture() on any mouse-button-up event. Instead, only call it when the _last_ mouse button comes back up. Otherwise, xterm mouse tracking will lose a button-up event if you press down two buttons, move the mouse outside the window, then release them one at a time. file: [eb889be19c] check-in: [e7cab95225] user: simon branch: trunk, size: 145196
2009-01-09
12:55
Weaken the assertion in general_textout(). It was failing in the case of double-width text (ESC # 3, ESC # 4, ESC # 6), because the string passed to it was not truncated to the same width as the clipping rectangle. (In fact, it _can't_ reliably be, in the case where the window width is odd.) So instead we just assert that we managed to _at least_ fill the clipping rectangle, not that we exactly filled it. The problem is easily reproduced by sending ESC # 8 (fill the screen with Es) followed by ESC # 3. It doesn't typically happen, though, if you _manually_ fill the screen with Es, because in that case PuTTY's terminal buffer ends up being filled with CSET_ACP | 'E' or similar, which means that general_textout() never gets called because one of the other branches of do_text_internal() does the work instead. ESC # 8 will fill the terminal buffer with genuine _Unicode_ 'E' characters, which exercises the failing code path. file: [44277d24cb] check-in: [5e99094c97] user: simon branch: trunk, size: 144987
2009-01-05
18:16
Remove a couple of unused variables. file: [15150616c1] check-in: [021a9a45ae] user: jacob branch: trunk, size: 144987
2008-12-29
14:04
r8338 broke pasting with Shift-Ins and from the context menu on Windows. Divert these to use the request_paste() interface. file: [690a3aeda5] check-in: [4a0333b4d1] user: jacob branch: trunk, size: 145023
2008-12-20
13:02
"Derek" points out that reporting of wheel event coordinates to the host on Windows was relative to the screen origin, not the window origin. file: [b898187040] check-in: [74835487a0] user: jacob branch: trunk, size: 145023
2008-11-28
12:28
Move the code that reads the Windows clipboard into a trivial subthread, so that it won't deadlock if fetching the content of the clipboard turns out to depend on a network connection forwarded through PuTTY. file: [8a90d4e022] check-in: [9814c17c86] user: simon branch: trunk, size: 144861
2008-09-14
10:11
Some Windows keymaps, it turns out, don't translate the key combination Ctrl + \ as the Ctrl-\ character. All of mine have, but at least one laptop turns out not to. Do so explicitly. file: [b5e44dfcc2] check-in: [0d25c5708a] user: simon branch: trunk, size: 143235
2007-07-01
10:41
Remove port number validation from Windows PuTTY -- it could cause unnecessary trouble with serial connections, and a port number of zero gets caught later anyway. file: [1416951eeb] check-in: [865a61887b] user: jacob branch: trunk, size: 143215
2007-06-30
16:56
Rationalise access to, and content of, backends[] array. Should be no significant change in behaviour. (Well, entering usernames containing commas on Plink's command line will be a little harder now.) file: [3a0440ad10] check-in: [8b1d299a90] user: jacob branch: trunk, size: 143464
2007-02-24
18:50
Since r7265, a user could not launch a PuTTY session to a specific host by simply specifying a hostname on the command line -- this would bring up the config dialog. Use a slightly more sophisticated notion of whether the user meant to launch a session. file: [77b4a32de0] check-in: [3be54b7561] user: jacob branch: trunk, size: 143663
2007-02-18
08:02
Ctrl-Break now sends a Break signal (previously it was equivalent to Ctrl-C). file: [1a94f0b7a9] check-in: [65285954f0] user: jacob branch: trunk, size: 143383
2007-02-17
11:44
Unbreak "Duplicate session" on Windows, in a similar way to r7291. file: [c19890a39f] check-in: [de46d1c4c8] user: jacob branch: trunk, size: 143289
2007-02-16
12:44
r7265 broke the legacy `putty @sessionname' construction, which I wouldn't care about except for the fact that it's still used to implement the Saved Sessions menu item in PuTTY and Pageant. file: [9d416f0baa] check-in: [dc0247bf7b] user: simon branch: trunk, size: 143264
2007-02-10
11:02
Avoid launching a session from the Default Settings, even if they do represent a launchable session, unless the user can be construed to have really meant it. This means: - starting up PuTTY when the Default Settings are launchable still brings up the config box, and you have to hit Open to actually launch that session - double-clicking on Default Settings from the config box will load them but not launch them. On the other hand: - explicitly loading the Default Settings on the command line using `-load' _does_ still launch them. file: [e8851d5c36] check-in: [e32793db99] user: simon branch: trunk, size: 143193
2007-01-26
08:06
Kai Jourdan spotted a rather embarrassing double-free, and Minefield confirms that it's a real problem. file: [4f8feafb66] check-in: [be198c9138] user: simon branch: trunk, size: 143167
2007-01-24
07:53
The direct link between the terminal and the back end via term_provide_resize_fn() was not being broken when the back end was destroyed on session termination, causing resizing an inactive PuTTY to be a segfault hazard. file: [de1b9cb71b] check-in: [f75921a917] user: simon branch: trunk, size: 143159
2007-01-16
15:32
Update WINVER to 0x500 to avoid build failures from Jacob's FlashWindow changes. Also fiddle with the <multimon.h> include, which was subtly broken in turn by that. file: [1b740e8204] check-in: [93485461a3] user: simon branch: trunk, size: 143109
14:54
At least, I have the technology to fix `beepind-win2k'. Tested on Win98, Win2K, and WinXP. file: [0e54e53ca8] check-in: [d34719e103] user: jacob branch: trunk, size: 143108
2007-01-09
18:46
According to Frank Dijcks, this cast makes OpenWatcom happier. file: [08a9550a72] check-in: [75ed054d54] user: jacob branch: trunk, size: 141735
12:24
Get rid of all the MSVC warnings. file: [6f3c2982e2] check-in: [1ef7a9aa1d] user: simon branch: trunk, size: 141727
2007-01-07
06:40
Reinstate RDB's pending_netevent mechanism, which was removed in r4906 in the process of adding the new timing code. It seems to have been what was previously preventing spew-lockup, and still seems to prevent it now I've put it back in. file: [47160c1090] check-in: [5abeff92fa] user: simon branch: trunk, size: 141701
2006-12-17
05:16
Initial support for HTML Help. All the ad-hoc help-file finding code and various calls to WinHelp() have been centralised into a new file winhelp.c, which in turn has been modified to detect a .CHM file as well as .HLP and select between them as appropriate. It explicitly tries to load HHCTRL.OCX and use GetProcAddress, meaning that it _should_ still work correctly on pre-HTML-Help platforms, falling gracefully back to WinHelp, but although I tested this by temporarily renaming my own HHCTRL.OCX I haven't yet been able to test it on a real HTML-Help-free platform. Also in this checkin: a new .but file and docs makefile changes to make it convenient to build the sources for a .CHM. As yet, owing to limitations of Halibut's CHM support, I'm not able to write a .CHM directly, more's the pity. file: [6ef0bca9d0] check-in: [e861af5aa9] user: simon branch: trunk, size: 141139
2006-11-18
09:10
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.) file: [98a0fb0960] check-in: [76941fa153] user: simon branch: trunk, size: 141872
2006-09-21
06:48
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. file: [30ecf14f80] check-in: [856b30b874] user: simon branch: trunk, size: 139646
2006-08-29
13:32
The Windows HANDLE type, despite being a `void *', does not actually behave like a pointer. In particular, the right thing to set a HANDLE to to indicate that it's invalid is INVALID_HANDLE_VALUE, not NULL. Crack down on sloppy use of NULL HANDLEs across all Windows code. (There is one oddity, which is that {Create,Open}FileMapping are documented to return a NULL HANDLE instead of INVALID_HANDLE_VALUE on failure. Shrug. If MS want to be inconsistent, I suppose I have to live with it.) file: [c9dfd5a63d] check-in: [8c6438590b] user: simon branch: trunk, size: 139614
2006-08-28
14:09
Apparently MsgWaitForMultipleObjects doesn't always return the values one might expect, which means that GetMessage() was occasionally blocking the process. That appears to be the last of the annoying data loss issues, so I think the Windows serial back end actually looks vaguely reliable now. Phew. file: [60b8b558d2] check-in: [b83e5fdf72] user: simon branch: trunk, size: 139578
12:41
Missed a couple of instances of cfg_launchable(). file: [dbc2aac7de] check-in: [451f6c4481] user: simon branch: trunk, size: 139634
05:35
Support for Windows PuTTY connecting straight to a local serial port in place of making a network connection. This has involved a couple of minor infrastructure changes: - New dlg_label_change() function in the dialog.h interface, which alters the label on a control. Only used, at present, to switch the Host Name and Port boxes into Serial Line and Speed, which means that any platform not implementing serial connections (i.e. currently all but Windows) does not need to actually do anything in this function. Yet. - New small piece of infrastructure: cfg_launchable() determines whether a Config structure describes a session ready to be launched. This was previously determined by seeing if it had a non-empty host name, but it has to check the serial line as well so there's a centralised function for it. I haven't gone through all front ends and arranged for this function to be used everywhere it needs to be; so far I've only checked Windows. - Similarly, cfg_dest() returns the destination of a connection (host name or serial line) in a text format suitable for putting into messages such as `Unable to connect to %s'. file: [82abb4e167] check-in: [d160e39029] user: simon branch: trunk, size: 139612
2006-08-26
05:04
Start using notify_remote_exit() in the Windows front end, in place of the previous ad-hockery which depended on the return value from select_result() and hence which will not adapt sensibly to a world in which the primary session is something local rather than a network connection. file: [32b18d09aa] check-in: [ce96560653] user: simon branch: trunk, size: 139606
2006-08-25
17:10
New piece of Windows infrastructure: winhandl.c takes Plink's thread-based approach to stdin and stdout, wraps it in a halfway sensible API, and makes it a globally available service across all network tools. There is no direct functionality enhancement from this checkin: winplink.c now talks to the new API instead of doing it all internally, but does nothing different as a result. However, this should lay the groundwork for several diverse pieces of work in future: pipe-based ProxyCommand on Windows, a serial port back end, and (hopefully) a pipe-based means of communicating with Pageant, which should have sensible blocking behaviour and hence permit asynchronous agent requests and decrypt-on-demand. file: [a1df7e6f43] check-in: [2156c9bb4b] user: simon branch: trunk, size: 139192
2006-04-23
13:26
Sprinkle some header comments in various files in an attempt to explain what they're for. file: [39bc4d2242] check-in: [7932188e51] user: jacob branch: trunk, size: 138993
2006-03-29
11:55
Update size when going from maximised to full screen. file: [e126a2979b] check-in: [23a1c6f75e] user: owen branch: trunk, size: 138877
2006-03-08
12:10
David Damerell tells me I should be using Ctrl-hjklyubn rather than Shift-hjklyubn for batch movement in NetHack, because they have subtly different behaviour within the game and the Ctrl-moves are more useful. Unfortunately, PuTTY's NetHack keypad mode doesn't support Ctrl-moves. Therefore, it does now :-) file: [10b472cc0c] check-in: [396c775fc5] user: simon branch: trunk, size: 138803
2006-02-25
08:13
Alain Guibert points out that palette changes weren't causing the space between the text area and the window border to be refreshed. Fixed on Windows. Gtk still has a similar problem. file: [c79890a0e8] check-in: [e9756c0bd4] user: jacob branch: trunk, size: 138755
2006-02-19
08:59
Fix `restart-reset-terminal': terminal now restored to a sensible state when reusing a window to restart a session. file: [9286b39306] check-in: [a9fe99c1ad] user: jacob branch: trunk, size: 138362
2006-02-13
16:18
Preserve more attributes of text copied as RTF. Thanks to Stephen Balousek. file: [dfcf80a5d8] check-in: [e24538d25e] user: owen branch: trunk, size: 138329
2006-02-10
14:57
Oops. Since r6546, old "Special Commands" menus weren't being deleted from the context menu, and they tended to pile up. file: [4887f395d1] check-in: [963c5c5a87] user: jacob branch: trunk, size: 133490
2006-02-09
17:06
Users of Virtual Dimension are reporting that the "Close" menu item and button tend to get disabled on login. After a suggestion by "Tkil", change the way we handle the specials menu to be robust against the window menu being externally modified. file: [d7c33355e6] check-in: [a7b8c32f79] user: jacob branch: trunk, size: 133487
2006-01-27
14:49
Somewhat gruesome tweak to use SetClassLongPtr where available and degrade nicely elsewhere, which should fix `win64' _properly_. Tested on recent-ish MinGW (with GetWindowLongPtr but not GetClassLongPtr), and VC++ 6.0 with a recent SDK, but not with vanilla VC++. file: [4435cb4e45] check-in: [13b73ead40] user: jacob branch: trunk, size: 133600
2006-01-25
16:46
Don't explicitly open the logfile on startup; it'll automatically be opened by logwrite() as necessary. Should fix win-askappend-multi. file: [283b570a3d] check-in: [5f02ab2b2a] user: owen branch: trunk, size: 133592
2006-01-11
17:42
Configurable font quality on Windows. (Together with a little bit of macro stuff to cope with the inadequacy of VC++ 6 headers.) file: [5c049ff68f] check-in: [051f4cfea4] user: owen branch: trunk, size: 133680
2005-12-09
14:04
A few small changes to make the PuTTY source base more usable as a basis for other terminal-involving applications: a stub implementation of the printing interface, an additional function in notiming.c, and also I've renamed the front-end function beep() to do_beep() so as not to clash with beep() in lib[n]curses. file: [ace6869f2c] check-in: [bc74216dab] user: simon branch: trunk, size: 133599
2005-10-30
14:24
Revamp SSH authentication code so that user interaction is more abstracted out; replace loops structured around a single interaction per loop with less tortuous code (fixes: `ki-multiprompt-crash', `ssh1-bad-passphrase-crash'; makes `ssh2-password-expiry' and `proxy-password-prompt' easier). The new interaction abstraction has a lot of fields that are unused in the current code (things like window captions); this is groundwork for `gui-auth'. However, ssh.c still writes directly to stderr; that may want to be fixed. In the GUI apps, user interaction is moved to terminal.c. This should make it easier to fix things like UTF-8 username entry, although I haven't attempted to do so. Also, control character filtering can be tailored to be appropriate for individual front-ends; so far I don't promise anything other than not having made it any worse. I've tried to test this fairly exhaustively (although Mac stuff is untested, as usual). It all seems to basically work, but I bet there are new bugs. (One I know about is that you can no longer make the PuTTY window go away with a ^D at the password prompt; this should be fixed.) file: [a673277eea] check-in: [fa1347493a] user: jacob branch: trunk, size: 133596
2005-10-13
16:56
Fix 256-colours-match-xterm, based on 256colres.pl from xterm-205. Largely untested -- may not even compile on Windows. file: [642a9ed2a0] check-in: [a232015fce] user: ben branch: trunk, size: 133250
2005-08-10
13:31
Ben Rudiak-Gould points out that we should be using WM_APP as the base for our app-private window messages, which is considerably higher than the WM_XUSER we arbitrarily chose. (This isn't known to be causing any actual problems. The fix seems not to have obviously broken anything.) file: [afb5b74318] check-in: [8b2c50dec0] user: jacob branch: trunk, size: 133247
2005-06-09
05:05
"SanskritFritz" points out that digits at the start of RTF pastes were being eaten by the trailing "\f0" on the RTF preamble. The RTF spec (1.0 and 1.6) suggests that adding a space should defuse this situation and be otherwise harmless, and it works for me (Win98). file: [1dce1082b3] check-in: [072eafc3e1] user: jacob branch: trunk, size: 133253
2005-05-21
09:16
Use {Get,Set}WindowLongPtr() instead of {Get,Set}WindowLong() for compatibility with 64-bit Windows. Untested on 64-bit, but it doesn't appear to have broken anything on 32-bit. file: [b65fdb9b42] check-in: [15d9ec22cf] user: jacob branch: trunk, size: 133252
2005-04-21
08:57
First crack at `terminal-modes' in SSH. PuTTY now sends ERASE by default, Unix Plink sends everything sensible it can find, and it's fully configurable from the GUI. I'm not entirely sure about the precise set of modes that Unix Plink should look at; informed tweaks are welcome. Also the Mac bits are guesses (but trivial). file: [c80504145a] check-in: [533d29650c] user: jacob branch: trunk, size: 133225
2005-04-06
20:36
If a new session was saved from Change Settings, a side-effect on Windows was that the global `sesslist' got out of sync with the saved-sessions submenu, causing the latter to launch the wrong sessions. Also, Change Settings wasn't getting a fresh session list, so if the set of sessions had changed since session startup it wouldn't reflect that (at least until a session was saved). Fixed (on all platforms). Therefore, since the global sesslist didn't seem to be useful, I've got rid of it; config.c creates one as needed, as do the frontends. (Not tried compiling Mac changes.) Also, we now build the saved-sessions submenu on demand on Windows and Unix. (This should probably also be done on the Mac.) file: [90b4e41bdd] check-in: [11a4164f51] user: jacob branch: trunk, size: 133127
2005-03-30
13:33
Further fix for lcc-win32. The PuTTY suite now compiles fine for me using lcc-win32 v3.8 (compilation date Mar 2 2005 18:40:17) provided I pass COMPAT="-DNO_IPV6 -DNO_MULTIMON" on the command line. file: [c67faa8939] check-in: [77e295b6c2] user: simon branch: trunk, size: 132520
2005-03-22
19:08
Another fix from Hung-Te Lin; apparently in some IMEs (such as "MS NewPhonetics"), move events (arrow keys) were being doubled up, apparently because we turned both KEYDOWN and KEYUP events into new KEYDOWN events. I don't claim to understand the precise effect of this patch :( but I'm reasonably confident that it only affects IME users, and experimentally it doesn't seem to break anything obvious, so if piaip says it makes things better that's good enough for me :) file: [cf0d8cc2d0] check-in: [b571a72780] user: jacob branch: trunk, size: 132205
17:25
Fix my fix (r5539) to the `multi-changesettings-crash' fix. Ahem. file: [a8fa47781b] check-in: [8eba346720] user: jacob branch: trunk, size: 132067
2005-03-21
16:20
Hung-Te Lin spotted that the `multi-changesettings-crash' workaround for Windows would prevent a user opening Change Settings if they'd cancelled a previous Change Settings. file: [e5c9540cbd] check-in: [b1e67f39ff] user: jacob branch: trunk, size: 132068
2005-03-20
19:05
Improvement for IME font display from Hung-Te Lin. Not tested, but it appears only to affect Glenn Maynard's r1406 code from <20011006170741.A23470@zewt.org> and nothing else, so seems harmless enough. file: [fd8b5115df] check-in: [6e9a512a1b] user: jacob branch: trunk, size: 131989
16:28
Add comments about default processing in DialogProc/WindowProc, since I often forget the rules. file: [a1e8d48070] check-in: [dafb82d057] user: jacob branch: trunk, size: 132505
2005-03-18
20:26
Try to make our PGP signing more useful: * All the PuTTY tools for Windows and Unix now contain the fingerprints of the Master Keys. The method for accessing them is crude but universal: a new "-pgpfp" command-line option. (Except Unix PuTTYgen, which takes "--pgpfp" just to be awkward.) * Move the key policy discussion from putty-website/keys.html to putty/doc/pgpkeys.but, and autogenerate the former from the latter. Also tweak the text somewhat and include the fingerprints of the Master Keys themselves. (I've merged the existing autogeneration scripts into a single new one; I've left the old scripts and keys.html around until such time as the webmonster reviews the changes and plumbs in the new script; he should remove the old files then.) file: [35b97bff6d] check-in: [d2a830c19a] user: jacob branch: trunk, size: 132367
2005-03-17
14:01
Hung-Te Lin's fix for intermittent WM_PAINT problems. file: [bb4060337a] check-in: [20a99cf841] user: simon branch: trunk, size: 132289
2005-03-15
14:34
Add protection against multiple Change Settings dialogues. file: [96b56583f7] check-in: [ac3a20d53e] user: owen branch: trunk, size: 130544
2005-03-08
17:06
Ben Hutchings reports that new PuTTY instances created from the saved sessions menu (etc) can inherit listening sockets, and that this sometimes causes trouble. Can't reproduce any problems myself, but let's only allow inheritance when absolutely necessary -- Duplicate Session -- in which case there's already going to be trouble with two processes trying to listen on the same port. file: [e1e4537576] check-in: [6a0a90c90d] user: jacob branch: trunk, size: 130427
2005-03-01
15:34
Update Inno Setup script. Tested with IS 5.0.8 on Win98SE; I think there are a few things that will faze whatever we're using currently (2.0.19 or thereabouts?), but nothing desperately modern. (NB, the 0.57 putty.iss works fine with 5.0.8 and the installer is even 40k smaller.) Notable changes: - Uninstallation now runs a variant of `putty -cleanup'. The variance is only in the text displayed; the user is still prompted, and the default action is (now) "keep" in both cases. - Optionally add an icon in the Quick Launch bar. - Make desktop item optionally for all users. (not tested) - "Create a Start Menu group" now handled via IS' own mechanism. file: [84a7ba13d6] check-in: [9bde7a592f] user: jacob branch: trunk, size: 130279
2005-02-28
19:16
Add context help to a couple of message boxes. Unfortunately the ones I wanted to get to -- "software caused connection abort" and friends -- are going to be more involved (probably requiring some cross-platform notion of help contexts), and these ones hardly seem worth the effort. Still, I've done it now. Side-effect: Pageant now uses the same `hinst' and `hwnd' globals as everything else. Tested basic functionality. file: [d29061d80a] check-in: [ab8229cc93] user: jacob branch: trunk, size: 129426
2005-02-20
17:26
Change "are you sure you want to close this window" default back to what it was ("yes"). Partly because it was inconsistent with gtkdlg.c, and partly because it was annoying me. file: [84b2e6470a] check-in: [dfe358ead7] user: jacob branch: trunk, size: 129404
2005-02-15
19:47
Minor reorganisations to WinHelp support. (Done as part of a - failed - attempt to fix `winhelp-crash', but we may as well keep them.) file: [ee7ea222b2] check-in: [10431bbf1a] user: jacob branch: trunk, size: 129404
16:23
The Windows host key dialogs now have a `Help' button that should give appropriate context help, iff the help file is present. (Shame it's prey to `winhelp-crash'.) (I've perpetrated a widening of visibility of `hwnd'; the alternative, putting it into a frontend handle, seemed too likely to cause maintenance trouble if we don't also _use_ that frontend handle everywhere we now use the global `hwnd'.) file: [176100dcf8] check-in: [277a81e93c] user: jacob branch: trunk, size: 129392
13:22
Add a couple of other sensible button defaults in MessageBox()s. file: [4a8e3aabec] check-in: [c96098badb] user: jacob branch: trunk, size: 129411
11:05
The terminal window can now indicate that PuTTY is busy in various ways, by changing its mouse pointer. Currently this is only used in the (slightly- arbitrarily-defined) "heavy" bits of SSH-2 key exchange. We override pointer hiding while PuTTY is busy, but preserve pointer-hiding state. Not yet implemented on the Mac. Also switch to frobbing window-class cursor in Windows rather than relying on SetCursor(). file: [e7df9e2e14] check-in: [14b560857a] user: jacob branch: trunk, size: 129393
2004-12-30
10:45
Integrate unfix.org's IPv6 patches up to level 10, with rather a lot of polishing to bring them to what I think should in principle be release quality. Unlike the unfix.org patches themselves, this checkin enables IPv6 by default; if you want to leave it out, you have to build with COMPAT=-DNO_IPV6. I have tested that this compiles on Visual C 7 (so the nightlies _should_ acquire IPv6 support without missing a beat), but since I don't have IPv6 set up myself I haven't actually tested that it _works_. It still seems to make correct IPv4 connections, but that's all I've been able to verify for myself. Further testing is needed. file: [a52c7e1943] check-in: [99d7fec46d] user: simon branch: trunk, size: 128337
09:29
Stray // comments. file: [392ead6763] check-in: [a7351a8274] user: simon branch: trunk, size: 128126
2004-12-29
06:32
Loose end from r5031: the Kex panel should only be displayed in mid-session if we are not using SSHv1. I've done this by introducing a generic `cfg_info' function which every back end can use to communicate an int's worth of data to setup_config_box; in SSH that's the protocol version in use, and in everything else it's currently zero. file: [9620c9927a] check-in: [8cec6d493a] user: simon branch: trunk, size: 128123
2004-12-19
17:37
Restore border around terminal to default background colour rather than something outside colours[] (consistently brown on my system). (I don't understand why this code was the way it was, but it gave the correct result before r4917 `256-colours', and now doesn't.) file: [1b06e77eaf] check-in: [0302a088bc] user: jacob branch: trunk, size: 128084
17:15
Correct number of configurable colours (NCFGCOLOURS) to match reality (leftover from `256-colours', r4917). file: [1584af25d9] check-in: [dd7d41edc3] user: jacob branch: trunk, size: 128092
16:37
Fix line cursor colours (fallout from `256-colours'), on both Windows and Unix. file: [971d083c2a] check-in: [fc8fba4a2e] user: jacob branch: trunk, size: 128092
2004-11-29
10:58
Nitpick, close bracket. file: [c58b8776b9] check-in: [1305136e4a] user: owen branch: trunk, size: 128090
2004-11-28
09:13
Implement xterm 256-colour mode. file: [88e629dd41] check-in: [1d10fbc8cf] user: simon branch: trunk, size: 128089
2004-11-27
13:41
Changes in startup order to ensure any subsystem which might attempt to schedule timers is not started until after hwnd is initialised. file: [ac1ddc4b30] check-in: [25fee5edd7] user: simon branch: trunk, size: 127564
13:34
Slight improvement to cursor blink timing: since the cursor doesn't blink when the window doesn't have focus, we don't schedule blink timers at that point either. Infrastructure change: term->has_focus should now not be written directly from outside terminal.c. Instead, use the function term_set_focus, which will sort out the blink timers as well. file: [1d48edb3a9] check-in: [7a1f0222f8] user: simon branch: trunk, size: 127297
07:20
New timing infrastructure. There's a new function schedule_timer() which pretty much any module can call to request a call-back in the future. So terminal.c can do its own handling of blinking, visual bells and deferred screen updates, without having to rely on term_update() being called 50 times a second (fixes: pterm-timer); and ssh.c and telnet.c both invoke a new module pinger.c which takes care of sending keepalives, so they get sent uniformly in all front ends (fixes: plink-keepalives, unix-keepalives). file: [ad7ab60a3e] check-in: [683ee6bed3] user: simon branch: trunk, size: 127285
2004-11-16
16:14
Renamed window.c → windows/window.c. Now that we have Subversion's file renaming ability, it's time at long last to move all the Windows-specific source files down into a `windows' subdirectory. Only platform-specific files remain at the top level. With any luck this will act as a hint to anyone still contemplating sending us a Windows-centric patch... file: [88cb36f8d0] check-in: [a6928f6770] user: simon branch: trunk, size: 129068
2004-11-11
03:40
I masked off LATTR_WRAPPED et al in do_text_internal(), but forgot to do the same in do_cursor(). Bet that's the cause of Andrey Borzenkov's cursor positioning bug. file: [88cb36f8d0] check-in: [58f5a1164f] user: simon branch: trunk, size: 129068
2004-11-02
17:06
Go back to using intervals of 16 for the saved session identifiers for the system menu, but expand from 256 entries to 1024 as there seems to be plenty of space. Also remove a couple of unused IDM_* constants. file: [72f3d6abba] check-in: [bea10e6972] user: jacob branch: trunk, size: 129042
16:30
Simon has reminded me _why_ menu identifiers were spaced every sixteen, so let's add a comment so that we don't forget again. Source: <http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/windowsuserinterface/userinput/keyboardaccelerators/keyboardacceleratorreference/keyboardacceleratormessages/wm_syscommand.asp> file: [ae63c2eb25] check-in: [00c981a774] user: jacob branch: trunk, size: 129085
11:44
Since neither I nor Owen know why the IDM_ values for the saved-sessions submenu were going up in steps of 16, I've changed to steps of 1, thus increasing the possible number of sessions from ~256 to 4096, since a recent report seemed to indicate that the previous limit might not be enough for someone (!) I can't find any documentation that puts an upper limit on the number of menu items, and it seems to work on Win98, which is where I'd expect it to break if anywhere. Also a number of other tweaks to this code. file: [c54e86c87f] check-in: [9dabd7d0df] user: jacob branch: trunk, size: 128838
2004-10-17
16:22
Support the SSH-2 mechanism for sending signals to a running session. Neither of the SSH servers I conveniently have access to (Debian stable OpenSSH -- 3.4p1 -- and lshd) seem to take a blind bit of notice, but the channel requests look fine to me in the packet log. I've included all the signals explicitly defined by draft-ietf-secsh-connect-19, but I've put the more obscure ones in a submenu of the specials menu; there's therefore been some minor upheaval to support such submenus. file: [dd8bf9422f] check-in: [e613d9b7a0] user: jacob branch: trunk, size: 128784
09:44
Telnet specials menu was not being reinstated after a session was restarted in the same window (Windows version only). Policy change: it's now the backend's responsibility to call update_specials_menu() at the start of a session (or whenever it feels ready), if it has any special commands. Otherwise the menu won't be displayed. file: [77a292c0c5] check-in: [df3849f621] user: jacob branch: trunk, size: 128137
2004-10-14
11:42
First-stage support for Unicode combining characters. The `chars' array of each `termline' structure now contains optional additional entries after the normal number of columns, which are used to chain a linked list of combining characters off any primary termchar that needs it. This means we support arbitrarily many combining characters per cell (unlike xterm's hard limit of 2). Cut and paste works correctly (selecting a character cell containing multiple code points causes all those code points to be cut and pasted). Display works by simply overlaying all the relevant characters on top of one another; this is good enough for Unix (xterm does the same thing), and mostly seems OK for Windows except that the Windows Unicode fonts have a nasty habit of not containing most of the combining characters and thus overlaying an unknown-code-point box on your perfectly good base glyph. I had no idea how to add support in the Mac do_text(), so I've simply stuck in an assertion that will trigger the first time a combining character is displayed, and hopefully this will bite someone with the clue to fix it. file: [2ceb8dcb6a] check-in: [873b9560c1] user: simon branch: trunk, size: 128170
2004-10-13
07:29
I think we've been told before that you're not supposed to CloseHandle() the thing returned from MonitorFromPoint. Certainly MS Visual Studio's debugger complained about it just now. CloseHandle() call removed. file: [fd1234aaf3] check-in: [d3b96a42ab] user: simon branch: trunk, size: 127585
06:50
Re-engineering of terminal emulator, phase 1. The active terminal screen is no longer an array of `unsigned long' encoding 16-bit Unicode plus 16 attribute bits. Now it's an array of `termchar' structures, which currently have 32-bit Unicode and 32 attribute bits but which will probably expand further in future. To prevent bloat of the memory footprint, I've introduced a mostly RLE-like compression scheme for storing scrollback: each line is compressed into a compact (but hard to modify) form when it moves into the term->scrollback tree, and is temporarily decompressed when the user wants to scroll back over it. My initial tests suggest that this compression averages about 1/4 of the previous (32 bits per character cell) data size in typical output, which means this is an improvement even without counting the new ability to extend the information stored in each character cell. Another beneficial side effect is that the insane format in which Unicode was passed to front ends through do_text() has now been rendered sane. Testing is incomplete; this _may_ still have instabilities. Windows and Unix front ends both seem to work as far as I've looked, but I haven't yet looked very hard. The Mac front end I've edited (it seemed obvious how to change it) but I can't compile or test it. As an immediate functional effect, the terminal emulator now supports full 32-bit Unicode to whatever extent the host platform allows it to. For example, if you output a 4-or-more-byte UTF-8 character in Unix pterm, it will not display it properly, but it will correctly paste it back out in a UTF8_STRING selection. Windows is more restricted, sadly. file: [7e7643ffd4] check-in: [fd15c23f41] user: simon branch: trunk, size: 127606
2004-09-21
11:49
`ampersat-in-username': tweak `strchr' to `strrchr' where necessary to consistently support usernames containing `@'. file: [b611496fca] check-in: [b6d76d9903] user: jacob branch: trunk, size: 127404
2004-09-20
16:42
Add accelerator for "Special Command" sub-menu. file: [d91f091e58] check-in: [7721346dbc] user: jacob branch: trunk, size: 127403
2004-08-27
07:24
Handle WM_SYSCOLORCHANGE if using system colours. (Resets the whole palette, whereas ideally it would restrict itself to the affected colour slots.) file: [2c84c7b56d] check-in: [3bb030b079] user: jacob branch: trunk, size: 127402
2004-08-20
09:04
Patch to use enum constants for cfg.funky_type instead of numeric literals, from "Anthony" <410C2A86.2010003@mail2004.ajrh.net>. file: [0587bb33c4] check-in: [c811f4d966] user: jacob branch: trunk, size: 127112
2004-08-14
08:04
Implement `Restart Session', in both Unix and Windows PuTTY. Largely because Owen questioned whether it was really easy enough to be labelled `fun' in the bug database :-) file: [30994c0438] check-in: [3ba6f1b539] user: simon branch: trunk, size: 126955
2004-07-25
14:52
Attempt to make Windows pointer hiding more robust by ignoring MOUSEMOVE and NCMOUSEMOVE messages where nothing actually changes. It seems Windows likes to send such messages occasionally when other stuff is going on (e.g., in other windows). (Also spotted by Franco Barber <20040122055232.GA8168@febsun.cmhnet.org>.) file: [110e42de92] check-in: [0605efdcdd] user: jacob branch: trunk, size: 125444
2004-06-20
12:07
Add a configuration option for TCP keepalives (SO_KEEPALIVE), default off. No very good reason, but I've occasionally wanted to frob it to see if it makes any difference to problems I'm having, and it was easy. Tested that it does actually cause keepalives on Windows (with tcpdump); should also work on Unix. Not implemented on Mac (does nothing), but then neither is TCP_NODELAY. Quite a big checkin, much of which is adding `keepalive' alongside `nodelay' in network function calls. file: [f2cfeb91f8] check-in: [d6cbea6730] user: jacob branch: trunk, size: 124814
2004-05-22
05:36
At last! After much delay, much faffing back and forth, and much enhancement and fiddling, I have now massaged Arabeyes' first patch into a form I'm happy to check in. Phew. file: [fa348d81e9] check-in: [02962abb0e] user: simon branch: trunk, size: 124788
2004-03-26
09:18
More experimental hackery for `win-dead-keys'. Works for me as well as it did in the one case I can test, but I suspect this isn't the whole story. Bletch. file: [92be140dd7] check-in: [bedf0e581d] user: jacob branch: trunk, size: 123665
2004-03-24
08:53
Fix from Thomas Henlich for bug in dead key support. I've reproduced the problem and verified the fix on Win2K with the US-International keyboard layout. (Closes: `win-dead-keys') <20040323143836.GA40414@rcs.urz.tu-dresden.de> file: [a794fe2fe7] check-in: [3efd8415bb] user: jacob branch: trunk, size: 123016
2004-01-20
14:35
Alexey Savelyev's mkfiles.pl patch to support lcc-win32. This has caused a small amount of extra inconvenience at the tops of .rc files, but it's been positive overall since lcc has managed to point out some pedantic errors (typically static/extern mismatches between function prototypes and definitions) which everything else missed. file: [3b21efb01d] check-in: [c0d4df0389] user: simon branch: trunk, size: 122636
13:41
Josh Hill's patch for full-screen mode on a multi-monitor system: clicks in the top left of the window should not be detected by comparing the coordinates with (0,0) since this won't work on secondary monitors. file: [fe50be7a76] check-in: [d8dda0a4ee] user: simon branch: trunk, size: 122643
2003-12-16
12:28
Andy Hood points out that `#ifdef MONITOR_DEFAULTTONEAREST' would benefit from _also_ being conditional on NO_MULTIMON not being defined, to prevent the possibility of only half the multimon code being included. file: [5fad6ba41c] check-in: [be5ecc4c16] user: simon branch: trunk, size: 122127
2003-12-03
18:10
tweak for consistency with previous checkin file: [05fa500a8a] check-in: [daec97e28d] user: jacob branch: trunk, size: 122096
17:32
Fix from Michael Wardle in bell error message file: [93bf4fcee9] check-in: [0b83b0b033] user: jacob branch: trunk, size: 122091
2003-11-20
12:41
Introduce a new mouse handling option, in which the right button brings up the context menu (and you can then paste by selecting `Paste'). Should be more friendly to Windows-oriented users as opposed to expatriate X users; also has the effect of making it more difficult to paste into PuTTY by a single misplaced mouse click, which has been a common theme of complaint recently. For the moment, `Compromise' (the X-like behaviour with the right and middle buttons reversed so that two-button users still get the two most important functions) is still the default. I'm uncertain that it might not be better to make the new option the default, though, since the compromise option is optimal for _nobody_. file: [d41fb5a0e1] check-in: [cc4808683d] user: simon branch: trunk, size: 122086
2003-11-19
14:48
Introduce a context menu which appears on Ctrl+rightclick. This menu contains all the stuff in the System menu except for the standard System menu bits (move, resize, close etc), and also contains `Paste'. file: [c7e7b65f7e] check-in: [27e67f22ab] user: simon branch: trunk, size: 121975
2003-11-06
08:17
Cosmetic fix from Daniel Fazekas: apparently we were failing to allow window-furniture in Playschool Windows be animated on mouse-over. This fix also seems like the Right Thing to do. I've tried it and it seems harmless enough on Win2K. file: [bb9b7020d6] check-in: [5436148628] user: jacob branch: trunk, size: 120993
2003-10-12
08:46
The WinSock library is now loaded at run-time, which means we can attempt to load WS2 and then fall back to WS1 if that fails. This should allow us to use WS2-specific functionality to find out the local system's list of IP addresses, thus fixing winnet-if2lo, while degrading gracefully back to the previous behaviour if that functionality is unavailable. (I haven't yet actually done this; I've just laid the groundwork.) This checkin _may_ cause instability; it seemed fine to me on initial testing, but it's a bit of an upheaval and I wouldn't like to make bets on it just yet. file: [b81c4f354a] check-in: [6773da81d2] user: simon branch: trunk, size: 120996
2003-09-03
15:14
Implement `default-colours' on Windows based loosely on Michael Wardle's patch. file: [be1e5776c8] check-in: [97f6c76b52] user: jacob branch: trunk, size: 121810
2003-08-21
14:48
Fix for `slow-startup-printer': use PRINTER_INFO_4 on NT-class systems, which apparently tries less hard to find printers so won't slow the system down. Tested on 2000 and 98; in both cases printer enumeration and printing worked as well as they did in 2003-08-21. Made a single shared copy of osVersion in winmisc.c so that printing.c can find it. Made other users (window.c, pageant.c) use this copy. file: [d5c60cad36] check-in: [7271667d51] user: jacob branch: trunk, size: 120696
2003-06-28
02:52
Someone pointed out that ^~ should generate the same as ^^, for consistency with xterm. file: [10e4285f2f] check-in: [54510097cb] user: simon branch: trunk, size: 120911
2003-06-19
15:42
Fix for `double-alt-keystrokes'. Thanks to Leonid Lisovskiy. file: [fde41fe364] check-in: [fdafcc52a8] user: jacob branch: trunk, size: 120775
2003-05-24
07:31
Modified form of Jim Lucas's PC speaker patch. I don't like discriminating on the Windows version in order to decide whether to call MessageBeep(-1) or Beep() - I'd prefer to directly test the specific OS property in any given case - but it looks as if this is the best available option. file: [0b83f95807] check-in: [ec24b318e6] user: simon branch: trunk, size: 120765
2003-05-04
09:18
Colin's const-fixing Patch Of Death. Seems to build fine on Windows as well as Unix, so it can go in. file: [a4665bbd62] check-in: [c9f1945192] user: simon branch: trunk, size: 120354
09:14
Colin's and my fixes to connection_fatal(). file: [8b900e53dd] check-in: [1bf6f94877] user: simon branch: trunk, size: 120348
2003-04-28
08:59
Asynchronous agent requests on Windows. Actually, I've kept the ability to do synchronous ones as well, because PSCP and PSFTP don't really need async ones and it would have been a serious pain to implement them. Also, Pageant itself when run as a client of its primary instance doesn't benefit noticeably from async agent requests. file: [f5c97cefaa] check-in: [e54332edd4] user: simon branch: trunk, size: 120279
2003-04-11
13:36
Rationalisation of the system of frontend handles. Most modular bits of PuTTY (terminal, backend, logctx etc) take a `void *' handle passed to them from the frontend, and used as a context for all their callbacks. Most of these point at the frontend structure itself (on platforms where this is meaningful), except that the handle passed to the backend has always pointed at the terminal because from_backend() was implemented in terminal.c. This has finally bitten Unix PuTTY, because both backend and logctx have been passing their respective and very different frontend handles to logevent(), so I've fixed it. from_backend() is now a function supplied by the _frontend_ itself, in all cases, and the frontend handle passed to backends must be the same as that passed to everything else. What was from_backend() in terminal.c is now called term_data(), and the typical implementation of from_backend() in a GUI frontend will just extract the terminal handle from the frontend structure and delegate to that. This appears to work on Unix and Windows, but has most likely broken the Mac build. file: [ddea3f468f] check-in: [70ba0246e2] user: simon branch: trunk, size: 119587
2003-04-06
09:11
Now that we have `appname', make much wider use of it. In particular, the config box uses it in place of the word `PuTTY', which means mid-session reconfig in pterm will look less strange once I implement it. Also, while I'm at it, I've personalised all the dialog boxes and menu items and suchlike so that PuTTYtel actually claims to be PuTTYtel rather than PuTTY. file: [4c674cd79d] check-in: [9f2b96b3a4] user: simon branch: trunk, size: 119465
2003-04-04
14:21
Turned the old `Telnet Command' System-submenu into a more general `Special Command' menu, in which any backend can place its own list of magical things the user might want to ask the backend to do. In particular I've implemented the recently proposed "break" extension in SSH2 using this mechanism. NB this checkin slightly breaks the Mac build, since it needs to provide at least a stub form of update_specials_menu(). file: [d326b77907] check-in: [53746610b8] user: simon branch: trunk, size: 118733
2003-03-29
12:30
pterm now uses the new uxsel module, so it's one step closer to being able to be a PuTTY as well as a pterm. In the process I've also moved icky things like actually reading from the pty fd and printing the `terminated on signal' messages into pty.c where they obviously should have been in the first place. Also there's been one interesting repercussion in the terminal code: terminal.c's from_backend now calls term_out() directly rather than expecting the front end to call it afterwards. This has had the entertaining side effect of fixing a Windows-specific bug whereby activity in a port forwarding through a PuTTY with a blinking cursor caused the cursor to blink to ON (!!!!). So, a surprisingly far-reaching checkin as it turns out... file: [732a3fbe65] check-in: [b384cf23f7] user: simon branch: trunk, size: 119884
10:14
Introduced wrapper macros snew(), snewn() and sresize() for the malloc functions, which automatically cast to the same type they're allocating the size of. Should prevent any future errors involving mallocing the size of the wrong structure type, and will also make life easier if we ever need to turn the PuTTY core code from real C into C++-friendly C. I haven't touched the Mac frontend in this checkin because I couldn't compile or test it. file: [a9f6ce564a] check-in: [48c3c19745] user: simon branch: trunk, size: 119942
2003-02-01
06:54
Created new data types `Filename' and `FontSpec', intended to be opaque to all platform-independent modules and only handled within per-platform code. `Filename' is there because the Mac has a magic way to store filenames (though currently this checkin doesn't support it!); `FontSpec' is there so that all the auxiliary stuff such as font height and charset and so on which is needed under Windows but not Unix can be kept where it belongs, and so that I can have a hope in hell of dealing with a font chooser in the forthcoming cross-platform config box code, and best of all it gets the horrid font height wart out of settings.c and into the Windows code where it should be. The Mac part of this checkin is a bunch of random guesses which will probably not quite compile, but which look roughly right to me. Sorry if I screwed it up, Ben :-) file: [7ecde9399e] check-in: [497dc397e7] user: simon branch: trunk, size: 119837
2003-01-27
17:03
xterm apparently supports ESC[90m through ESC[97m to set bright foreground colours, and ESC[100m through ESC[107m to set bright background colours. Hence, so do we. Bright-foreground is distinguishable from bold, and bright-background distinguishable from blink, when it leaves terminal.c; the front end may then choose to display them in the same way if it's configured to do so. This change makes the xterm backend for Turbo Vision (!!!) work properly. Untested on Mac. file: [b920a5e5ad] check-in: [a7834c6a71] user: simon branch: trunk, size: 119774
12:02
Remove all `enum'-typed variables from the Config structure. Everything in there which is integral is now an actual int, which means my forthcoming revamp of the config box will be able to work with `int *' pointers without fear of doom. file: [d43678dbd9] check-in: [b7a1f42e84] user: simon branch: trunk, size: 119676
2003-01-25
10:22
Fix minor breakage on Windows as a result of term_mouse revamp. file: [4c55eb1d61] check-in: [152c010761] user: simon branch: trunk, size: 119686
10:16
Change the term_mouse interface a little so that it gets passed both the raw and the cooked mouse button, with the mapping being done in advance by the front-end. This is useful because it allows the front-end to use information other than the raw button (e.g. the modifier state) to decide which cooked button to generate. . Front ends other than the Mac one are untested, but they just call translate_button() themselves and pass the result to term_mouse(). file: [4f57781177] check-in: [b60ae0056c] user: ben branch: trunk, size: 119718
2003-01-15
18:52
Statements after declarations, dammit file: [e91e11b3d4] check-in: [307baf6078] user: jacob branch: trunk, size: 119476
14:47
Implement Simon's suggestion of moving DEFAULT_PROTOCOL into a per-backend- link-module const variable `be_default_protocol' which suggests a sensible default to the front end (which can ignore it). (DEFAULT_PORT is replaced by a lookup in the backend[] table.) Still not pretty, but it does mean that the recent fix for `ssh-default' doesn't break PuTTYtel. file: [50f1f5dad0] check-in: [184dd22aa5] user: jacob branch: trunk, size: 119476
08:51
Use set_icon and set_title rather than SetWindowText. Should fix inactive-title. file: [1390de5af6] check-in: [10b8c5f189] user: owen branch: trunk, size: 119232
2003-01-14
12:28
Deglobalise the Unicode module. Despite all my grand plans, I've just done this the very simple way - bundle all the globals into a data structure and pass pointers around. One particularly ugly wart is that wc_to_mb now takes a pointer to this structure as an argument (optional, may be NULL, and unused in any Unicode layer that's even marginally less of a mess than the Windows one). I do need to do this properly at some point, but for now this should just about be adequate. As usual, the Mac port has not been updated. file: [e956a417c2] check-in: [483cb38b72] user: simon branch: trunk, size: 119162
05:24
Ctrl-PgUp and Ctrl-PgDn now scroll by one line on Unix and Windows file: [d34e96fccd] check-in: [62e9596ee2] user: owen branch: trunk, size: 118921
2003-01-13
12:03
Oops - put the right `void *' in back->reconfig. file: [4a8e653806] check-in: [182b57a102] user: simon branch: trunk, size: 118690
09:06
Make ^/ do the same as ^_ (wish control-slash) file: [2399f1cda8] check-in: [9c37f01da2] user: owen branch: trunk, size: 118684
2003-01-12
09:32
Having laid all the groundwork, we can now remove the global `cfg' completely from putty.h. It's now static in each of the command-line front ends, shared only between window.c and windlg.c in PuTTY proper (I've tested this by doing #define cfg cfgsillyname in those two files only, and it still links so nobody else is using that symbol!), and part of the `inst' structure in pterm. I think that only leaves the Unicode module as the last stubborn holdout in the anti-global-variables campaign. file: [12b8ca7dc2] check-in: [c3e7c65a17] user: simon branch: trunk, size: 118664
09:10
The logging module now contains a local copy of cfg too. file: [b86a08dc47] check-in: [425e784a06] user: simon branch: trunk, size: 118615
08:59
The Unicode module no longer depends on `cfg', since it gets the relevant bits of it passed in to init_ucs(). (Actually I pass in all of it in the Windows version, since it's a bit hairy in there.) file: [9668a806b2] check-in: [c14614baa6] user: simon branch: trunk, size: 118697
08:48
The back ends now contain their own copies of the Config structure, and have a function to pass in a new one. (Well, actually several back ends don't actually bother to do this because they need nothing out of Config after the initial setup phase, but they could if they wanted to.) file: [c113e759ec] check-in: [f4d72755c1] user: simon branch: trunk, size: 118693
08:30
term->cfg is now a full copy of the Config structure, not a pointer; and term_reconfig() now passes in a new structure which is copied over the top. This means that the old and new structures can be compared, and the _current_ as well as default states of auto wrap mode, DEC origin mode, BCE, blinking text and character classes can be conveniently reconfigured in mid-session without requiring a terminal reset. file: [d1ff0d428a] check-in: [1d1cf2f03f] user: simon branch: trunk, size: 118611
08:17
The command-line routines now take a pointer to `cfg' as an argument, so they don't depend on it being a global any more. file: [6102a45f24] check-in: [5c4ededf67] user: simon branch: trunk, size: 118616
2002-12-15
07:31
Fixing trivial warnings spotted by Mingw-2.0.0/gcc-3.2: window.c:90: warning: `do_mouse_wheel_msg' declared `static' but never defined Introduced in 1.185 [r1499]. This function doesn't appear to ever have existed. file: [49b70a56d3] check-in: [338cfdddcd] user: jacob branch: trunk, size: 118591
2002-11-23
14:02
Add a Config * argument to ldisc_create(), and use it in place of the global cfg throughout ldisc.c. Not tested other than on Mac, but all other ports just pass &cfg as this argument for now. file: [6df7d681be] check-in: [94b6511b43] user: ben branch: trunk, size: 118666
13:01
Add a "Config *" argument to term_init(), and use that instead of the global cfg throughout the terminal emulator. Not tested in PuTTY and pterm, but they just pass in &cfg. file: [c2d619219f] check-in: [40ee80fefa] user: ben branch: trunk, size: 118660
2002-11-20
14:09
Fixes for more robust handling of command-line parse errors. file: [c9f882f760] check-in: [7ee5329b06] user: simon branch: trunk, size: 118654
2002-11-09
15:46
Rename CharWidth() to char_width(). The former name clashes with an API function in Mac OS. file: [8098a61ed7] check-in: [b80c92ed92] user: ben branch: trunk, size: 118594
2002-10-30
12:12
Further deglobalisation: settings.c now has a more sensible interface. file: [82fdf2aa2c] check-in: [ae09f4f6ac] user: simon branch: trunk, size: 118593
2002-10-26
09:06
Retire another global in favour of adding a feature to the terminal.c interface. file: [6ce52ccd6f] check-in: [13567ae2ad] user: simon branch: trunk, size: 118402
07:58
Yet more global-removal. The static variables in logging.c are now absent, and also (I think) all the frontend request functions (such as request_resize) take a context pointer, so that multiple windows can be handled sensibly. I wouldn't swear to this, but I _think_ that only leaves the Unicode stuff as the last stubborn holdout. file: [152b793e23] check-in: [8fba443d8c] user: simon branch: trunk, size: 118423
06:08
Reorganised the Unicode layer somewhat: moved luni_send and lpage_send out into the line discipline, making them _clients_ of the Unicode layer rather than part of it. This means they can access ldisc->term, which in turn means I've been able to remove the temporary global variable `term'. We're slowly getting there. file: [2ca4de8fab] check-in: [457ce6905a] user: simon branch: trunk, size: 117891
05:33
Port forwarding module now passes backend handles around properly. As a result I've now been able to turn the global variables `back' and `backhandle' into module-level statics in the individual front ends. Now _that's_ progress! file: [4581eb0652] check-in: [06cff2eb6c] user: simon branch: trunk, size: 117875
05:16
Line discipline module now uses dynamically allocated data. Also fixed one or two other minor problems. file: [07ef4586fd] check-in: [d16199ae68] user: simon branch: trunk, size: 117828
2002-10-25
06:30
Major destabilisation, phase 2. This time it's the backends' turn: each backend now stores all its internal variables in a big struct, and each backend function gets a pointer to this struct passed to it. This still isn't the end of the work - lots of subsidiary things still use globals, notably all the cipher and compressor modules and the X11 forwarding authentication stuff. But ssh.c itself has now been transformed, and that was the really painful bit, so from here on it all ought to be a sequence of much smaller and simpler pieces of work. file: [409d038c6f] check-in: [92e8b2cec5] user: simon branch: trunk, size: 117545
2002-10-24
09:12
Oops - repercussions of the close-on-exit stuff which I forgot to check in. I must stop doing my Unix checkins in the Unix subdir :-( file: [458fe66a25] check-in: [74f4ced28a] user: simon branch: trunk, size: 117226
2002-10-22
11:11
Major destabilisation, phase 1. In this phase I've moved (I think) all the global and function-static variables out of terminal.c into a dynamically allocated data structure. Note that this does not yet confer the ability to run more than one of them in the same process, because other things (the line discipline, the back end) are still global, and also in particular the address of the dynamically allocated terminal-data structure is held in a global variable `term'. But what I've got here represents a reasonable stopping point at which to check things in. In _theory_ this should all still work happily, on both Unix and Windows. In practice, who knows? file: [1385854de4] check-in: [c56a5fa8ee] user: simon branch: trunk, size: 116955
2002-10-20
08:23
Implement Richard's really clever idea about bell overload mode: it's automatically deactivated by any keypress, so that command-line beeps from (e.g.) filename completion don't suddenly stop occurring, but it still provides a rapid response to an accidental spewing of a binary to your terminal. file: [cc0961bf20] check-in: [89a7cd7830] user: simon branch: trunk, size: 115970
2002-10-16
06:35
Fix for `hostname-whitespace'; thanks to Justin Bradford. file: [44688628e6] check-in: [39093dcc64] user: simon branch: trunk, size: 115936
04:40
Bug `shift-backspace': whichever of ^H and ^? is configured for Backspace, Shift-Backspace should do the _other_ one. Thanks to Justin Bradford. file: [3e917d31f5] check-in: [74ba290d86] user: simon branch: trunk, size: 115659
2002-10-13
06:24
Selection now supported in pterm. Required small modifications outside the unix subdir, owing to more things needing to become platform-dependent. file: [488c11bf7a] check-in: [e4d89ad7c0] user: simon branch: trunk, size: 115457
2002-10-09
13:09
First phase of porting. pterm now compiles and runs under Linux+gtk. The current pty.c backend is temporarily a loopback device for terminal emulator testing, the display handling is only just enough to show that terminal.c is functioning, the keyboard handling is laughable, and most features are absent. Next step: bring output and input up to a plausibly working state, and put a real pty on the back to create a vaguely usable prototype. Oh, and a scrollbar would be nice too. In _theory_ the Windows builds should still work fine after this... file: [1191c0c986] check-in: [2d8039929a] user: simon branch: trunk, size: 115240
2002-09-15
17:18
Jordan Russell's mysterious workaround for an almost equally mysterious Windows GDI bug. Looks unlikely to cause any other trouble and it's pretty small, so it can go in. file: [4ee5b3fb30] check-in: [42fa4ba837] user: simon branch: trunk, size: 114900
2002-08-06
12:57
Pageant's command line handling now uses my new split_into_argv() function, because it's silly to have two (and because the old one was not the same as the new one, violating the Principle of Least Surprise). file: [433c70ada5] check-in: [40423b941a] user: simon branch: trunk, size: 114539
2002-08-04
16:18
Revamp of command-line handling. Most command line options should now be processed in cmdline.c, which is called from all utilities (well, not Pageant or PuTTYgen). This should mean we get to standardise almost all options across almost all tools. Also one major change: `-load' is now the preferred option for loading a saved session in PuTTY proper. `@session' still works but is deprecated. file: [3f964e0512] check-in: [6e2207da2f] user: simon branch: trunk, size: 114533
2002-03-20
16:16
Fix bug in the alternative code for -DNO_MULTIMON (was breaking Cygwin build). file: [3b6c2cefec] check-in: [c509d941a1] user: simon branch: trunk, size: 113677
2002-03-13
16:15
Fix multi-monitor / full-screen problems and clean up the code a little. Thanks to Wez Furlong for the patch. file: [4da7346716] check-in: [3b90d0293e] user: simon branch: trunk, size: 113678
13:55
Rev 1.189 [r1517] of this file introduced a bug. While it is correct to avoid calling term_out() during a drag-select, it's false to assume that all drags are selects - some are xterm mouse-reported drags, and term_out absolutely _should_ be called in those so that the application can show the dragged object moving. Should now be fixed. file: [e37c2fe5c3] check-in: [df653f67a1] user: simon branch: trunk, size: 113307
2002-03-09
05:47
Well, there was bound to be one I'd forgotten: the new Features panel should include an option to disable xterm mouse reporting. So now it does. Woo. file: [48461ba084] check-in: [e6d4001b7e] user: simon branch: trunk, size: 112967
2002-03-06
17:04
Add the Features panel, allowing you to disable a bunch of the more controversial terminal features. file: [abf28abfbc] check-in: [3480bd8f5e] user: simon branch: trunk, size: 112817
14:13
Ensure our network layer is properly cleaned up before PuTTY exits. Specifically, we explicitly closesocket() all open sockets, which appears to be necessary since otherwise Windows sends RST rather than FIN. I'm _sure_ that's a Windows bug, but there we go. file: [70924594a1] check-in: [c483e38b9f] user: simon branch: trunk, size: 112741
2002-01-17
06:22
Experimental checkin: re-enable support for the static WM_MOUSEWHEEL even on systems where the version number check thinks we should be expecting a dynamically registered message number. I have a suspicion the version check isn't accurate in all circumstances; and in any case, in a situation like this where Windows might send you either of two things, it's better to be ready to deal with both than to try and second-guess which one you'll get. file: [ac8c89a4d9] check-in: [0361f8693e] user: simon branch: trunk, size: 112562
2002-01-08
03:56
Patch from RDB: the xterm move-window sequences now don't screw up when the window is e.g. maximised. file: [0fc777979a] check-in: [90f72640be] user: simon branch: trunk, size: 112534
03:44
Patch from RDB: make /DNO_MULTIMON (mentioned as a possible compile-time definition in the Makefile) actually work. D'oh. file: [1479cffdda] check-in: [2150c4cd76] user: simon branch: trunk, size: 112408
2001-12-29
08:47
Jordan Russell's patch (3rd of several). We now don't call TermOut() if the PuTTY window has the mouse capture (i.e. a drag-select is in progress). This means you can drag-select at your leisure without the screen contents wandering around providing you with a moving target. Likewise dragging the scrollbar to find a piece of history in the scrollback. file: [411e170f6b] check-in: [7968928a27] user: simon branch: trunk, size: 112381
08:05
Jordan Russell's patch: only process mouse drags when we have the mouse capture, which in turn will only occur if the initial click was in the PuTTY client area. Prevents mouse drag events without an initiating click, and also prevents selection occurring at unexpected moments such as if you move the mouse before releasing the second click after double-clicking the title bar to maximise the window. file: [b574a97bd6] check-in: [3107866ddc] user: simon branch: trunk, size: 112322
2001-12-20
08:18
This should fix the busy-wait problem with the IME. file: [7df3bfbfb8] check-in: [712c16f465] user: simon branch: trunk, size: 112293
2001-12-16
06:11
Replace the definition of WHEEL_DELTA which was removed in rev 1.185 [r1499]. For some reason Borland builds were working perfectly OK without it, but VC builds were failing. *shrug* file: [df9e29e040] check-in: [1a2c99f873] user: simon branch: trunk, size: 111688
2001-12-15
08:30
A contributor tells me that WM_MOUSEWHEEL is not supported in Win95, and offers a patch that uses RegisterMessage() to acquire the correct dynamic message number to use instead. file: [9bf9953e6e] check-in: [6d34997dec] user: simon branch: trunk, size: 111639
05:49
Reverse part of RDB's pedantic patch from rev 1.129 [r1105]: app cursor and app keypad modes are now once again independently switchable. The VT100 and VT102 manuals may have done it RDB's way as he said, but xterm and rxvt disagree and at least one app depends on the xterm way. It'll have to become a configurable option if anyone has trouble with this. file: [f7daef7c6d] check-in: [be908f7252] user: simon branch: trunk, size: 110791
05:10
Jaeyoun Chung's mysterious patch that apparently makes Korean input work properly: call luni_send() one character at a time rather than all together after WM_IME_COMPOSITION. file: [119e7631b8] check-in: [823eb5868a] user: simon branch: trunk, size: 110378
2001-12-14
08:57
Retired the #ifdef DUMP_PACKETS stuff in ssh.c because I'm utterly sick of recompiling to enable packet dumps. SSH packet dumping is now provided as a logging option, and dumps to putty.log like all the other logging options. While I'm at it I cleaned up the format so that packet types are translated into strings for easy browsing. POSSIBLE SIDE EFFECT: in the course of this work I had to re-enable the SSH1 packet length checks which it turns out hadn't actually been active for some time, so it's possible things might break as a result. If need be I can always disable those checks for the 0.52 release and think about it more carefully later. file: [db678d5f0c] check-in: [94f359321d] user: simon branch: trunk, size: 110126
2001-12-11
12:47
Fixes to full-screen mode. There were various problems when you went full-screen, then selected Change Settings and then changed the resize behaviour, ranging from the window staying FS but acquiring borders to the window restoring its previous size and _failing_ to acquire borders. Should now all be fixed. file: [d63c3dfafa] check-in: [df96d39626] user: simon branch: trunk, size: 110126
12:47
Fix compiler warnings file: [7b7dad8167] check-in: [33277f321e] user: simon branch: trunk, size: 109736
2001-12-07
15:21
FIFTH ATTEMPT at getting full-screen mode right. This new attempt (which I'll comment at some stage) should combine the believable semantics of RDB's fullscreen-by-maximise mode with the multi- monitor friendliness of Wez Furlong's approach while also working on Win98. If we're lucky. file: [88e802fdc5] check-in: [0d4bfb165e] user: simon branch: trunk, size: 109794
14:37
Owen's patch to allow PowerMenu (third-party transparency tool) to not crash PuTTY. file: [c494895ea6] check-in: [62789afced] user: simon branch: trunk, size: 108929
2001-12-06
07:28
Integrate PuTTY and its help file. Now that's what I call a good lunchtime's work :-) file: [03692bbdb2] check-in: [70ffdc7b62] user: simon branch: trunk, size: 108828
2001-11-29
15:47
Configurable TCP_NODELAY option on network connections file: [081a10c1a4] check-in: [8daaf4c09d] user: simon branch: trunk, size: 107897
15:30
Set up kbd_codepage at the start of the program, as well as when the input locale changes. With any luck this should sort out the Polish Unicode problems. file: [aaa17603b6] check-in: [2efa15e64a] user: simon branch: trunk, size: 107880
2001-11-25
12:39
RDB's general resizing cleanup. He's put his favourite resize mode back in again, but as long as it's not the default it doesn't bother me too much :-) file: [fec4f9ca02] check-in: [e11a7a7ba1] user: simon branch: trunk, size: 107782
09:21
Add support for most of the ESC[<low number>t sequences, which xterm uses to manipulate the window (minimise, maximise, front, back, move, resize) and report things about the window (is it minimised or maximised, how big is it, what's its title). Missing are ESC[4;X;Yt (resize to a specified pixel size; our resize code doesn't like it) and ESC[19;X;Yt (report size of _screen_ in _characters_, which it isn't even obvious how to do when you've got a variable font size). file: [b14d41969f] check-in: [6732f3ea58] user: simon branch: trunk, size: 106542
04:24
Jacob's patch to make full-screen mode available even when Alt-Enter isn't configured to do it: we now have a sysmenu option for it. In addition, there's a special case such that clicking the top left pixel on the screen in full-screen mode brings up the sysmenu (so you can still get at the sysmenu in FS mode without Alt-anything configured to bring it up and without ghastly fiddling with the Windows key). Also Change Settings while in full-screen mode now adds/removes the scrollbar in response to scrollbar_in_fullscreen rather than scrollbar (oops). file: [200575044e] check-in: [498eba7d6b] user: simon branch: trunk, size: 104738
2001-11-24
05:56
Glenn Maynard's other IME fix file: [0a1aa97f79] check-in: [bf596d8e40] user: simon branch: trunk, size: 103960
2001-11-23
13:12
Glenn Maynard's IMM cursor position fix file: [ee4e6a9705] check-in: [23fffa3d81] user: simon branch: trunk, size: 103201
2001-11-21
16:31
Make sure we always unhide the mouse pointer when the System menu is displayed. file: [d24d926d84] check-in: [5701095abe] user: simon branch: trunk, size: 103170
16:23
Ctrl and Alt shouldn't reset the scrollback even if reset-on- keypress is enabled. (Shift already didn't, because that was necessary for Shift-Pg{Up,Dn} to work sanely.) file: [27476849ad] check-in: [72e56b86a0] user: simon branch: trunk, size: 102921
2001-11-08
03:20
Whoops - missed out a vital bit of RTF Unicode fallback handling file: [fb66db9b66] check-in: [16f631b503] user: simon branch: trunk, size: 102875
2001-11-07
16:22
Implement writing RTF to the clipboard (off by default), so that if you enable it text will paste into Word et al in the same font as PuTTY itself is displaying in. In particular, this will be a fixed- pitch font, so tables and `ls' and the like will naturally line up. file: [cec05c47a9] check-in: [3f76bd5d3b] user: simon branch: trunk, size: 102852
2001-11-04
10:41
RDB's fix to full-screen mode. Apparently sorts out most of the fullscreen/maximised confusions, by treating fullscreen as a special case of maximised (fair enough). Removes dependency on multimon.h, but Wez thinks (though he was unable to test) that this version should naturally do the Right Thing on multi-monitor systems anyway. file: [35a45b3377] check-in: [72255de130] user: simon branch: trunk, size: 99180
2001-10-31
12:50
Rectangular-block selection. Enabled by Alt+drag, unless you configure it to be the default in which case it's _dis_abled by Alt+drag. file: [64530e24c9] check-in: [a0fdeb0323] user: simon branch: trunk, size: 99899
2001-10-28
03:57
Fix the `SERIOUS NETWORK INTERNAL ERROR' oversight in winnet.c. See the comment in try_send() for details of the problem. file: [307512a112] check-in: [e90219ba63] user: simon branch: trunk, size: 99531
2001-10-23
15:25
Add Jacob's patch for compiling without multimon.h. file: [f927dca947] check-in: [1e80b47e4c] user: simon branch: trunk, size: 99110
2001-10-17
16:21
Wez Furlong's patch to tidy up full-screen mode: make it multi-monitor aware and make the scrollbar separately configurable in and out of full-screen mode. Also (not Wez's patch, this bit) fix the case where the user reconfigures _while_ the window is full-screen, and disables full-screening. (In this case the window should return gracefully to normal, rather than losing all its title bars and getting confused.) file: [6484710683] check-in: [e27f621300] user: simon branch: trunk, size: 99053
2001-10-12
16:10
Revamp the window-resize behaviour UI so there are only three states rather than four. Should fix all sorts of bugs, since the fourth (and default!) state was behaving weirdly and nobody liked it. file: [e003f19b0d] check-in: [f5a6ba12ab] user: simon branch: trunk, size: 97258
2001-09-21
12:54
Ongoing pastes were being abandoned on any key-down event. Quite apart from the debatable semantic sanity of abandoning mid-paste, this was breaking Shift-paste (theoretically valid in any case, actually necessary with xterm mouse reporting enabled) because when you hold down Shift the window receives a steady stream of KEYDOWN messages as the key auto-repeats. One of those is likely to show up in mid-paste and scupper you. For the moment, this has been changed so that only a key press that actually _generates session data_ aborts a paste. In future I plan to review just why we're doing this anyway (it may be that paste-little-by-little was a response to rubbish socket buffering, in which case we can dispense with it completely now). file: [50d7af7dc0] check-in: [9c04bcb4c3] user: simon branch: trunk, size: 96995
2001-09-19
15:07
Fix pasting of newlines in local line editing mode. Possibly not a very _good_ fix; something might want doing after the release. file: [31144a928f] check-in: [a8202e3593] user: simon branch: trunk, size: 96655
2001-09-18
14:41
terminal.c's from_backend() no longer calls term_out(), because term_out() can in turn call ldisc_send() which calls back to from_backend() when local echo is enabled. This was giving rise to crazy re-entrancy stuff and stack overflows. Instead from_backend() deposits its data in a bufchain which term_out() empties the next time it's called. file: [406ba9cd37] check-in: [126e861724] user: simon branch: trunk, size: 96619
13:51
Reintroduce Cyrillic Caps Lock mode, which was in 0.51 but got kicked out by the Unicode patch. It's not very good - only works sanely on US keyboards - but it's no worse than it was in 0.51. After 0.52 maybe I should fix it properly. file: [66efa13a56] check-in: [e75e061854] user: simon branch: trunk, size: 96773
2001-09-15
10:54
Three more patches from RDB: one to make Atomica work right, one to fiddle with the widths of characters in DBCS screen fonts, and (the big one) one to enable a mode in which resizing the window locks the terminal size and lets the font change, instead of vice versa. That should shut up a few feature requests! file: [29c0111940] check-in: [6eb650f7e4] user: simon branch: trunk, size: 96418
2001-09-13
13:24
Christopher Allene's patch for going full-screen on Alt-Enter. file: [cdf75216c5] check-in: [277a51c207] user: simon branch: trunk, size: 85885
2001-09-07
17:43
Patch from RDB: fix the failure to display window-resize pointers when in raw mouse mode. file: [b6eb8ac6dc] check-in: [83eafe263a] user: simon branch: trunk, size: 85000
17:39
Robert de Bath's asynchronous-connect patch. Helps a lot in port forwarding; improves Event Log; and causes the PuTTY window to appear earlier in the setup process. file: [feafe78eab] check-in: [30ca2ba730] user: simon branch: trunk, size: 84970
16:39
Robert de Bath's `Patch.a_alt_key': clean up the handling of Alt-Space, Alt-only and the System menu. It lets Windows do more of the work, and also saves a static variable, so it must be good :-) file: [e0d7dff509] check-in: [e43f14f260] user: simon branch: trunk, size: 84876
15:35
Jacob's patch to cause Shift to return to copy-and-paste when xterm mouse tracking is enabled. (This can be turned off if your app really wants Shift+mouse, but it defaults to on for general usefulness.) file: [3b141fb0ca] check-in: [a543edc35c] user: simon branch: trunk, size: 84472
15:32
Oops, fix that fix. TranslateKey can return <0 and it needs to be dealt with. I don't recall being told that; I should comment it at some stage. file: [85c29e851a] check-in: [edd03b54bc] user: simon branch: trunk, size: 84414
15:18
Fix mouse hiding on keypresses, which was failing due to the Unicode patch having done something bizarre to the semantics of TranslateKey. file: [c3d8c5dc75] check-in: [d5890df1d1] user: simon branch: trunk, size: 84413
2001-08-25
12:09
Extensive changes that _should_ fix the socket buffering problems, by ceasing to listen on input channels if the corresponding output channel isn't accepting data. Has had basic check-I-didn't-actually- break-anything-too-badly testing, but hasn't been genuinely tested in stress conditions (because concocting stress conditions is non- trivial). file: [7b0ee7955d] check-in: [e84a3c910c] user: simon branch: trunk, size: 84347
2001-08-08
15:44
SSH port forwarding! How cool is that? Only currently works on SSH1; SSH2 should be doable but it's late and I have other things to do tonight. The Cool Guy award for this one goes to Nicolas Barry, for doing most of the work and actually understanding the code he was adding to. file: [f9c3d47c40] check-in: [c9959c44e1] user: simon branch: trunk, size: 83787
2001-08-07
03:42
Remove the OSVERSIONINFOEX code because there's no obvious way to determine whether it'll compile before receiving the compile error. Gah. file: [a4b4f4607b] check-in: [e7014303b2] user: simon branch: trunk, size: 83775
2001-08-04
10:45
Glenn Maynard's patch completely disabled PuTTY{,tel} on any system that didn't support OSVERSIONINFOEX. For example, such wildly out of date things as NT4. Now fixed. file: [a39ebed83f] check-in: [c5403c3d00] user: simon branch: trunk, size: 83799
10:15
Glenn Maynard's IME patch file: [2b491e18a4] check-in: [294111b8ec] user: simon branch: trunk, size: 83789
09:35
SCO function key mode now affects the small keypad (Ins, Del, etc) in accordance with the keymap dump sent by Len Christiansen. file: [536ce517a2] check-in: [ef483ba629] user: simon branch: trunk, size: 82184
2001-05-19
10:23
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. file: [fdae7e30b8] check-in: [0abdaf66e2] user: simon branch: trunk, size: 81894
10:21
RDB: fix various UTF-8 glitches. file: [04982d5b37] check-in: [535ae2faab] user: simon branch: trunk, size: 81863
2001-05-17
05:06
Reinstate the Shift-Ins paste behaviour, which was accidentally broken by the mouse button redesignation that came with xterm mouse reporting. file: [3bdf2d22ed] check-in: [db22a9a980] user: simon branch: trunk, size: 81854
2001-05-13
10:01
Fix wrong button codes in WM_MOUSEMOVE. file: [002c33e789] check-in: [54b1873e8d] user: simon branch: trunk, size: 81934
09:42
Glenn Maynard's patch (as adapted by Jacob) for taskbar flashing when a bell occurs and the window is minimised. file: [40117b7995] check-in: [ea3235431d] user: simon branch: trunk, size: 82003
09:02
Placate gcc's `-Wall' warnings. file: [b368aa3704] check-in: [e91a557356] user: simon branch: trunk, size: 80985
08:23
Trim leading whitespace off the hostname if it's there. file: [26c6faea49] check-in: [04601e8451] user: simon branch: trunk, size: 80869
06:19
Define WM_MOUSEWHEEL (to 0x20A) if it's not defined by windows.h. file: [f9f844ceb0] check-in: [5614953563] user: simon branch: trunk, size: 80685
05:58
Fix the SCO function keys, which weren't quite right. file: [dd3b2f3a70] check-in: [6aba0e120d] user: simon branch: trunk, size: 80556
2001-05-10
03:34
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. file: [3c94182219] check-in: [07c01546d9] user: simon branch: trunk, size: 79887
2001-05-09
10:12
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. file: [e3a82a71d1] check-in: [79d07d1f16] user: simon branch: trunk, size: 78015
09:01
`realhost', passed back from all the backend init functions, was scoped within those functions. It's now dynamically allocated. file: [254af275a3] check-in: [b0b7726ce6] user: simon branch: trunk, size: 77994
08:30
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. file: [b835b4bb1a] check-in: [ee9eb094a4] user: simon branch: trunk, size: 77976
08:03
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. file: [6ead65f826] check-in: [6fa615e2f7] user: simon branch: trunk, size: 77681
2001-05-06
11:18
Fix de Bath's last-ditch bell overload file: [c52f5f4d3d] check-in: [c9e608f9cb] user: simon branch: trunk, size: 76826
10:09
Strip off and ignore `:port' on the end of a hostname. file: [1f32e42be5] check-in: [d04cb0347a] user: simon branch: trunk, size: 76704
09:35
Run entire source base through GNU indent to tidy up the varying coding styles of the various contributors! Woohoo! file: [8970cc9c27] check-in: [18fcbbf5a2] user: simon branch: trunk, size: 76596
09:20
Wez Furlong's patch to add xterm mouse reporting and proper mouse wheel support. file: [4c821e96e6] check-in: [0f7d39ca35] user: simon branch: trunk, size: 79764
2001-04-28
13:23
Reduce out-of-focus timer interval to 2 seconds so we still have some control over keepalives when not in the foreground. file: [197ffbc665] check-in: [abf72593a3] user: simon branch: trunk, size: 77956
13:02
Add Jordan Russell's patch for a sunken-edge border like a DOS box. Configurable, of course, because I for one like the border as thin as possible. file: [4db8f14f3a] check-in: [99c55fd985] user: simon branch: trunk, size: 77957
06:27
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... file: [408c4f81a8] check-in: [7887d61a80] user: simon branch: trunk, size: 77596
2001-04-16
16:33
Include <mmsystem.h> and winmm.lib for PlaySound. file: [9c08098b81] check-in: [382c2cdb71] user: simon branch: trunk, size: 77580
16:29
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. file: [e83f27146f] check-in: [ecb3fee8fc] user: simon branch: trunk, size: 77558
11:19
Quote the hostname in the `unable to connect' box so that if the user starts up N PuTTYs at once and one reports failure, they know which one. file: [753be676a0] check-in: [b190ef48b3] user: simon branch: trunk, size: 77152
11:16
Add two more ghastly function key options. WE HAVE TOO MANY! file: [b8e3840090] check-in: [8fba8a3021] user: simon branch: trunk, size: 77114
10:58
Roman Pompejus's patch to allow you to automatically select overwrite or append in logging mode. file: [965a635f0d] check-in: [676bb6f70a] user: simon branch: trunk, size: 76514
07:08
Small keyboard patches from Robert de Bath. Should fix the dead-key problem and also some unspecified woe with the ever-problematic Compose key. file: [71352cc383] check-in: [de331e82c3] user: simon branch: trunk, size: 76360
2001-04-14
06:37
Bell can now play an arbitrary sound file. file: [b603c79cbe] check-in: [f62324cb45] user: simon branch: trunk, size: 76259
2001-04-13
05:52
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... file: [e5e371b682] check-in: [09d0105a65] user: simon branch: trunk, size: 75866
2001-04-09
07:52
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). file: [9cb98c514a] check-in: [69c754c890] user: simon branch: trunk, size: 76043
07:46
Don't assume OEM fonts have a space in position 255. We know there's one in position 32 so let's use that! (Thanks RDB.) file: [05bb157866] check-in: [824897540b] user: simon branch: trunk, size: 75864
2001-03-12
06:24
Finally fixed the point/pixel confusion in font handling. Thanks to Roman Surma for pointing me at the relevant bits of documentation. All font sizes should now be measured in points, and everything should be consistent, and (with any luck) old Registry settings should adapt gracefully too. file: [87d872e519] check-in: [31527be6a5] user: simon branch: trunk, size: 75864
2001-03-02
03:25
Fix problem with pointer hiding file: [3b7c3efa26] check-in: [d2672cfce9] user: simon branch: trunk, size: 75751
2001-02-05
07:08
Jacob's patch to improve Close On Exit behaviour file: [5f73727e03] check-in: [0d1af1db05] user: simon branch: trunk, size: 75660
2001-01-29
08:31
Prevent "Connection closed" message box from appearing after the "Network error" box. The latter on its own is enough. file: [912b00e3f6] check-in: [9a505cf629] user: simon branch: trunk, size: 75524
2001-01-24
08:08
Rethink the whole line discipline architecture. Instead of having multiple switchable line disciplines, we now have a single unified one which changes its behaviour based on option settings. Each option setting can be suggested by the back end and/or the terminal handler, and can be forcibly overridden by the configuration. Local echo and local line editing are separate, independently switchable, options. file: [4d241611b2] check-in: [d2a045d8e1] user: simon branch: trunk, size: 75424
2001-01-23
11:37
Roman Pompejus's fix for the TAB-not-working-in-Event-Log bug file: [65a16ad7fc] check-in: [3c6a9820e7] user: simon branch: trunk, size: 75699
2001-01-22
10:38
Ability to hide the mouse pointer on a keypress a la Word file: [c08cf1129e] check-in: [e5b34e2fac] user: simon branch: trunk, size: 75618
2001-01-19
03:01
Keepalives are now in seconds not minutes file: [816a88a3c7] check-in: [848d3511b0] user: simon branch: trunk, size: 74966
2001-01-17
11:20
Tidy up that latest checkin. PS_DOTTED is spelled PS_DOT and in any case doesn't really cut it; we have to SetPixel every other one manually because although PS_ALTERNATE exists it only works under NT. Meanwhile, IDC_CURSTATIC was already used, for the cursor _keys_. Duh. file: [a50ae67d54] check-in: [ddf71499af] user: simon branch: trunk, size: 74976
10:57
Introduce alternative cursor shapes: underline, vertical line file: [8273562940] check-in: [e2c48178f1] user: simon branch: trunk, size: 74592
2001-01-08
10:28
Enable explicit changing of the window title after session start file: [1e7b2a5cc2] check-in: [aaeb10004c] user: simon branch: trunk, size: 73905
2001-01-07
13:15
Fix for spurious Space getting sent when alt_space and alt_only are both set and you bring up the Sysmenu with an alt_space and dispatch it with an alt_only. (The SYSKEYDOWN for alt_only is never received, but we get the SYSKEYUP which PostMessages the space since it expects to be triggering the _creation_ of a sysmenu. Solution: set alt_state to 0 when an alt_space triggers a sysmenu, so that the final SYSKEYUP will be seen as spurious, which it is. Perhaps we could do this better.) file: [0daba08bb0] check-in: [add0639425] user: simon branch: trunk, size: 73791
12:28
Kestutis Kupciunas's Lithuanian-friendliness patch to TranslateKey file: [b66f3aa5c0] check-in: [44e495b996] user: simon branch: trunk, size: 73779
12:24
Improved session logging courtesy of Roman Pompejus file: [6e4af37c41] check-in: [1df3fef130] user: simon branch: trunk, size: 73704
11:18
Squelch some spurious resize events. file: [78b325cf54] check-in: [23269ced0c] user: simon branch: trunk, size: 73473
10:38
Oops - that do-we-need-to-resize-window check failed to spot font changes file: [5503c78bf8] check-in: [0bc2bf0ff0] user: simon branch: trunk, size: 73335
10:35
Fix the System Caret so it really is invisible, and the right size too. file: [42c05c651f] check-in: [a574cdd922] user: simon branch: trunk, size: 73178
10:27
`Change Settings' now behaves sensibly w.r.t. window size. file: [081582ab40] check-in: [eae8ad51cc] user: simon branch: trunk, size: 73102
09:12
Apply `getservbyname' to the Port Number field in case it's non-numeric. Patch due to Christian Biesinger. file: [3ce119462b] check-in: [08e1baff3f] user: simon branch: trunk, size: 72956
08:30
AltGr should now work again even when Compose key disabled file: [3f92dcd590] check-in: [2c4038fa5b] user: simon branch: trunk, size: 72727
2000-12-12
04:33
Make memory management uniform: _everything_ now goes through the smalloc() macros and thence to the safemalloc() functions in misc.c. This should allow me to plug in a debugging allocator and track memory leaks and segfaults and things. file: [e6b9c96123] check-in: [6f56ef599a] user: simon branch: trunk, size: 72657
2000-11-21
13:28
Ron Kuris's "copy everything to clipboard" patch file: [c51c0a29d6] check-in: [0e8671fa0a] user: simon branch: trunk, size: 72625
13:00
Patch from Robert de Bath: increase timer resolution. file: [4b6073b9f6] check-in: [3bc6819ea5] user: simon branch: trunk, size: 72474
2000-11-07
11:50
Software invocation of the System menu now pops up the actual menu, rather than just putting the window into the state where Down will do so file: [911f21e6ee] check-in: [44a2c2d5ae] user: simon branch: trunk, size: 72474
2000-10-30
04:39
Fix side-effect of Always On Top patch: any reconfiguring in mid-session was zapping the window to the top left corner of the screen file: [db24bde5c4] check-in: [588ae44083] user: simon branch: trunk, size: 72154
04:16
Reset compose state to zero when PuTTY window gains focus file: [c26b9f62a1] check-in: [19ea12852a] user: simon branch: trunk, size: 70817
2000-10-27
04:46
Add support for Always On Top. Patch due to Janes "Ender" Brown. file: [106513659e] check-in: [ffad775a06] user: simon branch: trunk, size: 70793
2000-10-25
09:20
Gaaah, I might have known. Split combined app cursor / app keypad disablement option into two options so the app cursor keys and app keypad can be controlled separately. The Pedantic Software Award in this case goes to the Midnight Commander for its egregious failure to just use the terminal in Perfectly Normal mode. file: [0ad983560a] check-in: [f2d29d597a] user: simon branch: trunk, size: 69959
2000-10-24
08:49
Add configurable option to disable application keypad/cursor keys totally file: [06d362c650] check-in: [309f8cc397] user: simon branch: trunk, size: 69928
08:40
Add a couple of ellipses in system menu file: [b01b11c495] check-in: [5580e1dab3] user: simon branch: trunk, size: 69809
05:47
Fix miscellaneous compiler warnings. Thanks to Jacob Nevins file: [8a4cf392fa] check-in: [8952007fd8] user: simon branch: trunk, size: 69803
2000-10-23
10:20
Improved entropy gathering. file: [c0a749b3b6] check-in: [bef540f589] user: simon branch: trunk, size: 69786
05:32
Created a shiny new abstraction for the socket handling. Has many advantages: - protocol modules can call sk_write() without having to worry about writes blocking, because blocking writes are handled in the abstraction layer and retried later. - `Lost connection while sending' is a thing of the past. - <winsock.h> is no longer needed in most modules, because "putty.h" doesn't have to declare `SOCKET' variables any more, only the abstracted `Socket' type. - select()-equivalent between multiple sockets will now be handled sensibly, which opens the way for things like SSH port forwarding. file: [a4998472c2] check-in: [a2baae931e] user: simon branch: trunk, size: 69857
2000-10-21
11:30
Three new configurable options: - Robert de Bath's Compose key is now off by default and configurable on - The ages-old controversy over whether ALT by itself should bring the System menu up is now controllable by a config option - You can now independently configure whether scrollback resets on a keypress _and_ whether it resets on screen activity. file: [3c2d67bf9c] check-in: [36e1cf31e3] user: simon branch: trunk, size: 69559
2000-10-20
13:36
Chinese support patch from zmx@cdpa.nsysu.edu.tw file: [6ea5dedbbe] check-in: [61d9f40750] user: simon branch: trunk, size: 69472
08:51
Introduce a sane interface function, from_backend(), for backends to use when they have data from the network. Replaces the utterly daft inbuf / inbuf_head / term_out() interface, which only made sense when feeding to terminal.c. (terminal.c now implements from_backend() as a small function that gateways to the old interface.) As a side effect, from_backend() also has an `is_stderr' parameter, so scp can once again separate the server's pronouncements on stderr from the actual protocol progress on stdout. file: [c2d637abe4] check-in: [07725a2915] user: simon branch: trunk, size: 68969
08:23
Trim trailing whitespace off saved session names on the command line file: [ba8860f7b7] check-in: [889672b0ee] user: simon branch: trunk, size: 69094
2000-10-18
10:36
Miscellaneous cleanups and reorgs in preparation for building PuTTYgen. In particular, moved self-managing controls stuff out of windlg.c into the new and reusable winctrls.c. file: [9ff2cab26d] check-in: [bc05912afb] user: simon branch: trunk, size: 69007
2000-10-12
07:56
Implement a much more visually appealing, but much more internally grotty, hack to get around Explorer maximising the config box. file: [117dd84010] check-in: [bae4981c5c] user: simon branch: trunk, size: 68990
2000-10-11
14:56
Add UNE 10053 to the cleartext ones file: [0e6878933b] check-in: [b71f1daa72] user: simon branch: trunk, size: 68876
2000-10-09
07:53
Robert de Bath's big patch: - cope with strange WinSock wrappers not supporting SIOCATMARK - define yet more terminal compatibility modes - support UK-ASCII (just like US-ASCII but # is a sterling sign) - support connection keepalives at a configurable interval file: [3ef6f08179] check-in: [dacc5f4049] user: simon branch: trunk, size: 68798
07:19
Miscellaneous fixes to try to make other compilers happier file: [0fd16b12d9] check-in: [d26ab350ad] user: simon branch: trunk, size: 65941
2000-10-07
03:10
Alt-Enter was fouling up on Win95; added explicit handler file: [219d70add8] check-in: [ea5ef7a4d3] user: simon branch: trunk, size: 65941
2000-10-06
08:21
Create settings.c and move the load/save session code out of windlg.c into it. Allows plink and pscp to no longer link with windlg.c, meaning they lose some of the sillier stub functions and also can provide a console-based form of verify_ssh_host_key(). file: [e4ba431889] check-in: [6a5608b815] user: simon branch: trunk, size: 65713
07:32
Add a parameter to write_clip() so that windlg.c need not call term_deselect file: [7e391e9f51] check-in: [21437e2618] user: simon branch: trunk, size: 65701
2000-10-02
07:24
Add ability to configure the initial window title file: [8e06ef2134] check-in: [cd8a3399a0] user: simon branch: trunk, size: 65624
2000-09-29
07:04
Oops - remove ugly debugging test pattern in cursor file: [7126a47074] check-in: [1154a575ce] user: simon branch: trunk, size: 65486
05:32
Try to improve the caret usage file: [25ba81d425] check-in: [d286e670e1] user: simon branch: trunk, size: 65520
2000-09-27
10:21
Rationalised host key storage. Also started code reorg: persistent-state routines have been moved out into a replaceable module winstore.c. file: [f75cb12440] check-in: [0483920aa1] user: simon branch: trunk, size: 65004
2000-09-25
11:17
Add an invisible System Caret for blind-helper-software to track file: [bbebfbb609] check-in: [2f46e58f50] user: simon branch: trunk, size: 65031
10:47
Implement "putty -cleanup" file: [18ddf12624] check-in: [e6791e9da7] user: simon branch: trunk, size: 64651
06:11
Robert de Bath has a better alternative to revs 1.47/48 [r582,r583]; back out those changes and commit the simpler version file: [bc16bea20a] check-in: [9b884bb6e1] user: simon branch: trunk, size: 63492
04:27
Enable PuTTY command line to deal with "user@host" format file: [9d62f352b9] check-in: [be23b22b9a] user: simon branch: trunk, size: 63966
2000-09-22
09:10
Avoid rapid-fire resize events during NT opaque drags file: [0c965d3ae3] check-in: [ae6ce77dbd] user: simon branch: trunk, size: 63560
08:23
Everyone's favourite trivial change: Shift-Ins now pastes file: [ecad3f362b] check-in: [59bb4bd45e] user: simon branch: trunk, size: 63167
08:16
Enable better build-time flexibility over which WinSock to include file: [f2655752c7] check-in: [710e30e69c] user: simon branch: trunk, size: 62976
08:10
Bug fix: line discipline selection is not enabled until after ssh authentication phase to stop user/password prompts behaving oddly file: [e0265227dd] check-in: [6a62bd814c] user: simon branch: trunk, size: 62894
06:04
Prevent network errors from summarily closing the window when CoE is off file: [e74ea6fee8] check-in: [9a812d08ee] user: simon branch: trunk, size: 62648
04:49
Num Lock shouldn't send anything in non-app-keypad mode file: [1a86234107] check-in: [e6a81f12c2] user: simon branch: trunk, size: 62280
04:30
Work around the missing underline in some fonts file: [8f0cca9f02] check-in: [b0da7a2348] user: simon branch: trunk, size: 62259
2000-09-21
09:34
Miscellaneous ssh2 fixes. plink is now relatively sane file: [bdd39c7b42] check-in: [95ba42915d] user: simon branch: trunk, size: 60153
2000-09-20
06:40
Ensure backend netevent handlers are never reentered - fixes many strange problems with the ssh.c coroutines file: [d9e33566eb] check-in: [2ec133bcd4] user: simon branch: trunk, size: 60168
2000-09-11
04:36
Oops - remove diagnostics :-) file: [aa6f563055] check-in: [e6cafe101b] user: simon branch: trunk, size: 60004
04:23
Saner handling of WM_SYSCOMMAND:SC_KEYMENU to avoid problems on an isolated press of the Alt key file: [fb00cf4326] check-in: [744a45db58] user: simon branch: trunk, size: 60105
2000-09-08
09:45
Added a fourth application: plink, a command line connection utility file: [11e77de8c7] check-in: [851ef355bf] user: simon branch: trunk, size: 59474
2000-08-05
03:58
telnet:// URLs don't always have the //. (Incorrect but common.) file: [12aae6f12b] check-in: [8203fb21c5] user: simon branch: trunk, size: 59414
2000-07-26
07:13
Robert de Bath's Big Patch, part 1 file: [b1ac2e0118] check-in: [e340190952] user: simon branch: trunk, size: 59370
2000-07-21
05:58
Oops; telnet:// URLs can have a trailing slash file: [0230731517] check-in: [875d379b32] user: simon branch: trunk, size: 55815
05:53
Enable handling of telnet:// URLs on command line file: [a691abcd5a] check-in: [2816e822a5] user: simon branch: trunk, size: 55727
2000-03-24
03:45
Peter Schellenbach's patch: re-implement the PuTTY cryptographic functions as calls to the MS Crypto API. Not integrated into the Makefile yet, but should eventually allow building of an SSH-enabled PuTTY which contains no native crypto code, so it can be used everywhere (and anyone who can get the MS encryption pack can still use the SSH parts). file: [3443564335] check-in: [b248ce49d9] user: simon branch: trunk, size: 54925
2000-03-17
04:40
Spelling fix to RDB's comments: fascist is spelled thus :-) file: [6b41ae1bef] check-in: [305ec24bd0] user: simon branch: trunk, size: 54873
04:34
RDB's patch: - use WM_TIMER for various things (blinking cursor; updates while moving/sizing; coping with overloading influx of netevents) - clip text output to avoid underlines outside character cell - even more careful font selection (we can now do OEMANSI by default) - a few extra keyboard mappings from the VTxxx terminals file: [bbed815e1c] check-in: [d2a883e9e2] user: simon branch: trunk, size: 54872
2000-03-15
09:08
First stab at the ability to compile puttytel.exe, an SSH-free variant which is patent-safe in the US and legal in France and Russia. This is a horrible hack in some ways: it's shown up serious deficiencies in the module boundaries. Needs further work, probably once the SSH implementations are recombined. file: [8cae84ec75] check-in: [a4afd0589b] user: simon branch: trunk, size: 49408
2000-03-13
09:04
Let's spell '\t' as VK_TAB in that last patch, in fact, just in case file: [4ad88be939] check-in: [46c2dfd45d] user: simon branch: trunk, size: 48941
08:45
Shift-Tab now sends ESC [ Z file: [65d791a4c4] check-in: [4cbd2f4e52] user: simon branch: trunk, size: 48939
2000-03-11
08:15
Robert de Bath's patch: be much more careful about font heights and widths, including underline mode and OEM/ANSI size mismatch. file: [41b858537e] check-in: [858aaf8f75] user: simon branch: trunk, size: 48706
08:11
Robert de Bath's patch: a few more character translations for OEM line drawing mode file: [f95cb7949d] check-in: [7b15dd66bc] user: simon branch: trunk, size: 47585
08:06
Robert de Bath's patch: integrate line disciplines into Telnet and have them interoperate sensibly with ECHO negotiations file: [d7b5dac40f] check-in: [b3b23a150d] user: simon branch: trunk, size: 47573
2000-03-08
04:21
Fix some picky compiler warnings kindly provided by Borland C++ 5.5 file: [eca28a8ae3] check-in: [606ab03985] user: simon branch: trunk, size: 47514
1999-12-21
04:19
Disable warn-on-close for inactive windows file: [54e468e546] check-in: [15efbfadf5] user: simon branch: trunk, size: 47449
1999-12-06
08:57
Added keyboard shortcuts on the system menu. I haven't tried to compile it, but the changes are trivial. file: [4d63714a50] check-in: [b41efc5d6b] user: chris branch: trunk, size: 47359
1999-11-30
05:22
Turn #ifdef LOG into a command-line option for debugging use file: [9763ef29db] check-in: [803bd71cfa] user: simon branch: trunk, size: 47351
04:52
Robert de Bath's multi-purpose patch, slightly modified. - ^E answerback is now `PuTTY'. - The framework is now in place for the scrollback to reset to bottom on display _or_ keyboard events _or_ both. An actual configurable option isn't yet present, but most of the code is in place. - Try to deal with the problems where incoming data gets dropped after decoding but before display. - Scrollback behaviour has changed: instead of keying it off `scroll' versus `delete top line', things now go into the scrollback from _either_ of those but only if the primary screen is selected. Should fix problems with `less' and talkers. - must_update variable has gone because rdb correctly observed that it didn't seem to be doing a great deal :-) file: [f7c8ece55a] check-in: [763c0e4547] user: simon branch: trunk, size: 47204
1999-11-22
04:07
Cleanups to remove warnings for GNU/mingw32 compilation file: [5b50db4b82] check-in: [aea9f1c40e] user: simon branch: trunk, size: 46887
1999-11-17
08:22
Fix potential segfault on malloc failure file: [1eac2c9120] check-in: [b719ae5fa1] user: simon branch: trunk, size: 46870
1999-11-09
08:20
Should be able to switch line disciplines mid-session file: [452a63c384] check-in: [108ec742e6] user: simon branch: trunk, size: 46855
06:05
Added local-editing line discipline to make raw backend usable file: [a1def97297] check-in: [f31228813b] user: simon branch: trunk, size: 46794
05:19
Oops - Shift-PgUp/PgDn conflicted with NetHack mode file: [8997b3f647] check-in: [cdb9d538e4] user: simon branch: trunk, size: 46725
05:10
Changes from executor: - NetHack keypad mode (Shift only works with NumLock off) - Alt-Space handling (best I could manage; not too bad considering) - Event Log rather than Telnet Negotiation Log file: [80b7bbeae2] check-in: [8280c29e1f] user: simon branch: trunk, size: 46616
1999-11-08
05:13
Clean up sizetip patch: remove separate header file and // comments file: [7ba9b48c53] check-in: [94a456c242] user: simon branch: trunk, size: 45632
05:08
Oleg Panashchenko's Cyrillic support patch file: [b680e37422] check-in: [52dbbce97c] user: simon branch: trunk, size: 45653
1999-11-05
03:50
Warn-on-close is now configurable off file: [bca40c570c] check-in: [3e422f758e] user: simon branch: trunk, size: 45337
1999-11-04
07:44
Prompt before summarily closing a session file: [99f34420ec] check-in: [edd30a8e4c] user: simon branch: trunk, size: 45310
1999-11-03
08:08
John Sullivan's sizetip patch - experimental file: [4dcc665dbc] check-in: [2a4eb18bd8] user: simon branch: trunk, size: 45100
1999-11-01
11:18
Fix potential buffer overrun in new saved-session menu file: [cbc47ceb4f] check-in: [beb2ea910a] user: simon branch: trunk, size: 44873
10:40
Mark Baker's raw-TCP back end (untested and experimental as yet) file: [0929dc6b6a] check-in: [b55f4c2f0b] user: simon branch: trunk, size: 44652
1999-10-28
11:29
Stop putting meaning in bottom four bits of WM_SYSCOMMAND wParam file: [88a40aab52] check-in: [4175948821] user: simon branch: trunk, size: 44602
11:07
Added saved sessions submenu from system menu. file: [0953b559f6] check-in: [3a315254fc] user: owen branch: trunk, size: 44468
1999-10-27
09:28
Add the ability to do ssh by default: using -ssh command line option, or by manually adding protocol and port settings to Default Settings in the Registry, or by compiling with -DSSH_DEFAULT file: [8dd03e5a43] check-in: [90dca520c1] user: simon branch: trunk, size: 43858
1999-09-20
10:58
Changed default title bar format to host.name - PuTTY file: [7dcea9b5b1] check-in: [f1eca0470b] user: owen branch: trunk, size: 43365
1999-07-20
08:01
Jimen Ching's patches to remove compiler warnings file: [9300543d71] check-in: [bd48c6b3f9] user: simon branch: trunk, size: 43364
1999-07-05
11:35
Put that ReleaseCapture call just _before_ return, not after! file: [4869a100eb] check-in: [573f22a96b] user: simon branch: trunk, size: 43382
1999-03-23
11:14
Change default mouse pointer to an I-beam file: [3463c0e343] check-in: [355a395813] user: simon branch: trunk, size: 43382
1999-03-12
11:14
Add AltGr support at last! Thanks to <andre@via.ecp.fr> for the technique if not all of the details. file: [697e32d1a8] check-in: [3f765521e9] user: simon branch: trunk, size: 43382
1999-02-10
05:11
Add DeleteObject calls to go with the CreatePen calls in do_text. Should fix a fairly nasty-looking resource leak. Thanks to Andrew Mobbs. file: [219f297710] check-in: [8cf228e7de] user: simon branch: trunk, size: 41753
1999-02-09
09:39
Fix various segfaults and heap trashes. Thanks to Andrew Mobbs. file: [868799b002] check-in: [34fe4441bc] user: simon branch: trunk, size: 41467
1999-01-22
03:35
Fix double/triple click, and improve drag select file: [57a6422147] check-in: [2b9d701926] user: simon branch: trunk, size: 41449
1999-01-15
05:30
Add SSH don't-allocate-pty option, and corresponding LF-implies-CR terminal setting file: [2c6a53b51e] check-in: [1d64604a83] user: simon branch: trunk, size: 41414
1999-01-08
07:10
John Sullivan's patches plus more fixes: - Stop using the identifier `environ' as some platforms make it a macro - Fix silly error box at end of connection in FWHACK mode - Fix GPF on maximise-then-restore - Use SetCapture to allow drag-selecting outside the window - Correctly update window title when iconic and in win_name_always mode file: [55aae64522] check-in: [58b2a07677] user: simon branch: trunk, size: 41414
07:02
Added: Initial checkin: beta 0.43 file: [008654b50d] check-in: [948f3f876e] user: simon branch: trunk, size: 41141