attempt to get a 'correct' current working directory

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28234 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor 2004-07-14 18:04:02 +00:00
parent 5ac2e80ca2
commit e256c69230

View File

@ -630,6 +630,26 @@ bool wxApp::Initialize(int& argc, wxChar **argv)
wxFont::SetDefaultEncoding(wxLocale::GetSystemEncoding());
#endif
#if TARGET_API_MAC_OSX
// these might be the startup dirs, set them to the 'usual' dir containing the app bundle
wxString startupCwd = wxGetCwd() ;
if ( startupCwd == "/" || startupCwd.Right(15) == "/Contents/MacOS" )
{
wxString cwd ;
CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle() ) ;
CFURLRef urlParent = CFURLCreateCopyDeletingLastPathComponent( kCFAllocatorDefault , url ) ;
CFRelease( url ) ;
CFStringRef path = CFURLCopyFileSystemPath ( urlParent , kCFURLPOSIXPathStyle ) ;
CFRelease( urlParent ) ;
CFIndex len = CFStringGetLength( path ) ;
CFIndex max = CFStringGetMaximumSizeForEncoding( len, kCFStringEncodingUTF8 ) ;
wxChar* buf = cwd.GetWriteBuf( max ) ;
CFStringGetCString( path , buf , max + 1 , kCFStringEncodingUTF8 ) ;
CFRelease( path ) ;
cwd.UngetWriteBuf() ;
wxSetWorkingDirectory( cwd ) ;
}
#endif
wxMacCreateNotifierTable() ;