Simon Tatham [Thu, 6 Mar 2003 13:24:02 +0000 (13:24 +0000)]
Reorganisation of misc.c: Minefield has moved out to winmisc.c, and
so has the Windows dputs() - which has also acquired a Unix
counterpart in uxmisc.c. -DDEBUG should now work on Unix.
Simon Tatham [Thu, 6 Mar 2003 12:51:12 +0000 (12:51 +0000)]
Richard B's patch to push erased text into the scrollback on ESC[2J
clears, and also to temporarily push the primary screen contents
into the scrollback while the alternate screen is active and bring
it back afterwards.
Simon Tatham [Wed, 5 Mar 2003 22:07:40 +0000 (22:07 +0000)]
The long-awaited config box revamp! I've taken the whole config box
to pieces, and put it back together in a new table-driven form.
config.c sets up a data structure describing most of the config box;
wincfg.c adds in the Windows-specific options (so that config.c can
also form the basis for Mac and Unix config boxes). Then winctrls.c
contains a shiny new layout engine which consumes that data
structure, and windlg.c passes all WM_COMMAND and similar messages
to a driver alongside that layout engine. In the process I've sorted
out nicer-looking panel titles and finally fixed the list-boxes-are-
never-the-right-size bug (turned out to be Windows's fault, of
course). I _believe_ it should do everything the old config box did,
including context help. Now everyone has to test it thoroughly...
Simon Tatham [Mon, 3 Mar 2003 16:35:45 +0000 (16:35 +0000)]
I've been meaning to get round to this for _ages_: in front of my
coroutine macros, I now include a comment linking to my web article
that explains what they do.
Ben Harris [Sat, 1 Mar 2003 15:12:03 +0000 (15:12 +0000)]
Improve scheduling on the Mac:
1: Only update the screen when there's nothing else to do. This means that
it's a lot harder for a fast typist to outrun PuTTY.
2: Only sleep for at most 100ms at a time. This is a kludge to work around
the WakeUpProcess caused by incoming data can happen before the
WaitNextEvent it's meant to interrupt, leading to PuTTY sleeping forever
because it doesn't know there's network data pending.
Ben Harris [Thu, 27 Feb 2003 23:21:23 +0000 (23:21 +0000)]
Add 'plst' 0 resources to help Mac OS X do magic things.
These aren't actually compiled yet because they must only be present in
the Carbon build, and I don't currently compile the resources separately for
each platform.
Ben Harris [Sun, 23 Feb 2003 13:00:38 +0000 (13:00 +0000)]
Don't open the event log whenever an event is logged; instead handle the
"Show Event Log" menu entry sensibly. Similarly, make it possible to close
(hide) the event log.
Ben Harris [Sun, 23 Feb 2003 11:58:59 +0000 (11:58 +0000)]
Add handling for suspend and resume events, and set the flags in our 'SIZE'
resource that say we can handle them. This seems to avoid a crash when PuTTY's
switched away from, and is necessary for Carbon anyway.
Ben Harris [Sun, 23 Feb 2003 00:13:17 +0000 (00:13 +0000)]
Work around an SC bug that causes it to try to use the same register for
two purposes in s_wrpkt_prepare(). This makes SSH1 work on 68K Macs, at
least until I deactivate the terminal window...
Ben Harris [Thu, 20 Feb 2003 22:55:09 +0000 (22:55 +0000)]
Add a mechanism for collecting entropy, and displaying how much we've got,
based on the Windows version. We don't _do_ anything with the entropy yet,
though.
Ben Harris [Thu, 20 Feb 2003 22:31:52 +0000 (22:31 +0000)]
Be careful not to try to get information from windows we don't own, or that
don't exist at all. Also a small PuTTYgen change that I can't be bothered
to filter out of this commit.
Jacob Nevins [Sat, 15 Feb 2003 18:47:22 +0000 (18:47 +0000)]
faq-support:
Modified text to reflect the fact that the wishlist now shows bugs fixed
recently (FSVO "recently"). Hopefully I haven't made it too confusing.
Ben Harris [Sat, 15 Feb 2003 16:22:15 +0000 (16:22 +0000)]
Rather than increasing the size of my switch statements yet further, have
a bunch of function pointers associated with each window to do things like
updates and click handling. This is all looking disturbingly object-oriented.
.
While I'm here, separate out the about box into its own file, shared by PuTTY
and PuTTYgen.
Ben Harris [Fri, 7 Feb 2003 01:38:12 +0000 (01:38 +0000)]
Crude Event Log implementation for the Mac. I'm fairly convinced now that
using the List Manager was entirely the wrong decision on my part, so I'll
probably rewrite this to use TextEdit at some point, but it's better than
stderr even so.
Simon Tatham [Tue, 4 Feb 2003 13:02:51 +0000 (13:02 +0000)]
Add another bug workaround, this one for old OpenSSH (<2.3) servers
which have a strange idea of what data should be signed in a PK auth
request. This actually got in my way while doing serious things at
work! :-)
Simon Tatham [Tue, 4 Feb 2003 13:00:54 +0000 (13:00 +0000)]
Further fallout from the introduction of the Filename type. (Memo to
self: if you change the type of a variable and everything compiles
without type-checking errors, that doesn't mean it's all fixed,
because variadic functions aren't type-checked! Oops.)
Ben Harris [Tue, 4 Feb 2003 02:08:03 +0000 (02:08 +0000)]
I can only quote the comment in <Scrap.h> which prompted this commit:
/*
Newsflash! After 15 years of arduous toil, it's finally possible
for specially trained typists wielding advanced text editing
technology to define symbolic names for commonly used scrap
flavor type constants! Apple triumphs again!
*/
Ben Harris [Tue, 4 Feb 2003 02:03:53 +0000 (02:03 +0000)]
Fix various breakages my Carbonisation caused in the Classic build, notably
that outside Carbon, CGrafPtr and GrafPtr are different types, even though
they're mostly interchangeable, so we need to interpose a cast between
GetWindowPort and SetPort.
Ben Harris [Sat, 1 Feb 2003 21:44:05 +0000 (21:44 +0000)]
Rather more natural (if much more complex) Mac Filename implementation.
Filenames are represented as a FSSpec, which is converted to and from an
alias record ('alis' resource) when saving and loading sessions.
.
It might be an idea to allow in-core Filenames to contain alias records too,
so that they can refer to directories that don't exist on the current system,
but that requires Filenames to be dynamically allocated, which is likely to be
a pain.
Simon Tatham [Sat, 1 Feb 2003 12:54:40 +0000 (12:54 +0000)]
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 :-)
Ben Harris [Sat, 1 Feb 2003 12:26:33 +0000 (12:26 +0000)]
Richard's lazy-scrolling patch. This builds up scroll operations in a list,
combining adjacent ones for the same region, and runs them all in do_paint.
I'm not sure it's entirely right, but it works on my Mac in every case I've
tested.
Simon Tatham [Thu, 30 Jan 2003 13:39:24 +0000 (13:39 +0000)]
Yet more fallout from the 16-colour changes. I think by this time
these fiddly little changes are no longer bugs I introduced
recently, they're bugs that have been around all along and I've only
just smoked out by altering the ATTR_* definitions.
Simon Tatham [Thu, 30 Jan 2003 10:19:05 +0000 (10:19 +0000)]
Antonin Brothanek points out that `Incoming packet was garbled on
decryption' could be a result of the wrong setting of the
`Miscomputes SSH2 encryption keys' bug workaround option.
Jacob Nevins [Wed, 29 Jan 2003 16:39:18 +0000 (16:39 +0000)]
Further cosmetic tweaks to file-selection boxes per observed conventions
on Windows:
- Change "AllFiles" to "All Files (*.*)"
- Extensions in lower case
Simon Tatham [Tue, 28 Jan 2003 12:06:37 +0000 (12:06 +0000)]
And another bit missing from the settings changes: pterm's platform
default for CloseOnExit was encoded wrongly. Hopefully this should
be everything now; I'm really starting to get sick of picking up the
pieces after my two checkins yesterday. Perhaps I should have waited
until I had a brain before doing them in the first place.
Simon Tatham [Tue, 28 Jan 2003 09:26:32 +0000 (09:26 +0000)]
Oh, _that's_ why that `if' had the sense it did. Good grief.
Apparently I used to rely on the fact that the same `erase_char'
used to wipe parts of the screen was also a good value to use for
resetting line attributes. Should now be more robust against future
reorganisations of the ATTR_* bit fields.
Ben Harris [Tue, 28 Jan 2003 00:17:17 +0000 (00:17 +0000)]
Security fascists might claim that logging every keypress to stderr is a bad
idea, so stop doing that (only in the Mac port, so not actually much of a
problem).
Simon Tatham [Mon, 27 Jan 2003 23:18:16 +0000 (23:18 +0000)]
Of course, that cleanup I did earlier in which I rationalised all
the various `yes/no/maybe' enums into one common one missed a vital
point: all those enums mapped on to integers in different ways,
which affected the format of stored settings. Arrgh. So now
settings.c contains yet more painful warts and I'm _really_ starting
to think it's about time we designed a new set of human-usable
config keywords and retired this lot to the status of Unpleasant
Backwards-Compatibility Relic.
Simon Tatham [Mon, 27 Jan 2003 23:03:31 +0000 (23:03 +0000)]
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.
Simon Tatham [Mon, 27 Jan 2003 18:02:24 +0000 (18:02 +0000)]
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.
Ben Harris [Mon, 27 Jan 2003 00:39:01 +0000 (00:39 +0000)]
First attempt at a platform-independent keyboard handler. This isn't complete
yet -- there's no Alt+keypad support, and no way for the front-end to find
out what it should do with the Num Lock light. It's also not fully tested.
Nonetheless, it's at least as good as the previous Mac keyboard handler.
Other platforms probably shouldn't adopt it just yet.