corrected findfirst/next on mac

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Stefan Csomor
2001-11-02 22:00:54 +00:00
parent ab11ebfa19
commit eea0ecad6e

View File

@@ -1448,18 +1448,25 @@ struct MacDirectoryIterator
static int g_iter_flags ; static int g_iter_flags ;
static MacDirectoryIterator g_iter ; static MacDirectoryIterator g_iter ;
wxString g_iter_spec ;
wxString wxFindFirstFile(const wxChar *spec, int flags) wxString wxFindFirstFile(const wxChar *spec, int flags)
{ {
wxString result; wxString result;
g_iter_spec = spec ;
g_iter_spec.MakeUpper() ;
g_iter_flags = flags; /* MATTHEW: [5] Remember flags */ g_iter_flags = flags; /* MATTHEW: [5] Remember flags */
// Find path only so we can concatenate found file onto path // Find path only so we can concatenate found file onto path
wxString path(wxPathOnly(spec)); wxString path(wxPathOnly(spec));
#ifdef __DARWIN__
// TODO:check whether is necessary/correct
if ( !path.IsEmpty() ) if ( !path.IsEmpty() )
result << path << wxT('\\'); result << path << wxT('/');
#else
result = path ;
#endif
FSSpec fsspec ; FSSpec fsspec ;
wxMacFilename2FSSpec( result , &fsspec ) ; wxMacFilename2FSSpec( result , &fsspec ) ;
@@ -1480,7 +1487,10 @@ wxString wxFindNextFile()
wxString result; wxString result;
short err = noErr ; short err = noErr ;
wxString name ;
while(1)
{
while ( err == noErr ) while ( err == noErr )
{ {
g_iter.m_index++ ; g_iter.m_index++ ;
@@ -1510,7 +1520,11 @@ wxString wxFindNextFile()
g_iter.m_name, g_iter.m_name,
&spec) ; &spec) ;
return wxMacFSSpec2MacFilename( &spec ) ; wxString name = wxMacFSSpec2MacFilename( &spec ) ;
if ( g_iter_spec.Right(4)==(":*.*") || g_iter_spec.Right(2)==(":*") || name.Upper().Matches(g_iter_spec) )
return name ;
}
return wxEmptyString ;
} }
#elif defined(__WXMSW__) #elif defined(__WXMSW__)