X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4daceaacbd19768c766c20146771a3eeafc4ac2a..0d1903dbda864780eec30efdc4e91776bdbfd21b:/src/msw/dir.cpp diff --git a/src/msw/dir.cpp b/src/msw/dir.cpp index 55f855cf6f..0867811c70 100644 --- a/src/msw/dir.cpp +++ b/src/msw/dir.cpp @@ -4,7 +4,6 @@ // Author: Vadim Zeitlin // Modified by: // Created: 08.12.99 -// RCS-ID: $Id$ // Copyright: (c) 1999 Vadim Zeitlin // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -77,8 +76,22 @@ const wxChar *GetNameFromFindData(const FIND_STRUCT *finddata) inline bool CheckFoundMatch(const FIND_STRUCT* finddata, const wxString& filter) { - return filter.empty() || - wxString(GetNameFromFindData(finddata)).Matches(filter); + // If there is no filter, the found file must be the one we really are + // looking for. + if ( filter.empty() ) + return true; + + // Otherwise do check the match validity. Notice that we must do it + // case-insensitively because the case of the file names is not supposed to + // matter under Windows. + wxString fn(GetNameFromFindData(finddata)); + + // However if the filter contains only special characters (which is a + // common case), we can skip the case conversion. + if ( filter.find_first_not_of(wxS("*?.")) == wxString::npos ) + return fn.Matches(filter); + + return fn.MakeUpper().Matches(filter.Upper()); } inline bool