X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/9c505a36e7cd4aa04a16c7ad4c68a57b5e266a82..76015a6bb79156d8af1b5e8b4b8e46b4e192d18f:/src/common/filefn.cpp diff --git a/src/common/filefn.cpp b/src/common/filefn.cpp index 997ebf2ba4..cb035c4407 100644 --- a/src/common/filefn.cpp +++ b/src/common/filefn.cpp @@ -61,6 +61,7 @@ #ifdef __WINDOWS__ #include "wx/msw/private.h" + #include "wx/msw/missing.h" #include "wx/msw/mslu.h" // sys/cygwin.h is needed for cygwin_conv_to_full_win32_path() @@ -842,6 +843,9 @@ wxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef additionalPathCompon { CFURLRef fullURLRef; fullURLRef = CFURLCreateFromFSRef(NULL, fsRef); + if ( fullURLRef == NULL) + return wxEmptyString; + if ( additionalPathComponent ) { CFURLRef parentURLRef = fullURLRef ; @@ -849,12 +853,10 @@ wxString wxMacFSRefToPath( const FSRef *fsRef , CFStringRef additionalPathCompon additionalPathComponent,false); CFRelease( parentURLRef ) ; } - CFStringRef cfString = CFURLCopyFileSystemPath(fullURLRef, kDefaultPathStyle); + wxCFStringRef cfString( CFURLCopyFileSystemPath(fullURLRef, kDefaultPathStyle )); CFRelease( fullURLRef ) ; - CFMutableStringRef cfMutableString = CFStringCreateMutableCopy(NULL, 0, cfString); - CFRelease( cfString ); - CFStringNormalize(cfMutableString,kCFStringNormalizationFormC); - return wxCFStringRef(cfMutableString).AsString(); + + return wxCFStringRef::AsStringWithNormalizationFormC(cfString); } OSStatus wxMacPathToFSRef( const wxString&path , FSRef *fsRef ) @@ -879,13 +881,10 @@ OSStatus wxMacPathToFSRef( const wxString&path , FSRef *fsRef ) wxString wxMacHFSUniStrToString( ConstHFSUniStr255Param uniname ) { - CFStringRef cfname = CFStringCreateWithCharacters( kCFAllocatorDefault, + wxCFStringRef cfname( CFStringCreateWithCharacters( kCFAllocatorDefault, uniname->unicode, - uniname->length ); - CFMutableStringRef cfMutableString = CFStringCreateMutableCopy(NULL, 0, cfname); - CFRelease( cfname ); - CFStringNormalize(cfMutableString,kCFStringNormalizationFormC); - return wxCFStringRef(cfMutableString).AsString() ; + uniname->length ) ); + return wxCFStringRef::AsStringWithNormalizationFormC(cfname); } #ifndef __LP64__ @@ -1357,9 +1356,7 @@ wxString wxFindNextFile() wxCHECK_MSG( gs_dir, "", "You must call wxFindFirstFile before!" ); wxString result; - gs_dir->GetNext(&result); - - if ( result.empty() ) + if ( !gs_dir->GetNext(&result) || result.empty() ) { wxDELETE(gs_dir); return result; @@ -1576,8 +1573,12 @@ wxString wxGetOSDirectory() #ifdef __WXWINCE__ return wxString(wxT("\\Windows")); #elif defined(__WINDOWS__) && !defined(__WXMICROWIN__) - wxChar buf[256]; - GetWindowsDirectory(buf, 256); + wxChar buf[MAX_PATH]; + if ( !GetWindowsDirectory(buf, MAX_PATH) ) + { + wxLogLastError(wxS("GetWindowsDirectory")); + } + return wxString(buf); #elif defined(__WXMAC__) && wxOSX_USE_CARBON return wxMacFindFolderNoSeparator(kOnSystemDisk, 'macs', false);