X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1357a7dd5c4b56a96f749c4b83f3f646afc18620..8add533eb22ba0756f5b426f77ee593bc1aa6fcd:/src/unix/dir.cpp diff --git a/src/unix/dir.cpp b/src/unix/dir.cpp index 95f2e78f19..0aeffa42b8 100644 --- a/src/unix/dir.cpp +++ b/src/unix/dir.cpp @@ -6,7 +6,7 @@ // Created: 08.12.99 // RCS-ID: $Id$ // Copyright: (c) 1999 Vadim Zeitlin -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// // ============================================================================ @@ -17,7 +17,7 @@ // headers // ---------------------------------------------------------------------------- -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma implementation "dir.h" #endif @@ -126,12 +126,20 @@ bool wxDirData::Read(wxString *filename) wxString path = m_dirname; path += _T('/'); path.reserve(path.length() + 255); + + wxString de_d_name; while ( !matches ) { de = readdir(m_dir); if ( !de ) return FALSE; + +#if wxUSE_UNICODE + de_d_name = wxConvFileName->cMB2WC( de->d_name ); +#else + de_d_name = de->d_name; +#endif // don't return "." and ".." unless asked for if ( de->d_name[0] == '.' && @@ -146,12 +154,12 @@ bool wxDirData::Read(wxString *filename) } // check the type now - if ( !(m_flags & wxDIR_FILES) && !wxDir::Exists(path + de->d_name) ) + if ( !(m_flags & wxDIR_FILES) && !wxDir::Exists(path + de_d_name) ) { // it's a file, but we don't want them continue; } - else if ( !(m_flags & wxDIR_DIRS) && wxDir::Exists(path + de->d_name) ) + else if ( !(m_flags & wxDIR_DIRS) && wxDir::Exists(path + de_d_name) ) { // it's a dir, and we don't want it continue; @@ -165,12 +173,12 @@ bool wxDirData::Read(wxString *filename) else { // test against the pattern - matches = wxMatchWild(m_filespec, de->d_name, + matches = wxMatchWild(m_filespec, de_d_name, !(m_flags & wxDIR_HIDDEN)); } } - *filename = de->d_name; + *filename = de_d_name; return TRUE; } @@ -303,7 +311,7 @@ bool wxDir::HasSubDirs(const wxString& spec) // caller will learn it soon enough when it calls GetFirst(wxDIR) // anyhow wxStructStat stBuf; - if ( wxStat(M_DIR->GetName(), &stBuf) == 0 ) + if ( wxStat(M_DIR->GetName().c_str(), &stBuf) == 0 ) { switch ( stBuf.st_nlink ) {