+ // free allocated handle
+ ::HUnlock( myPath ) ;
+ ::DisposeHandle( myPath ) ;
+#endif
+
+ return result ;
+}
+
+void wxMacFilename2FSSpec( const char *path , FSSpec *spec )
+{
+#ifdef __DARWIN__
+ FSRef theRef;
+
+ // get the FSRef associated with the POSIX path
+ (void) FSPathMakeRef((const UInt8 *) path, &theRef, NULL);
+ // convert the FSRef to an FSSpec
+ (void) FSGetCatalogInfo(&theRef, kFSCatInfoNone, NULL, NULL, spec, NULL);
+#else
+ FSpLocationFromFullPath( strlen(path) , path , spec ) ;
+#endif
+}
+
+#ifndef __DARWIN__
+// Mac file names are POSIX (Unix style) under Darwin
+// therefore the conversion functions below are not needed
+
+static char sMacFileNameConversion[ 1000 ] ;
+
+wxString wxMac2UnixFilename (const char *str)
+{
+ char *s = sMacFileNameConversion ;
+ strcpy( s , str ) ;
+ if (s)
+ {
+ memmove( s+1 , s ,strlen( s ) + 1) ;
+ if ( *s == ':' )
+ *s = '.' ;
+ else
+ *s = '/' ;
+
+ while (*s)
+ {
+ if (*s == ':')
+ *s = '/';
+ else
+ *s = wxTolower(*s); // Case INDEPENDENT
+ s++;