X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2b147f2e19c90ea74a4f96260ef8954a9bfbe2f1..4eccf53dd554235876dccd4e37331d64427e84c4:/src/mac/corefoundation/stdpaths_cf.cpp diff --git a/src/mac/corefoundation/stdpaths_cf.cpp b/src/mac/corefoundation/stdpaths_cf.cpp index eeaa7453e5..5d93769869 100644 --- a/src/mac/corefoundation/stdpaths_cf.cpp +++ b/src/mac/corefoundation/stdpaths_cf.cpp @@ -85,7 +85,7 @@ static wxString BundleRelativeURLToPath(CFURLRef relativeURL) wxCHECK_MSG(absoluteURL, wxEmptyString, wxT("Failed to resolve relative URL to absolute URL")); CFStringRef cfStrPath = CFURLCopyFileSystemPath(absoluteURL,kDefaultPathStyle); CFRelease(absoluteURL); - return wxMacCFStringHolder(cfStrPath).AsString(wxLocale::GetSystemEncoding()); + return wxCFStringRef(cfStrPath).AsString(wxLocale::GetSystemEncoding()); } wxString wxStandardPathsCF::GetFromFunc(wxCFURLRef (*func)(wxCFBundleRef)) const @@ -104,11 +104,7 @@ wxString wxStandardPathsCF::GetDocumentsDir() const #ifdef __WXMAC__ return wxMacFindFolderNoSeparator ( -#if TARGET_API_MAC_OSX kUserDomain, -#else - kOnSystemDisk, -#endif kDocumentsFolderType, kCreateFolder ); @@ -144,26 +140,39 @@ wxString wxStandardPathsCF::GetDataDir() const return GetFromFunc(CFBundleCopySharedSupportURL); } -// TODO: implement this using real CoreFoundation API instead of Carbon API wxString wxStandardPathsCF::GetExecutablePath() const { #ifdef __WXMAC__ +#if 1 + return GetFromFunc(CFBundleCopyBundleURL); +#else + // TODO remove if cf implementation ok ProcessInfoRec processinfo; ProcessSerialNumber procno ; +#ifdef __LP64__ + FSRef fsRef; +#else FSSpec fsSpec; - +#endif + procno.highLongOfPSN = 0 ; procno.lowLongOfPSN = kCurrentProcess ; processinfo.processInfoLength = sizeof(ProcessInfoRec); processinfo.processName = NULL; +#ifdef __LP64__ + processinfo.processAppRef = &fsRef; +#else processinfo.processAppSpec = &fsSpec; - +#endif + GetProcessInformation( &procno , &processinfo ) ; #ifdef __LP64__ return wxMacFSRefToPath(&fsRef); #else return wxMacFSSpec2MacFilename(&fsSpec); #endif +#endif + #else return wxStandardPathsBase::GetExecutablePath(); #endif