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 | |