1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 18:07:59 +00:00
Commit Graph

50 Commits

Author SHA1 Message Date
Ben Harris
694aafa071 Add the ability to close sessions. This adds *_free() functions to most
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]
2003-01-15 23:30:21 +00:00
Ben Harris
1d92c2b783 Update for Unicode deglobalisations.
[originally from svn r2600]
2003-01-14 19:42:00 +00:00
Ben Harris
0edb75b696 Remove debugging printfs from mac_workoutfontscale().
[originally from svn r2595]
2003-01-14 18:44:34 +00:00
Ben Harris
1f39efb94d Add double width/height support. This passes all the relevant parts of
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]
2003-01-14 18:43:26 +00:00
Ben Harris
a185e16467 request_resize() needs to call term_size() to tell the terminal emulator
that its resize request has been approved.

[originally from svn r2591]
2003-01-14 15:24:51 +00:00
Ben Harris
0e52f05217 Set the window title to the canonical host name when we connect.
[originally from svn r2574]
2003-01-12 16:25:58 +00:00
Ben Harris
b4d37df579 Consequences of Simon's recent deglobalisation changes.
[originally from svn r2573]
2003-01-12 16:11:27 +00:00
Ben Harris
80c29aa16f Don't fatalbox() unconditionally when opening a connection, since that makes
it a little difficult to do anything.

[originally from svn r2559]
2003-01-12 14:44:12 +00:00
Ben Harris
c81fa2ff24 COmpiling _before_ committing is usually a good idea.
[originally from svn r2556]
2003-01-12 14:23:00 +00:00
Ben Harris
05ae857752 Correct code to insert into a doubly-linked list.
[originally from svn r2553]
2003-01-12 13:50:04 +00:00
Ben Harris
5d90fd4d1d Remove code for splatting test data into new terminals, since we can do
that over real network connections now.

[originally from svn r2549]
2003-01-12 01:25:34 +00:00
Ben Harris
0d8ee2458a Implement get_window_title().
[originally from svn r2525]
2003-01-09 23:29:22 +00:00
Ben Harris
34a96d4924 Use c2pstrcpy() rather than silly sprintf() tricks.
[originally from svn r2523]
2003-01-09 22:51:41 +00:00
Ben Harris
76a43ad512 c2pstr() is deprecated. Use c2pstrcpy() instead.
[originally from svn r2522]
2003-01-09 22:45:48 +00:00
Ben Harris
697794abbf Fairly major hackery to get SSH going on the Mac. Half the support
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]
2003-01-08 22:46:12 +00:00
Ben Harris
a7ba273b5b When looking for the correct backend to use, look in the configuration
structure for the session, not the almost-dead global cfg.

[originally from svn r2457]
2003-01-05 11:31:51 +00:00
Ben Harris
ac85d9b8c9 Second work-in-progress MacTCP commit. We can now open a connection, but
not transfer any data across it.

[originally from svn r2456]
2003-01-05 10:52:56 +00:00
Ben Harris
e13dfa3562 Re-arrange the sums in the size tip code so as to ensure that we're always do
division on positive numbers, hence avoiding nasty problems of rounding
towards zero when I wanted rounding down.

[originally from svn r2443]
2003-01-04 00:48:13 +00:00
Ben Harris
561029bfdf Correct handling of Mac OS 8.5 Window Manager and Control Manager. The new
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]
2003-01-04 00:13:18 +00:00
Ben Harris
0416b77c7f If for some reason do_text() fails to translate from Unicode to the font
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]
2003-01-02 00:33:40 +00:00
Ben Harris
0ea7e35008 Add a mechanism for determining which charset to use for a given Mac OS font,
and use it.

[originally from svn r2409]
2003-01-01 19:51:13 +00:00
Ben Harris
491f7be9fc Use the shiny new character-set library to handle conversion from Unicode
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]
2002-12-31 22:49:03 +00:00
Ben Harris
3777de60cb Add a small comment explaining my failure to find any way to get QuickDraw
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]
2002-12-31 20:11:38 +00:00
Ben Harris
6c1c86f23d Add a minimalist settings dialogue, which contains a single button
marked "open".  Still, it seems to work.

