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.
[originally from svn r2811]
/*
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!
*/
[originally from svn r2791]
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.
[originally from svn r2790]
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.
[originally from svn r2771]
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 :-)
[originally from svn r2765]
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.
[originally from svn r2763]
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.
[originally from svn r2734]
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.
[originally from svn r2728]
simple 'styl' record along with it to specify the font and suchlike. I'm
not sure it's worth making this optional in the way the RTF is in Windows.
[originally from svn r2724]
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().
[originally from svn r2721]
- Change the creator of files we don't want the user to open to 'pTTI' (for
"PuTTY internal"), and give them application-missing strings.
- Provide missing-application names for saved sessions.
- Provide a ResEdit 'TMPL' resource for integers in saved sessions.
- Provide an icon for saved session stationery pads (maybe "Default Settings"
should be one of these by default). No code to handle this yet.
[originally from svn r2640]
preserve the old file in case the update is interrupted and replace it
atomically, so we just overwrite in place. Much simpler.
[originally from svn r2635]
areas of the code. Not all back-ends have been tested, but Telnet and SSH
behave reasonably.
Incidentally, almost all of this patch was written through Mac PuTTY,
admittedly over a Telnet connection.
[originally from svn r2615]
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.
[originally from svn r2613]
unitab_xterm. Most linedraw characters display correctly, but it's clear
that RDB and Apple disagree on some of the mappings.
[originally from svn r2601]
vttest apart from the "mad programmer" screen, which I think is a linedraw
problem.
This also intorduces proper clipping of the drawn text for good measure.
[originally from svn r2593]
rest of PuTTY has of DNS resolution, so I've replaced them with something
more conventional. Sorry.
The new code has the advantage of working, of course.
[originally from svn r2551]
and to convert to a string only on demand. This makes it possible to have
the string contain the error number if we don't recognise it.
[originally from svn r2548]
we can have runtime switching between MacTCP and OpenTransport, and so
that we can cope if there's no TCP/IP stack available at all (albeit with
very little functionality at present).
[originally from svn r2546]
we're going to be a security program, we can at least make a token
effort to use the most secure local X auth available! And I'm still
half-tempted to see if I can support it for remote X servers too...
[originally from svn r2537]
Windows and Mac backends have acquired auth-finding functions which
do nothing; Unix backend has acquired one which actually works, so
Plink can now do X forwarding believably.
(This checkin stretches into some unlikely parts of the code because
there have been one or two knock-on effects involving `const'. Bah.)
[originally from svn r2536]
ask the system script what it's preferred monospaced font is, and use that
if possible. Failing, that, try the Roman script system, and if that fails,
fall back to Monaco 9.
[originally from svn r2521]
and pterm need at least one default setting to be _different_ (pterm
needs the default term type to be `xterm', while plink needs it to
be taken from $TERM). So here's a completely new alternative
mechanism for platform- and app-specific default settings. Ben will
probably want to check the integrity of the Mac port, since I've
fiddled with it without testing that it still compiles.
[originally from svn r2513]
functions are only dummy stubs, but it's still minimally usable. At
least, as long as you don't want to do anything complex like logging out.
[originally from svn r2500]
There are still lots of things to fix, like urgent data or the fact that
everything seems to happen one keypress too late, but this is an important
milestone.
[originally from svn r2458]
present, including stuff to find and load the MacTCP DNR. Actually making
a TCP connection is still unimplemented, though, and much testing remains
to be done.
[originally from svn r2452]
the NetBSD kernel printf, which is integer-only and under a Berkeley-style
(now 3-clause) copyright owned by UCB. This has only been compile-tested,
but almost all of my changes were in the definitions at the top (the exception
being to remove tty output). This lacks 64-bit support because the Apple
68K C compiler, SC, lacks it too.
[originally from svn r2451]
its own. These are from NetBSD's libc, and have a standard (now 3-clause)
Berkeley licence.
Also provide a definition of DWORD and a better definition of BYTE.
[originally from svn r2449]
functions turn out to be available only to PowerPC applications, through
WindowsLib and ControlsLib respectively, so we weak-link against those in
the obvious way.
[originally from svn r2441]
be equipped with Color QuickDraw, as are all PowerPC systems. Hence, don't
bother with support for basic QuickDraw in the CFM-68K and PowerPC builds.
[originally from svn r2431]
encoding, have it go through the rest of its motions with an empty string
anyway, so as to at least give a sensible empty box of the right colour.
If SetFallbackUnicodeToText() fails, switch over to using the charset
library, hence avoiding problems in do_text().
If the version of the Unicode Converter we're using doesn't understand about
interrupt-safe fallback functions, don't try to tell it we've got one. This
prevents SetFallbackUnicodeToText() from failing on systems with old Unicode
Converters.
[originally from svn r2414]
to Mac OS Roman for display if the Unicode Converter isn't around. Support
for Mac character sets other than Roman (e.g. the variant used by the Apple
VT100 font) is still absent.
[originally from svn r2401]
to give me the missing-character glyph for a font.
While I'm here, change the character we substitute for unmappable ones
to '.', since that's what the charset library uses.
[originally from svn r2397]
needlessly complex because Rez's preprocessor doesn't do either ANSI or K&R
stringification, and the MPW Shell isn't much good as shells go.
Also make _all_ the Mac executables depend on reources, not just the
Classic 68K one.
[originally from svn r2389]
open an existing saved session. This has entailed adding an extra hook to
settings.c to allow for loading settings other than by name.
[originally from svn r2387]
than the Classic 68K version. This requires installing more bits of the
Text Encoding Converter SDK, since Apple seem to have forgotten to put _any_
68k bits for it, either CFM or Classic, in Universal Interfaces.
Also don't bother linking against libraries we don't seem to need.
[originally from svn r2379]
if it's available. Linking against the static Unicode Converter library
costs us about 30k on Classic 68K, which I can live with.
Because the default fallback converter can generate multiple output
characters for a single input character, we provide our own fallback that
doesn't. It converts everything to '?' instead.
[originally from svn r2315]
* It paints over the top-left corner of the terminal window. A little
floating window would be rather nicer and not much harder to do.
* It uses the low-memory global, DragHook, which is unavailable in Carbon
and broken in some versions of Mac OS 8 (8.5?). I suspect this is
unavoidable, though.
[originally from svn r2287]
parts that haven't been painted yet still get an update event in their new
location. This code seems far too complicated, and I suspect there's a
better way. Still, scrolling continuously with the window partially
off-screen now works.
[originally from svn r2284]
ignore when breaking text into runs for display, and implement setting this
on Mac (other ports just use 0xffffffff).
We don't use DeviceLoop for this any more because Apple Technical Q&A
QA1024 says we shouldn't. Unlike their example, we don't depend on the
Display Manager's being present either.
[originally from svn r2264]
SetFractEnable unconditionally flushes the Font Manager's width cache,
and the default is fine for us anyway. This more or less doubles
redraw speed, which is nice, but still not really fast enough.
[originally from svn r2263]
* No more mucking about with transfer modes. We always set up the foreground
and background sensibly, EraseRect the whole lot and use srcOr. Apple
Tech Note QD505 suggests that this should be faster than srcCopy.
* Always use the Palette Manager if we've got Color QuickDraw, even in 1bpp
modes.
* Apply the cursor colours _after_ all the other stuff, rather than trying to
get them through everything else intact.
Unfortunately, this doesn't make much difference to the speed.
[originally from svn r2259]
background colour and pen mode have some silly effects on ScrollRect, so
set them back to their defaults before calling it.
[originally from svn r2254]
application), rather from the entire chain. This prevents us displaying the
System version if PuTTY doesn't have one. Also cope with not finding any
'vers' resource.
[originally from svn r2247]
(rather than straight to the backend), and then prod the terminal. I think
this is closer to the correct set of things to do.
[originally from svn r2245]
This introduces a new front-end function, do_scroll(), which is expected to
scroll a part of the physical display and cause repaint events for any
areas that couldn't be scrolled (e.g. because they were hidden).
scroll_display() is a wrapper around this which also updates disptext to
match.
Currently, scroll_display is only used in response to user scrollback requests
(via term_scroll()), but extending scroll() to use it as well should be
easy.
All of this is conditional on the front end's defining OPTIMISE_SCROLL, since
only the Mac front end currently implements do_scroll().
[originally from svn r2242]
This doesn't include any mkfiles.pl glue, and is missing one or two other
fixes. The terminal emulator is kind of working, though, as, I believe, is
the store module. Everything else is yet to be done.
[originally from svn r2226]