X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3dee36ae33edfa99460ce71e928678e1282df844..3d7a1b394baa3255d084c877b5caae4b29720a12:/src/mac/carbon/dirmac.cpp diff --git a/src/mac/carbon/dirmac.cpp b/src/mac/carbon/dirmac.cpp index 85dd3e2535..979f68a40e 100644 --- a/src/mac/carbon/dirmac.cpp +++ b/src/mac/carbon/dirmac.cpp @@ -1,5 +1,5 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: msw/dir.cpp +// Name: mac/dirmac.cpp // Purpose: wxDir implementation for Mac // Author: Stefan Csomor // Modified by: @@ -17,10 +17,6 @@ // headers // ---------------------------------------------------------------------------- -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) - #pragma implementation "dir.h" -#endif - // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" @@ -28,37 +24,17 @@ #pragma hdrstop #endif +#include "wx/dir.h" + #ifndef WX_PRECOMP #include "wx/intl.h" #include "wx/log.h" #endif // PCH -#include "wx/dir.h" #include "wx/filefn.h" // for wxDirExists() - -#ifndef __DARWIN__ - #include -#endif - #include "wx/filename.h" #include "wx/mac/private.h" -#include "MoreFilesX.h" - -// ---------------------------------------------------------------------------- -// constants -// ---------------------------------------------------------------------------- - -#ifndef MAX_PATH - #define MAX_PATH 260 // from VC++ headers -#endif - -// ---------------------------------------------------------------------------- -// macros -// ---------------------------------------------------------------------------- - -#define M_DIR ((wxDirData *)m_data) - // ---------------------------------------------------------------------------- // private classes // ---------------------------------------------------------------------------- @@ -155,13 +131,16 @@ bool wxDirData::Read(wxString *filename) HFSUniStr255 uniname ; FSRef fileRef; FSCatalogInfo catalogInfo; - UInt32 fetched = 0; + ItemCount fetched = 0; err = FSGetCatalogInfoBulk( m_iterator, 1, &fetched, NULL, kFSCatInfoNodeFlags | kFSCatInfoFinderInfo , &catalogInfo , &fileRef, NULL, &uniname ); + + // expected error codes + if ( errFSNoMoreItems == err ) return false ; - - wxASSERT( noErr == err ) ; + if ( afpAccessDenied == err ) + return false ; if ( noErr != err ) break ; @@ -227,7 +206,7 @@ wxDir::wxDir(const wxString& dirname) bool wxDir::Open(const wxString& dirname) { - delete M_DIR; + delete m_data; m_data = new wxDirData(dirname); return true; @@ -243,7 +222,7 @@ wxString wxDir::GetName() const wxString name; if ( m_data ) { - name = M_DIR->GetName(); + name = m_data->GetName(); if ( !name.empty() && (name.Last() == _T('/')) ) { // chop off the last (back)slash @@ -256,10 +235,8 @@ wxString wxDir::GetName() const wxDir::~wxDir() { - if (M_DIR != NULL) { - delete M_DIR; - m_data = NULL; - } + delete m_data; + m_data = NULL; } // ---------------------------------------------------------------------------- @@ -272,10 +249,10 @@ bool wxDir::GetFirst(wxString *filename, { wxCHECK_MSG( IsOpened(), false, _T("must wxDir::Open() first") ); - M_DIR->Rewind(); + m_data->Rewind(); - M_DIR->SetFileSpec(filespec); - M_DIR->SetFlags(flags); + m_data->SetFileSpec(filespec); + m_data->SetFlags(flags); return GetNext(filename); } @@ -286,5 +263,5 @@ bool wxDir::GetNext(wxString *filename) const wxCHECK_MSG( filename, false, _T("bad pointer in wxDir::GetNext()") ); - return M_DIR->Read(filename); + return m_data->Read(filename); }