#endif
#if defined(__WXMAC__)
- #include "wx/mac/private.h" // includes mac headers
+ #include "wx/mac/private.h" // includes mac headers
#endif
#ifdef __WXWINCE__
#endif
// Handle User's home (ignore root homes!)
- size_t len = 0;
- if ((val = wxGetUserHome (user)) != NULL &&
- (len = wxStrlen(val)) > 2 &&
- wxStrncmp(dest, val, len) == 0)
- {
- wxStrcpy(wxFileFunctionsBuffer, wxT("~"));
- if (user != wxT(""))
- wxStrcat(wxFileFunctionsBuffer, (const wxChar*) user);
- wxStrcat(wxFileFunctionsBuffer, dest + len);
- wxStrcpy (dest, wxFileFunctionsBuffer);
- }
+ val = wxGetUserHome (user);
+ if (!val)
+ return dest;
+
+ const size_t len = wxStrlen(val);
+ if (len <= 2)
+ return dest;
+
+ if (wxStrncmp(dest, val, len) == 0)
+ {
+ wxStrcpy(wxFileFunctionsBuffer, wxT("~"));
+ if (user != wxT(""))
+ wxStrcat(wxFileFunctionsBuffer, (const wxChar*) user);
+ wxStrcat(wxFileFunctionsBuffer, dest + len);
+ wxStrcpy (dest, wxFileFunctionsBuffer);
+ }
return dest;
}
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
|| defined(__BORLANDC__) \
|| defined(__WATCOMC__) \
|| defined(__DMC__) \
- || defined(__GNUWIN32__)
+ || defined(__GNUWIN32__) \
+ || (defined(__MWERKS__) && defined(__MSL__))
int res = wxRemove(file);
#elif defined(__WXMAC__)
int res = unlink(wxFNCONV(file));