X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e874f8672e7aef6c01ddc808395bdb8db22ba0b1..7873ca319146f39b4685e8727fde91cf601f4bbe:/src/common/filefn.cpp diff --git a/src/common/filefn.cpp b/src/common/filefn.cpp index 2bb2a42402..e227020173 100644 --- a/src/common/filefn.cpp +++ b/src/common/filefn.cpp @@ -51,7 +51,7 @@ #endif #if defined(__WXMAC__) - #include "wx/mac/private.h" // includes mac headers + #include "wx/mac/private.h" // includes mac headers #endif #ifdef __WXWINCE__ @@ -923,9 +923,28 @@ wxString wxMacFSSpec2MacFilename( const FSSpec *spec ) Str255 theParentPath = "\p"; FSSpec theParentSpec; FSRef theParentRef; + FSRef theRef ; char theFileName[FILENAME_MAX]; char thePath[FILENAME_MAX]; + // we loose the long filename by merely copying the spec->name + // so try the built-ins, which only work if the file exists, but still... + + theErr = FSpMakeFSRef(spec, &theRef); + if ( theErr == noErr ) + { + CFURLRef fullURLRef; + fullURLRef = ::CFURLCreateFromFSRef(NULL, &theRef); +#ifdef __UNIX__ + CFURLPathStyle pathstyle = kCFURLPOSIXPathStyle; +#else + CFURLPathStyle pathstyle = kCFURLHFSPathStyle; +#endif + CFStringRef cfString = CFURLCopyFileSystemPath(fullURLRef, pathstyle); + ::CFRelease( fullURLRef ) ; + return wxMacCFStringHolder(cfString).AsString(wxLocale::GetSystemEncoding()); + } + strcpy(thePath, ""); // GD: Separate file name from path and make a FSRef to the parent