X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f1e7793361bb0106611e5d1373b4e1e6ed30f14f..3e2656801d825761f55ea9b0b766802c6cd32f1d:/src/common/filename.cpp diff --git a/src/common/filename.cpp b/src/common/filename.cpp index 17218d98d3..84af36bbf2 100644 --- a/src/common/filename.cpp +++ b/src/common/filename.cpp @@ -47,7 +47,7 @@ Note that VMS uses different separators unlike Unix: : always after the device. If the path does not contain : than the default (the device of the current directory) is assumed. - [ start of directory specyfication + [ start of directory specification . separator between directory and subdirectory ] between directory and file */ @@ -2031,31 +2031,44 @@ static void MacEnsureDefaultExtensionsLoaded() gMacDefaultExtensionsInited = true ; } } + bool wxFileName::MacSetTypeAndCreator( wxUint32 type , wxUint32 creator ) { - FInfo fndrInfo ; - FSSpec spec ; - wxMacFilename2FSSpec(GetFullPath(),&spec) ; - OSErr err = FSpGetFInfo( &spec , &fndrInfo ) ; - wxCHECK( err == noErr , false ) ; + FSRef fsRef ; + FSCatalogInfo catInfo; + FileInfo *finfo ; - fndrInfo.fdType = type ; - fndrInfo.fdCreator = creator ; - FSpSetFInfo( &spec , &fndrInfo ) ; - return true ; + if ( wxMacPathToFSRef( GetFullPath() , &fsRef ) == noErr ) + { + if ( FSGetCatalogInfo (&fsRef, kFSCatInfoFinderInfo, &catInfo, NULL, NULL, NULL) == noErr ) + { + finfo = (FileInfo*)&catInfo.finderInfo; + finfo->fileType = type ; + finfo->fileCreator = creator ; + FSSetCatalogInfo( &fsRef, kFSCatInfoFinderInfo, &catInfo ) ; + return true ; + } + } + return false ; } bool wxFileName::MacGetTypeAndCreator( wxUint32 *type , wxUint32 *creator ) { - FInfo fndrInfo ; - FSSpec spec ; - wxMacFilename2FSSpec(GetFullPath(),&spec) ; - OSErr err = FSpGetFInfo( &spec , &fndrInfo ) ; - wxCHECK( err == noErr , false ) ; + FSRef fsRef ; + FSCatalogInfo catInfo; + FileInfo *finfo ; - *type = fndrInfo.fdType ; - *creator = fndrInfo.fdCreator ; - return true ; + if ( wxMacPathToFSRef( GetFullPath() , &fsRef ) == noErr ) + { + if ( FSGetCatalogInfo (&fsRef, kFSCatInfoFinderInfo, &catInfo, NULL, NULL, NULL) == noErr ) + { + finfo = (FileInfo*)&catInfo.finderInfo; + *type = finfo->fileType ; + *creator = finfo->fileCreator ; + return true ; + } + } + return false ; } bool wxFileName::MacSetDefaultTypeAndCreator()