diff --git a/src/mac/carbon/filedlg.cpp b/src/mac/carbon/filedlg.cpp index 87e7846177..15771305be 100644 --- a/src/mac/carbon/filedlg.cpp +++ b/src/mac/carbon/filedlg.cpp @@ -491,17 +491,36 @@ int wxFileDialog::ShowModal() if (specDesc.dataHandle != nil) { ::AEDisposeDesc(&specDesc); } - - - // outFolderDirID = thePB.dirInfo.ioDrDirID; +#ifdef __DARWIN__ + FSRef fsr ; + err = FSpMakeFSRef( &outFileSpec , &fsr ) ; + if ( err == fnfErr ) + { + FSSpec fss ; + err = FSMakeFSSpec( outFileSpec.vRefNum , outFileSpec.parID, "\p" , &fss ) ; + err = FSpMakeFSRef( &fss , &fsr ) ; + char path[256] ; + err = FSRefMakePath( &fsr , (unsigned char*) path , sizeof(path) ) ; + strcat( path , "/" ) ; + p2cstr( outFileSpec.name ) ; + strcat( path , (char*) outFileSpec.name ) ; + m_path = path ; + } + else + { + m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ; + } +#else m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ; +#endif m_paths.Add( m_path ) ; - m_fileNames.Add(m_fileName); - } - // set these to the first hit - m_path = m_paths[ 0 ] ; - m_fileName = wxFileNameFromPath(m_path); - m_dir = wxPathOnly(m_path); + m_fileName = wxFileNameFromPath(m_path); + m_fileNames.Add(m_fileName); + } + // set these to the first hit + m_path = m_paths[ 0 ] ; + m_fileName = wxFileNameFromPath(m_path); + m_dir = wxPathOnly(m_path); NavDisposeReply( &mNavReply ) ; return wxID_OK ; } diff --git a/src/mac/filedlg.cpp b/src/mac/filedlg.cpp index 87e7846177..15771305be 100644 --- a/src/mac/filedlg.cpp +++ b/src/mac/filedlg.cpp @@ -491,17 +491,36 @@ int wxFileDialog::ShowModal() if (specDesc.dataHandle != nil) { ::AEDisposeDesc(&specDesc); } - - - // outFolderDirID = thePB.dirInfo.ioDrDirID; +#ifdef __DARWIN__ + FSRef fsr ; + err = FSpMakeFSRef( &outFileSpec , &fsr ) ; + if ( err == fnfErr ) + { + FSSpec fss ; + err = FSMakeFSSpec( outFileSpec.vRefNum , outFileSpec.parID, "\p" , &fss ) ; + err = FSpMakeFSRef( &fss , &fsr ) ; + char path[256] ; + err = FSRefMakePath( &fsr , (unsigned char*) path , sizeof(path) ) ; + strcat( path , "/" ) ; + p2cstr( outFileSpec.name ) ; + strcat( path , (char*) outFileSpec.name ) ; + m_path = path ; + } + else + { + m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ; + } +#else m_path = wxMacFSSpec2MacFilename( &outFileSpec ) ; +#endif m_paths.Add( m_path ) ; - m_fileNames.Add(m_fileName); - } - // set these to the first hit - m_path = m_paths[ 0 ] ; - m_fileName = wxFileNameFromPath(m_path); - m_dir = wxPathOnly(m_path); + m_fileName = wxFileNameFromPath(m_path); + m_fileNames.Add(m_fileName); + } + // set these to the first hit + m_path = m_paths[ 0 ] ; + m_fileName = wxFileNameFromPath(m_path); + m_dir = wxPathOnly(m_path); NavDisposeReply( &mNavReply ) ; return wxID_OK ; }