summaryrefslogtreecommitdiffstats
path: root/macosx/tkMacOSXInit.c
diff options
context:
space:
mode:
authordas <das>2005-05-26 11:18:50 (GMT)
committerdas <das>2005-05-26 11:18:50 (GMT)
commit2389c143d1bc1b5400aefcaef26e2e15945a82ad (patch)
tree4761826130ea3bda8d5678fa9603ae3b530e3eb9 /macosx/tkMacOSXInit.c
parentb3d70c9260bd91313100bdb557224afc98f06875 (diff)
downloadtk-2389c143d1bc1b5400aefcaef26e2e15945a82ad.zip
tk-2389c143d1bc1b5400aefcaef26e2e15945a82ad.tar.gz
tk-2389c143d1bc1b5400aefcaef26e2e15945a82ad.tar.bz2
* macosx/tkMacOSXInit.c (TkpInit): fixed resource file extraction
from __tk_rsrc section to work with non-prebound .dylib and .bundle. * macosx/Makefile: corrected EMBEDDED_BUILD check, use separate tcl and tk version vars to properly support tk/x11 framework version overriding, rewrite tkConfig.sh when overriding tk version, corrected Wish.app symlink in tk build dir. * unix/configure.in: corrected framework finalization to softlink stub library to Versions/8.x subdir instead of Versions/Current. * unix/configure: autoconf-2.59
Diffstat (limited to 'macosx/tkMacOSXInit.c')
-rw-r--r--macosx/tkMacOSXInit.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/macosx/tkMacOSXInit.c b/macosx/tkMacOSXInit.c
index 780bcc3..b604317 100644
--- a/macosx/tkMacOSXInit.c
+++ b/macosx/tkMacOSXInit.c
@@ -10,7 +10,7 @@
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
- * RCS: @(#) $Id: tkMacOSXInit.c,v 1.11 2005/05/24 02:32:15 das Exp $
+ * RCS: @(#) $Id: tkMacOSXInit.c,v 1.12 2005/05/26 11:19:01 das Exp $
*/
#include "tkInt.h"
@@ -175,23 +175,20 @@ TkpInit(interp)
unsigned long size;
int fd = -1;
char fileName[L_tmpnam + 15];
+ int i, n;
/* Get resource data from __tk_rsrc section of tk library file */
-#ifdef HAVE__DYLD_GET_IMAGE_HEADER_CONTAINING_ADDRESS
- image = _dyld_get_image_header_containing_address((unsigned long)&TkpInit);
- if (image) {
- data = getsectdatafromheader(image, SEG_TEXT, "__tk_rsrc", &size);
- }
-#else
- int i, n = _dyld_image_count();
+ n = _dyld_image_count();
for (i = 0; i < n; i++) {
image = _dyld_get_image_header(i);
if (image) {
data = getsectdatafromheader(image, SEG_TEXT, "__tk_rsrc", &size);
+ if (data) {
+ data += _dyld_get_image_vmaddr_slide(i);
+ break;
+ }
}
- if (data) break;
}
-#endif
while (data) {
OSStatus err;
FSRef ref;
@@ -210,6 +207,7 @@ TkpInit(interp)
err = FSPathMakeRef(fileName, &ref, NULL);
if (err != noErr) break;
err = FSOpenResourceFile(&ref, 0, NULL, fsRdPerm, &refNum);
+ if (err != noErr) fprintf(stderr,"FSOpenResourceFile error %d\n",err);
break;
}
if (fd != -1) {