Correct handling of Mac OS 8.5 Window Manager and Control Manager. The new
authorben <ben@cda61777-01e9-0310-a592-d414129be87e>
Sat, 4 Jan 2003 00:13:18 +0000 (00:13 +0000)
committerben <ben@cda61777-01e9-0310-a592-d414129be87e>
Sat, 4 Jan 2003 00:13:18 +0000 (00:13 +0000)
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.

git-svn-id: svn://svn.tartarus.org/sgt/putty@2441 cda61777-01e9-0310-a592-d414129be87e

mac/mac.c
mac/macterm.c
mkfiles.pl

index c6a93dc..8ba8795 100644 (file)
--- 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.15 2003/01/04 00:13:18 ben Exp $ */
 /*
  * Copyright (c) 1999 Ben Harris
  * All rights reserved.
@@ -140,12 +140,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
index 3de1d58..2cc85b9 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: macterm.c,v 1.31 2003/01/02 00:33:40 ben Exp $ */
+/* $Id: macterm.c,v 1.32 2003/01/04 00:13:18 ben Exp $ */
 /*
  * Copyright (c) 1999 Simon Tatham
  * Copyright (c) 1999, 2002 Ben Harris
@@ -336,7 +336,7 @@ static void mac_adjustwinbg(Session *s) {
 
     if (!HAVE_COLOR_QD())
        return;
-#if TARGET_RT_CFM /* XXX doesn't link (at least for 68k) */
+#if !TARGET_CPU_68K
     if (mac_gestalts.windattr & gestaltWindowMgrPresent)
        SetWindowContentColor(s->window,
                              &(*s->palette)->pmInfo[DEFAULT_BG].ciRGB);
@@ -1180,8 +1180,7 @@ void set_sbar(void *frontend, int total, int start, int page) {
     (*s->scrollbar)->contrlMin = 0;
     (*s->scrollbar)->contrlMax = total - page;
     SetControlValue(s->scrollbar, start);
-#if TARGET_RT_CFM
-    /* XXX: This doesn't link for me. */
+#if !TARGET_CPU_68K
     if (mac_gestalts.cntlattr & gestaltControlMgrPresent)
        SetControlViewSize(s->scrollbar, page);
 #endif
index d9c1f86..8b955e3 100755 (executable)
@@ -637,6 +637,10 @@ Libs_CFM68K =      {Libs_CFM} \xb6
                "{CFM68KLibraries}NuMacRuntime.o"
 
 Libs_PPC =     {Libs_CFM} \xb6
+               "{SharedLibraries}ControlsLib" \xb6
+                       -weaklib ControlsLib \xb6
+               "{SharedLibraries}WindowsLib" \xb6
+                       -weaklib WindowsLib \xb6
                "{PPCLibraries}StdCRuntime.o" \xb6
                "{PPCLibraries}PPCCRuntime.o" \xb6
                "{PPCLibraries}CarbonAccessors.o"