X-Git-Url: https://git.distorted.org.uk/~mdw/sgt/putty/blobdiff_plain/97cfddb2a752768e525fe56d2fa85bef97641065..5211281f4c41ec7259121cfd44b476065a20dd35:/mac/mac.c diff --git a/mac/mac.c b/mac/mac.c index d7ac91fd..3a0f065d 100644 --- a/mac/mac.c +++ b/mac/mac.c @@ -1,4 +1,4 @@ -/* $Id: mac.c,v 1.34 2003/01/20 22:55:08 ben Exp $ */ +/* $Id: mac.c,v 1.37 2003/01/25 15:15:40 ben Exp $ */ /* * Copyright (c) 1999 Ben Harris * All rights reserved. @@ -90,7 +90,6 @@ static void mac_adjustmenus(void); static void mac_closewindow(WindowPtr); static void mac_zoomwindow(WindowPtr, short); #pragma noreturn (cleanup_exit) -static pascal OSErr mac_aevt_quit(const AppleEvent *, AppleEvent *, long); struct mac_windows { WindowPtr about; @@ -173,22 +172,7 @@ static void mac_startup(void) { DisposeHandle((Handle)ti); } -#if 0 /* OpenTransport? */ - if (Gestalt(gestaltOpenTpt, &mac_gestalts.otptattr) != noErr || - (mac_gestalts.otptattr & gestaltOpenTptTCPPresentMask) == 0 || - ot_init() != noErr) -#endif - mac_gestalts.otptattr = 0; - if (mac_gestalts.otptattr == 0) { - /* MacTCP? */ - if (Gestalt(FOUR_CHAR_CODE('mtcp'), &mac_gestalts.mtcpvers) != noErr) - mac_gestalts.mtcpvers = 0; - if (mac_gestalts.mtcpvers > 0) { - if (mactcp_init() != noErr) - mac_gestalts.mtcpvers = 0; - } - } else - mac_gestalts.mtcpvers = 0; + sk_init(); /* We've been tested with the Appearance Manager */ if (mac_gestalts.apprvers != 0) @@ -231,6 +215,12 @@ static void mac_startup(void) { } /* Install Apple Event handlers. */ + AEInstallEventHandler(kCoreEventClass, kAEOpenApplication, + NewAEEventHandlerUPP(&mac_aevt_oapp), 0, FALSE); + AEInstallEventHandler(kCoreEventClass, kAEOpenDocuments, + NewAEEventHandlerUPP(&mac_aevt_odoc), 0, FALSE); + AEInstallEventHandler(kCoreEventClass, kAEPrintDocuments, + NewAEEventHandlerUPP(&mac_aevt_pdoc), 0, FALSE); AEInstallEventHandler(kCoreEventClass, kAEQuitApplication, NewAEEventHandlerUPP(&mac_aevt_quit), 0, FALSE); } @@ -249,10 +239,7 @@ static void mac_eventloop(void) { mac_event(&event); if (borednow) cleanup_exit(0); - if (mac_gestalts.mtcpvers != 0) - mactcp_poll(); - if (mac_gestalts.otptattr != 0) - ot_poll(); + sk_poll(); mac_pollterm(); } DisposeRgn(cursrgn); @@ -505,6 +492,9 @@ static void mac_menucommand(long result) { case iSaveAs: mac_savesessionas(); goto done; + case iDuplicate: + mac_dupsession(); + goto done; case iQuit: cleanup_exit(0); goto done; @@ -604,6 +594,7 @@ static void mac_adjustmenus(void) { case wSettings: DisableItem(menu, iSave); /* XXX enable if modified */ EnableItem(menu, iSaveAs); + EnableItem(menu, iDuplicate); menu = GetMenuHandle(mEdit); DisableItem(menu, 0); break; @@ -613,6 +604,7 @@ static void mac_adjustmenus(void) { default: DisableItem(menu, iSave); DisableItem(menu, iSaveAs); + DisableItem(menu, iDuplicate); menu = GetMenuHandle(mEdit); DisableItem(menu, 0); break; @@ -651,9 +643,15 @@ static void mac_adjustcursor(RgnHandle cursrgn) { } } -static pascal OSErr mac_aevt_quit(const AppleEvent *req, AppleEvent *reply, +pascal OSErr mac_aevt_quit(const AppleEvent *req, AppleEvent *reply, long refcon) { + DescType type; + Size size; + + if (AEGetAttributePtr(req, keyMissedKeywordAttr, typeWildCard, + &type, NULL, 0, &size) == noErr) + return errAEParamMissed; borednow = 1; return noErr;