fix for getting proper fspecs for volumes that are not given with the trailing separator
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16673 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -920,27 +920,41 @@ wxString wxMacFSSpec2MacFilename( const FSSpec *spec )
|
|||||||
|
|
||||||
return result ;
|
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__
|
#ifndef __DARWIN__
|
||||||
// Mac file names are POSIX (Unix style) under Darwin
|
// Mac file names are POSIX (Unix style) under Darwin
|
||||||
// therefore the conversion functions below are not needed
|
// therefore the conversion functions below are not needed
|
||||||
|
|
||||||
static char sMacFileNameConversion[ 1000 ] ;
|
static char sMacFileNameConversion[ 1000 ] ;
|
||||||
|
|
||||||
|
#endif
|
||||||
|
void wxMacFilename2FSSpec( const char *path , FSSpec *spec )
|
||||||
|
{
|
||||||
|
OSStatus err = noErr ;
|
||||||
|
#ifdef __DARWIN__
|
||||||
|
FSRef theRef;
|
||||||
|
|
||||||
|
// get the FSRef associated with the POSIX path
|
||||||
|
err = FSPathMakeRef((const UInt8 *) path, &theRef, NULL);
|
||||||
|
// convert the FSRef to an FSSpec
|
||||||
|
err = FSGetCatalogInfo(&theRef, kFSCatInfoNone, NULL, NULL, spec, NULL);
|
||||||
|
#else
|
||||||
|
if ( strchr( path , ':' ) == NULL )
|
||||||
|
{
|
||||||
|
// try whether it is a volume / or a mounted volume
|
||||||
|
strncpy( sMacFileNameConversion , path , 1000 ) ;
|
||||||
|
sMacFileNameConversion[998] = 0 ;
|
||||||
|
strcat( sMacFileNameConversion , ":" ) ;
|
||||||
|
err = FSpLocationFromFullPath( strlen(sMacFileNameConversion) , sMacFileNameConversion , spec ) ;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
err = FSpLocationFromFullPath( strlen(path) , path , spec ) ;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifndef __DARWIN__
|
||||||
|
|
||||||
wxString wxMac2UnixFilename (const char *str)
|
wxString wxMac2UnixFilename (const char *str)
|
||||||
{
|
{
|
||||||
char *s = sMacFileNameConversion ;
|
char *s = sMacFileNameConversion ;
|
||||||
|
Reference in New Issue
Block a user