X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/379836ca8d2a2260899cbbd84d273ddf3e044f74..9f2f8ea0374c2a83c50624c7dc6bb458488dbe37:/mac/mac.c diff --git a/mac/mac.c b/mac/mac.c index c6a93dc1..9c1abdf8 100644 --- a/mac/mac.c +++ b/mac/mac.c @@ -1,4 +1,4 @@ -/* $Id: mac.c,v 1.14 2003/01/02 00:33:40 ben Exp $ */ +/* $Id: mac.c,v 1.19 2003/01/05 12:53:38 ben Exp $ */ /* * Copyright (c) 1999 Ben Harris * All rights reserved. @@ -118,14 +118,13 @@ static void mac_startup(void) { /* Init TextEdit */ TEInit(); /* Init Dialog Manager */ - InitDialogs(nil); + InitDialogs(NULL); cold = 0; /* Get base system version (only used if there's no better selector) */ if (Gestalt(gestaltSystemVersion, &mac_gestalts.sysvers) != noErr || - (mac_gestalts.sysvers & 0xffff) < 0x700) + (mac_gestalts.sysvers &= 0xffff) < 0x700) fatalbox("PuTTY requires System 7 or newer"); - mac_gestalts.sysvers &= 0xffff; /* Find out if we've got Color Quickdraw */ if (Gestalt(gestaltQuickdrawVersion, &mac_gestalts.qdvers) != noErr) mac_gestalts.qdvers = gestaltOriginalQD; @@ -140,12 +139,19 @@ static void mac_startup(void) { if (&RegisterAppearanceClient == kUnresolvedCFragSymbolAddress) mac_gestalts.apprvers = 0; #endif +#if TARGET_CPU_68K + mac_gestalts.cntlattr = 0; + mac_gestalts.windattr = 0; +#else /* Mac OS 8.5 Control Manager (proportional scrollbars)? */ - if (Gestalt(gestaltControlMgrAttr, &mac_gestalts.cntlattr) != noErr) + if (Gestalt(gestaltControlMgrAttr, &mac_gestalts.cntlattr) != noErr || + &SetControlViewSize == kUnresolvedCFragSymbolAddress) mac_gestalts.cntlattr = 0; /* Mac OS 8.5 Window Manager? */ - if (Gestalt(gestaltWindowMgrAttr, &mac_gestalts.windattr) != noErr) + if (Gestalt(gestaltWindowMgrAttr, &mac_gestalts.windattr) != noErr || + &SetWindowContentColor == kUnresolvedCFragSymbolAddress) mac_gestalts.windattr = 0; +#endif /* Text Encoding Conversion Manager? */ if ( #if TARGET_RT_MAC_CFM @@ -161,6 +167,8 @@ static void mac_startup(void) { DisposeHandle((Handle)ti); } + mactcp_init(); + /* We've been tested with the Appearance Manager */ if (mac_gestalts.apprvers != 0) RegisterAppearanceClient(); @@ -176,6 +184,9 @@ static void mac_startup(void) { windows.about = NULL; windows.licence = NULL; + default_protocol = DEFAULT_PROTOCOL; + default_port = DEFAULT_PORT; + { short vol; long dirid; @@ -202,6 +213,7 @@ static void mac_eventloop(void) { mac_adjustcursor(cursrgn); if (gotevent) mac_event(&event); + mactcp_poll(); } DisposeRgn(cursrgn); } @@ -591,6 +603,7 @@ static void mac_shutdown(void) { if (mac_gestalts.encvvers != 0) TerminateUnicodeConverter(); #endif + mactcp_shutdown(); exit(0); } @@ -603,7 +616,7 @@ void fatalbox(char *fmt, ...) { stuff[0] = vsprintf((char *)(&stuff[1]), fmt, ap); va_end(ap); ParamText(stuff, NULL, NULL, NULL); - StopAlert(128, nil); + StopAlert(128, NULL); exit(1); } @@ -616,7 +629,21 @@ void modalfatalbox(char *fmt, ...) { stuff[0] = vsprintf((char *)(&stuff[1]), fmt, ap); va_end(ap); ParamText(stuff, NULL, NULL, NULL); - StopAlert(128, nil); + StopAlert(128, NULL); + exit(1); +} + +/* This should only kill the current session, not the whole application. */ +void connection_fatal(void *fontend, char *fmt, ...) { + va_list ap; + Str255 stuff; + + va_start(ap, fmt); + /* We'd like stuff to be a Pascal string */ + stuff[0] = vsprintf((char *)(&stuff[1]), fmt, ap); + va_end(ap); + ParamText(stuff, NULL, NULL, NULL); + StopAlert(128, NULL); exit(1); }