Download: Stable · Snapshot | Docs | Changes | Wishlist
There's been a suggestion (ref: email@example.com) that the ANSI printer support added in 0.53 can cause PuTTY to take a long time to start (~30 seconds) if a printer is configured in Windows that is not reachable (e.g. shared from a machine that is currently switched off). This may be intermittent rather than reliable. (Win2K Pro SP3)
We've not reproduced this so far (I've tried on Win2K pro), but a workaround appears to be to remove the offending printers.
Alternatively, snapshots 2003-08-22 and later try less hard to find printers and this has been reported to work.
Gory details: PuTTY calls Windows functions to enumerate all suitable printers (regardless of whether any attempt is made to use the ANSI printing functionality):
PuTTY is a bit unusual in doing this; we use EnumPrinters (etc) directly in order to avoid UI issues associated with the concept of `raw' printing.
I've not been able to reproduce this on Win2K Pro.
This is to some extent not our problem, but perhaps we could do something to mitigate the problem (e.g. enumerate printers less often / only if the user requests the ANSI printing functionality).
Alternative fix: use a different type of printer enumeration
which doesn't try so hard. Patch:
firstname.lastname@example.org. Dependent on Windows
version, so need to ensure the functionality still works across at
least the Win95-series and WinNT-series.
In detail, we should use
PRINTER_INFO_4 where possible,
PRINTER_INFO_1 which apparently calls
OpenPrinter() for every printer. However,
is only available on NT-class systems; the suggestion is that we
detect the Windows version and use
_5 on 95-class systems -
corroborates this approach. (We're already avoiding
_5 on NT because we had problems enumerating network
Update 2003-02-26: verified that
on Win2K SP2 and
PRINTER_INFO_5 on Win98 work as least as
well for me as what we do currently (
that remains is the tedious mucking around with version detection.
Update 2003-08-22: finally got round to implementing this, and got a report that it works.