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:
@@ -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__)
|
||||||
|
Reference in New Issue
Block a user