PuTTY Known Bugs and Wish List
Wishlist
Bugs
These items are clearly actual problems and I want them fixed.
-
The trickery used to deal with the application keypad has bad
effects on the NumLock state. This should be saved and restored if
possible. (Apparently it doesn't cause problems in Win2K.)
-
Apparently when the About box is launched from the config box and
then closed, focus fails to return to the config box. I use
focus-follows-mouse so I never notice :-)
-
Apparently trying to create a window bigger than the screen causes
confusion in the size code. Can only do this by choosing, from
scratch, a window size and font size that exceed the screen size.
-
For some fonts, underlines fail to be drawn. 9-point (12-pixel)
Courier New seems to be an example.
-
Apparently when telnetting to a FreeBSD box and hitting Ctrl/C at
the shell prompt, the next shell prompt appears indented, as if the
CR has been dropped from the inbound CRLF. Likely a SYNCH/Urgent
difficulty, and likely very hard to fix.
-
Stop the saved-configuration-name box getting blanked when you swap
away from and back to the Connection panel.
-
The
s_write()
function in ssh.c can go busy-looping
when it has to write more data than the socket can handle. This
rarely ever happens, but it can cause PuTTY to stop responding
completely.
-
Bad Things happen if you choose local-echo + local-line-discipline
together with SSH password authentication: the password is echoed to
the screen. D'oh. Need to postpone enabling of line discipline until
after the SSH authentication phase.
Semi-bugs
These are things which might be bugs or might not, depending on your
precise definition of what a bug is.
-
We should be able to copy/paste out of an inactive window after the
session has closed. That's a major part of the use of keeping it
around.
-
Speed up the scrollback. Currently the scrollback array is
physically scrolled, which is slow.
-
PuTTY currently can't use WinSock 2, which causes problems on some
development systems in which
<windows.h>
implicitly includes <winsock2.h>
and that clashes
with my explicit includes of <winsock.h>
. I need
to introduce two new build options: (a) use WinSock 2 instead of
WinSock 1, (b) assume <windows.h>
implicitly
includes a WinSock (either version; I'm not fussy) that I can use.
-
Network errors close the window, even if Close On Exit isn't set.
This isn't really consistent with the desired behaviour of COE.
-
The website doesn't contain last-modification dates on the pages. It
should, so that people can easily see if the known-bugs list has
been updated recently.
Plausible feature wish list
This list contains features I hope to get round to adding at some
stage.
-
While trying to establish the connection, put up at least some sort
of window, so the user can tell whether there's a proto-PuTTY around
or not.
-
Perhaps make some use of the System Caret, so helper software for
the visually impaired can auto-track the cursor position in the
PuTTY window. Ideally I'd like this to happen invisibly, and the
cursor display to continue to be exactly as it currently is. If
anyone knows how to do this, feel free to save me a lot of searching
through manuals :-)
-
When using NT's opaque resize feature, resizing the window should
perhaps not send resize events at _every_ step of the process, but
instead send one at the end. I don't think this needs to be
configurable: I can't see a great deal of use for the behaviour as
it is.
-
The Event Log perhaps ought to scroll down when new events appear on
it, so that a user who leaves it up all the time can watch things
happen.
-
PSCP should allow cipher selection by other means than loading a
PuTTY saved session.
-
Better error message handling? "Unexpected network error 48000" is
hardly helpful.
-
Be able to configure the initial window title.
-
In SSH mode, be able to specify a command to be run at the remote
end. (PSCP can already do this; why not PuTTY proper too?)
-
It might be nice for the About box to contain the putty-bugs email
address and possibly also a link to the PuTTY web site.
-
Have an uninstall feature: running "
putty -uninstall
"
should remove all registry keys connected with PuTTY. (For the
current user only. If an NT sysadmin wants to remove all users'
PuTTY settings, then he's evil and PuTTY shouldn't make it easier
for him to do it.)
-
Allow the "ANSI Green" used for foregrounds to be different from the
one used for backgrounds (for all values of "Green").
-
Have an option to choose whether the clear-screen and clear-line
escape sequences fill with the default background or with the
currently selected background. Apparently the escape sequence CSI =
Ps L should control this (Ps=0 means current colour; Ps=1 means
default colour), although I think I'd like the initial setting to be
GUI-configurable too.
-
SCO ANSI function key support (F1 is ESC [ M and F12 is ESC [ X,
with all obvious points in between).
-
For pscp, perhaps the default remote user name could be copied from
the local user name? (Probably particularly useful on NT, but even
on Win95 it's at least no worse than any other guess.)
-
Possibly have a configuration option so that the top four keys of
the numeric keypad are always the VT100-esque PF1-PF4 keys.
-
Perhaps Duplicate Session and the saved-sessions
menu should start a new session in the window, if it's
inactive, instead of opening another? (I'm not at all convinced
about this, so it will have to be configurable if it gets
done at all.)
-
Configurable bell handling. For a start, a visual bell would be a
useful option. Secondly, a bell-overload mode where too many
consecutive bells caused the bell function to disable itself until
there had been several seconds of silence (for when you accidentally
cat
a binary file into your terminal and it beeps for
centuries :-). Thirdly, a bell indicator in the Taskbar button,
which stays around until you give the window focus (so you can keep
many windows minimised and track bells in each of them). Lastly,
complete disablement.
-
Make the scroll bar optional; since Shift-PgUp and Shift-PgDn allow
scrollback without needing the actual bar, some people would like to
get rid of it and save screen space. Note that if the scrollbar
becomes optional, it would still be nice to allow wheel mice to
scroll the window.
-
Ctrl-PgUp and Ctrl-PgDn to scroll by one line at a time.
-
Possibly the mouse pointer should disappear when the PuTTY window is
active and text is typed, and reappear when the mouse is moved,
à la MS Word. Would be particularly useful for those of us
using focus-follows-mouse, where the pointer's quite likely to be
inside the window and obscuring the view.
-
Command line options, in general.
-
Work out how to deal with ALT+numberpad input of arbitrary character
codes.
-
Allow saving of the current screen+scrollback state to a file. Or
printing it, possibly.
-
Possibly copy/paste should be implicit in the mouse only within
one window. Not convinced.
-
Implement a selection option to paste line drawing as the underlying
characters or as poor-man's.
-
WM_PASTE and drag&drop support.
-
Remapping of keypad-Delete to ^? as an option. Also, optional
remapping of Home/End to ^A/^E. Maybe a generic key remapping
facility, though that would probably be horrible to implement...
-
Copy and paste in the Windows style: ^C/^V, or ShiftIns/CtrlIns. Note
that ShiftIns/CtrlIns could be run alongside the existing keymap,
because they have no current function (Ins doesn't change its
behaviour under Shift or Ctrl). Also, perhaps, (copy) and paste
options on the System menu.
-
Make selection colours configurable rather than forcing them to be
inverse-of-current. But still need inverse-of-current as an option.
Come up with a sane UI for this and then implement it.
-
Underscore-style cursor as an option.
-
When you adjust the properties of a running session using the
"Change Settings" menu option, it might be nice to be able to save
the adjusted settings back to the saved-session slot you loaded
from. (Only in circumstances where that makes sense, of course.)
It might also be nice to be able to save the adjusted settings as a
new session (which always makes sense).
-
Try getservbyname() on the value entered as a port number.
-
xterm mouse click reporting.
-
ANSI printer control support.
-
Make resetting of scrollback optional.
-
Maybe an interior border of a pixel or two. Configurable, of course.
-
Think about pre-building a bitmap for better scrolling, or possibly
just doing the old scroll optimisations over again and getting them
right.
-
Possibly line-end conversion in pscp. (Anyone know a good heuristic
for distinguishing text from binary files? infozip has one, as does
less; anyone want to comment on which is better or whether there are
better still?)
-
Port to other OSes: Unix/X (need a local-xterm back end), BeOS
(likewise).
-
Scrollback should automatically scroll if you try to drag-select off
the top of the window (or off the bottom of the window when it's
scrolled back), so you can easily select more than a screenful.
-
Toolbar, maybe. Certainly optional, if so. One thing somebody
wanted on one was a display of the cursor coordinates.
-
Menu bar, to go with the toolbar. Option for cut and paste to be in
the Windows style and/or via the menu/tool bars.
-
The default-foreground and default-background colour selection
should have an option to go with the Windows colour scheme.
-
Ability to configure some of the terminal emulation features off.
Somebody, for example, was finding that the high/low screen feature
was impeding his normal mode of use of more. Other people
don't like the application keypad and would prefer that PuTTY
ignored requests from the session to enable it. Some people don't
like xterm title sequences, and there have been problems with the
answerback to ^E. Some people have found it disorienting and/or
inconvenient that PuTTY is able to change its own size in response
to an escape sequence. Other features to add to this list are
welcomed.
-
Possibly more encryptions? IDEA is out due to the patent
restrictions being incompatible with the PuTTY licence; RC4 would
probably be doable if anyone actually wants it. Ability to select a
preference order of encryptions would be good: currently we support
user selection of one encryption and always fall back to 3DES if
that one's not available.
-
Writing of decent (or any) documentation. Any documentation I
distribute with the "official" PuTTY releases will be written using
Buttress,
my own documentation system which I'm currently in the process of
writing.
-
Keep-alives to prevent overzealous idle detectors in firewalls from
closing connections down. Probably done by sending Telnet NOP or
SSH_MSG_IGNORE, so as to avoid affecting the actual data stream.
-
SOCKS support. At least SOCKS 4.
-
Ability to cache host keys and settings in a file as well as the
registry, so that people can (for example) easily carry a complete
PuTTY setup around on a floppy.
-
Scripting support, so you can have PuTTY perform automatic tasks.
(Such as remembering your password for you, although I don't
recommend this on grounds of security!)
Implausible feature wish list
These are features I will probably never get round to adding myself.
I wouldn't be opposed to seeing them written, but if it happens
somebody else will have to do it, because they're big and
complicated and I wouldn't use them enough myself to justify
spending all that effort.
-
Perhaps an SSH agent, and agent forwarding.
-
SSH port forwarding and X forwarding.
-
SRP support, as an alternative to pure password authentication.
Possibly also in Telnet.
-
Zmodem file transfers.
-
A graphical interface to the SCP client, perhaps, for people who
don't speak fluent Command Prompt.
-
Somebody requested "Kerberos 5 credential forwarding". I don't know
anything about Kerberos, so if this gets done it will have to be
done by somebody who does.
-
Always On Top, because somebody will probably find it
useful if they use PuTTY for something strange enough. Not sure how
it should deal with multiple overlapping always-on-top PuTTYs, but
then that must be a generic problem with AOT apps...
Jonathan Sambrook wrote to me to say that
FreeShade
is a program which can provide Always On Top to arbitrary windows.
You might find that useful if you really want this feature.
-
Use of the System tray. So many people have requested this that I
think it's a genuine desirable feature, but I don't want it to bloat
the core of PuTTY. The way I'd like to see it implemented is to have
a wrapper application. The wrapper puts an icon in the
System tray. When PuTTY itself runs, it notices that the wrapper is
present on the system and sends a message to it registering its
window title, and then the wrapper adds that to the System tray
menu. So you can click the Systray icon and get a menu from which
you can select any of your running PuTTY sessions, or start a new
one. And to complete the illusion of a single Systray application
running all the PuTTY sessions, there could also be an option for
PuTTY to hide its window when minimised. This would be "minimise to
tray". (Note that hide-on-minimise is actually dangerous if the
wrapper isn't running. So PuTTY should refuse to hide its window if
the wrapper is absent, and also somebody would have to work out a
sensible way of sorting out the mess if the wrapper exited before
the minimised and hidden PuTTY it was managing.)
Robert de Bath wrote in to say that there is already a program that
can do this, at
this site.
-
SSH compression.