summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordas <das>2003-05-22 01:15:33 (GMT)
committerdas <das>2003-05-22 01:15:33 (GMT)
commiteb3219aaa38da99c46978eae1194802003a1065b (patch)
tree6c0cb6eaa359ac492918137b0a2981f722776d70
parent2268c2b60a21f8fa22f1ca2a67ec80662ff196cb (diff)
downloadtcl-eb3219aaa38da99c46978eae1194802003a1065b.zip
tcl-eb3219aaa38da99c46978eae1194802003a1065b.tar.gz
tcl-eb3219aaa38da99c46978eae1194802003a1065b.tar.bz2
* macosx/tclMacOSXBundle.c: fixed a problem that caused only the
first call to Tcl_MacOSXOpenVersionedBundleResources() for a given bundle identifier to succeed. This caused the tcl runtime library not to be found in all interps created after the inital one.
-rw-r--r--ChangeLog7
-rw-r--r--macosx/tclMacOSXBundle.c10
2 files changed, 17 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b02522e..57bcbb1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2003-05-22 Daniel Steffen <das@users.sourceforge.net>
+
+ * macosx/tclMacOSXBundle.c: fixed a problem that caused only the
+ first call to Tcl_MacOSXOpenVersionedBundleResources() for a given
+ bundle identifier to succeed. This caused the tcl runtime library
+ not to be found in all interps created after the inital one.
+
2003-05-20 Jeff Hobbs <jeffh@ActiveState.com>
*** 8.4.3 TAGGED FOR RELEASE ***
diff --git a/macosx/tclMacOSXBundle.c b/macosx/tclMacOSXBundle.c
index 88def57..5018aa8 100644
--- a/macosx/tclMacOSXBundle.c
+++ b/macosx/tclMacOSXBundle.c
@@ -138,6 +138,16 @@ Tcl_MacOSXOpenVersionedBundleResources(
bundleVersion, kCFStringEncodingUTF8);
CFURLRef bundleURL = CFBundleCopyBundleURL(bundleRef);
if (bundleURL) {
+ CFStringRef bundleTailRef = CFURLCopyLastPathComponent(bundleURL);
+ if (bundleTailRef) {
+ if (CFStringCompare(bundleTailRef,bundleVersionRef,0)
+ == kCFCompareEqualTo) {
+ versionedBundleRef = bundleRef;
+ }
+ CFRelease(bundleTailRef);
+ }
+ }
+ if (bundleURL && !versionedBundleRef) {
CFURLRef versURL = CFURLCreateCopyAppendingPathComponent(NULL,
bundleURL, CFSTR("Versions"), TRUE);
if (versURL) {