-/* $Id: mac.c,v 1.5 2002/12/06 00:09:34 ben Exp $ */
+/* $Id: mac.c,v 1.9 2002/12/29 19:14:56 ben Exp $ */
/*
* Copyright (c) 1999 Ben Harris
* All rights reserved.
#include <Gestalt.h>
#include <Resources.h>
#include <Script.h>
+#include <TextCommon.h>
#include <ToolUtils.h>
+#include <UnicodeConverter.h>
#include <assert.h>
#include <limits.h>
static void mac_startup(void) {
Handle menuBar;
+ TECInfoHandle ti;
/* Init Memory Manager */
MaxApplZone();
InitDialogs(nil);
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)
+ 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;
/* Mac OS 8.5 Window Manager? */
if (Gestalt(gestaltWindowMgrAttr, &mac_gestalts.windattr) != noErr)
mac_gestalts.windattr = 0;
+ /* Text Encoding Conversion Manager? */
+ if (
+#if TARGET_RT_MAC_CFM
+ &TECGetInfo == kUnresolvedCFragSymbolAddress ||
+#else
+ InitializeUnicodeConverter(NULL) != noErr ||
+#endif
+ TECGetInfo(&ti) != noErr)
+ mac_gestalts.encvvers = 0;
+ else {
+ mac_gestalts.encvvers = (*ti)->tecVersion;
+ DisposeHandle((Handle)ti);
+ }
/* We've been tested with the Appearance Manager */
if (mac_gestalts.apprvers != 0)
}
static void mac_openlicence(void) {
- DialogItemType itemtype;
- Handle item;
- VersRecHndl vers;
- Rect box;
- StringPtr longvers;
if (windows.licence)
SelectWindow(windows.licence);
static void mac_shutdown(void) {
+#if !TARGET_RT_MAC_CFM
+ if (mac_gestalts.encvvers != 0)
+ TerminateUnicodeConverter();
+#endif
exit(0);
}