Added explicit Unicode conversion to wxDir - the

code looked supicious to me.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16441 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robert Roebling
2002-08-10 11:54:51 +00:00
parent 24f588af92
commit e6ccaf1a99

View File

@@ -127,12 +127,20 @@ bool wxDirData::Read(wxString *filename)
path += _T('/'); path += _T('/');
path.reserve(path.length() + 255); path.reserve(path.length() + 255);
wxString de_d_name;
while ( !matches ) while ( !matches )
{ {
de = readdir(m_dir); de = readdir(m_dir);
if ( !de ) if ( !de )
return FALSE; return FALSE;
#if wxUSE_UNICODE
de_d_name = wxConvLibc.cMB2WC( de->d_name );
#else
de_d_name = de->d_name;
#endif
// don't return "." and ".." unless asked for // don't return "." and ".." unless asked for
if ( de->d_name[0] == '.' && if ( de->d_name[0] == '.' &&
((de->d_name[1] == '.' && de->d_name[2] == '\0') || ((de->d_name[1] == '.' && de->d_name[2] == '\0') ||
@@ -146,12 +154,12 @@ bool wxDirData::Read(wxString *filename)
} }
// check the type now // 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 // it's a file, but we don't want them
continue; 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 // it's a dir, and we don't want it
continue; continue;
@@ -164,13 +172,17 @@ bool wxDirData::Read(wxString *filename)
} }
else else
{ {
#if wxUSE_UNICODE
matches = TRUE; // FIXME
#else
// test against the pattern // test against the pattern
matches = wxMatchWild(m_filespec, de->d_name, matches = wxMatchWild(m_filespec, de_d_name,
!(m_flags & wxDIR_HIDDEN)); !(m_flags & wxDIR_HIDDEN));
#endif
} }
} }
*filename = de->d_name; *filename = de_d_name;
return TRUE; return TRUE;
} }