[originally from svn r2392]
2002-12-31 01:40:14 +00:00
Ben Harris
71d699c28c Add an "open" command to the "file" (now "session") menu on the Mac to
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]
2002-12-30 18:21:17 +00:00
Ben Harris
454e6d2a43 Remove more unused variables.
[originally from svn r2372]
2002-12-28 22:25:31 +00:00
Ben Harris
1cfe88e9d2 Dispose of some unused local variables.
[originally from svn r2371]
2002-12-28 22:22:43 +00:00
Ben Harris
93f12a008d Use the Unicode Converter to convert from Unicode to the display encoding
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]
2002-12-13 00:02:48 +00:00
Ben Harris
d78a0aacc0 When resizing the window, redraw the grow box as well as the scroll bar.
I wasn't noticing the bug on my system, since the Appearance Manager handles
the grow box itself when it's present.

[originally from svn r2299]
2002-12-09 23:26:52 +00:00
Ben Harris
05456758c4 Update the non-Color Quickdraw code in pre_paint() to match recent changes
to the Color Quickdraw code.  This makes redraw work properly on old Macs
again.

[originally from svn r2298]
2002-12-09 22:49:56 +00:00
Ben Harris
e06e554830 Oops. When deciding which attributes are interesting, we want the union of
all the screens' capabilites, not the intersection.

[originally from svn r2297]
2002-12-08 22:23:08 +00:00
Ben Harris
65b8dd1501 Remove a stray prototype for mac_set_attr_mask().
[originally from svn r2296]
2002-12-08 22:15:10 +00:00
Ben Harris
7522f5302d Slightly cheesy size-tip implementation. This is suboptimal in two ways:
* 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]
2002-12-08 01:17:31 +00:00
Ben Harris
f2bfdefe45 When scrolling part of the window, scroll the update region as well so that
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]
2002-12-07 15:21:56 +00:00
Ben Harris
12081087e7 Improve support for non-colour displays by adding a mask of attributes to
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]
2002-11-29 00:32:03 +00:00
Ben Harris
26f8c13f7b Don't call SetFractEnable every time we draw some text, since
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]
2002-11-28 21:10:55 +00:00
Ben Harris
4b3ed26016 Follow the recommendations in Tech Note TB575 for clipping off the space
for the horizontal scroll bar when drawing the grow box.

[originally from svn r2262]
2002-11-28 21:02:07 +00:00
Ben Harris
81b29767a4 Use StdText() rather than DrawText, so that (later) we can support scaling of
text to get double-width etc.

Also set the background when scrolling in Original Quickdraw.

[originally from svn r2261]
2002-11-28 00:25:09 +00:00
Ben Harris
a8e0271b8d Substantial overhaul of colour handling in do_text(). Highlights include:
* 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]
2002-11-26 01:32:51 +00:00
Ben Harris
a1b5ba2270 Fix scrolling on systems without Color QuickDraw. It seems that the current
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]
2002-11-24 00:38:44 +00:00
Ben Harris
d63d02b743 Don't try to initialise the palette unless we have Color QuickDraw. This gets
PuTTY running on my Mac SE again (albeit very slowly and with scroll
optimisation broken for some reason).

[originally from svn r2253]
2002-11-23 22:36:56 +00:00
Ben Harris
d60ea36673 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.

[originally from svn r2250]
2002-11-23 20:02:38 +00:00
Ben Harris
8280e645e4 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.

[originally from svn r2248]
2002-11-23 19:01:01 +00:00
Ben Harris
721399ac82 On a keypress, hide the mouse cursor, send the key to the line discipline
(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]
2002-11-23 14:22:11 +00:00
Ben Harris
1eef3b7e84 Remove a debugging printf.
[originally from svn r2243]
2002-11-23 13:16:36 +00:00
Ben Harris
55c618d344 Fiddle with mac_initpalette() so that the cursor works in 2bpp modes as well.
[originally from svn r2233]
2002-11-20 00:33:44 +00:00
Ben Harris
55fc07c583 Remove has_focus from Session and use the one in Terminal. Active vs passive
cursor now behaves correctly.

[originally from svn r2232]
2002-11-20 00:11:05 +00:00
Ben Harris
d50ad9ddb9 Remove CURSOR_FG_BOLD and CURSOR_BG_BOLD, and hence bring reality in line
with palette_reset()'s expectations.

[originally from svn r2231]
2002-11-19 23:59:27 +00:00
Ben Harris
93a461028b Pass co-ordinates to term_paint() in characters rather than pixels. Partial
redraws now work rather better.

[originally from svn r2230]
2002-11-19 22:05:48 +00:00
Ben Harris
c4eebb49a9 Tentative merge of ben-mac-port (only dead for three years!) into the trunk.
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]
2002-11-19 02:13:46 +00:00