fixed bug in wxString::Matches() - backtrack now if \* mismatched
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@10777 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -35,38 +35,38 @@
 | 
			
		||||
 | 
			
		||||
// what to test (in alphabetic order)?
 | 
			
		||||
 | 
			
		||||
#define TEST_ARRAYS
 | 
			
		||||
#define TEST_CHARSET
 | 
			
		||||
#define TEST_CMDLINE
 | 
			
		||||
#define TEST_DATETIME
 | 
			
		||||
#define TEST_DIR
 | 
			
		||||
#define TEST_DLLLOADER
 | 
			
		||||
#define TEST_ENVIRON
 | 
			
		||||
#define TEST_EXECUTE
 | 
			
		||||
#define TEST_FILE
 | 
			
		||||
#define TEST_FILECONF
 | 
			
		||||
#define TEST_FILENAME
 | 
			
		||||
#define TEST_FTP
 | 
			
		||||
#define TEST_HASH
 | 
			
		||||
#define TEST_INFO_FUNCTIONS
 | 
			
		||||
#define TEST_LIST
 | 
			
		||||
#define TEST_LOCALE
 | 
			
		||||
#define TEST_LOG
 | 
			
		||||
#define TEST_LONGLONG
 | 
			
		||||
#define TEST_MIME
 | 
			
		||||
#define TEST_PATHLIST
 | 
			
		||||
#define TEST_REGCONF
 | 
			
		||||
#define TEST_REGISTRY
 | 
			
		||||
#define TEST_SNGLINST
 | 
			
		||||
#define TEST_SOCKETS
 | 
			
		||||
#define TEST_STREAMS
 | 
			
		||||
//#define TEST_ARRAYS
 | 
			
		||||
//#define TEST_CHARSET
 | 
			
		||||
//#define TEST_CMDLINE
 | 
			
		||||
//#define TEST_DATETIME
 | 
			
		||||
//#define TEST_DIR
 | 
			
		||||
//#define TEST_DLLLOADER
 | 
			
		||||
//#define TEST_ENVIRON
 | 
			
		||||
//#define TEST_EXECUTE
 | 
			
		||||
//#define TEST_FILE
 | 
			
		||||
//#define TEST_FILECONF
 | 
			
		||||
//#define TEST_FILENAME
 | 
			
		||||
//#define TEST_FTP
 | 
			
		||||
//#define TEST_HASH
 | 
			
		||||
//#define TEST_INFO_FUNCTIONS
 | 
			
		||||
//#define TEST_LIST
 | 
			
		||||
//#define TEST_LOCALE
 | 
			
		||||
//#define TEST_LOG
 | 
			
		||||
//#define TEST_LONGLONG
 | 
			
		||||
//#define TEST_MIME
 | 
			
		||||
//#define TEST_PATHLIST
 | 
			
		||||
//#define TEST_REGCONF
 | 
			
		||||
//#define TEST_REGISTRY
 | 
			
		||||
//#define TEST_SNGLINST
 | 
			
		||||
//#define TEST_SOCKETS
 | 
			
		||||
//#define TEST_STREAMS
 | 
			
		||||
#define TEST_STRINGS
 | 
			
		||||
#define TEST_THREADS
 | 
			
		||||
#define TEST_TIMER
 | 
			
		||||
//#define TEST_THREADS
 | 
			
		||||
//#define TEST_TIMER
 | 
			
		||||
//#define TEST_VCARD            -- don't enable this (VZ)
 | 
			
		||||
#define TEST_WCHAR
 | 
			
		||||
#define TEST_ZIP
 | 
			
		||||
#define TEST_ZLIB
 | 
			
		||||
//#define TEST_WCHAR
 | 
			
		||||
//#define TEST_ZIP
 | 
			
		||||
//#define TEST_ZLIB
 | 
			
		||||
 | 
			
		||||
#ifdef TEST_SNGLINST
 | 
			
		||||
    #include <wx/snglinst.h>
 | 
			
		||||
@@ -4547,6 +4547,44 @@ static void TestStringReplace()
 | 
			
		||||
    puts("");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void TestStringMatch()
 | 
			
		||||
{
 | 
			
		||||
    wxPuts(_T("*** Testing wxString::Matches() ***"));
 | 
			
		||||
 | 
			
		||||
    static const struct StringMatchTestData
 | 
			
		||||
    {
 | 
			
		||||
        const wxChar *text;
 | 
			
		||||
        const wxChar *wildcard;
 | 
			
		||||
        bool matches;
 | 
			
		||||
    } stringMatchTestData[] =
 | 
			
		||||
    {
 | 
			
		||||
        { _T("foobar"), _T("foo*"), 1 },
 | 
			
		||||
        { _T("foobar"), _T("*oo*"), 1 },
 | 
			
		||||
        { _T("foobar"), _T("*bar"), 1 },
 | 
			
		||||
        { _T("foobar"), _T("??????"), 1 },
 | 
			
		||||
        { _T("foobar"), _T("f??b*"), 1 },
 | 
			
		||||
        { _T("foobar"), _T("f?b*"), 0 },
 | 
			
		||||
        { _T("foobar"), _T("*goo*"), 0 },
 | 
			
		||||
        { _T("foobar"), _T("*foo"), 0 },
 | 
			
		||||
        { _T("foobarfoo"), _T("*foo"), 1 },
 | 
			
		||||
        { _T(""), _T("*"), 1 },
 | 
			
		||||
        { _T(""), _T("?"), 0 },
 | 
			
		||||
    };
 | 
			
		||||
 | 
			
		||||
    for ( size_t n = 0; n < WXSIZEOF(stringMatchTestData); n++ )
 | 
			
		||||
    {
 | 
			
		||||
        const StringMatchTestData& data = stringMatchTestData[n];
 | 
			
		||||
        bool matches = wxString(data.text).Matches(data.wildcard);
 | 
			
		||||
        wxPrintf(_T("'%s' %s '%s' (%s)\n"),
 | 
			
		||||
                 data.wildcard,
 | 
			
		||||
                 matches ? _T("matches") : _T("doesn't match"),
 | 
			
		||||
                 data.text,
 | 
			
		||||
                 matches == data.matches ? _T("ok") : _T("ERROR"));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    wxPuts(_T(""));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif // TEST_STRINGS
 | 
			
		||||
 | 
			
		||||
// ----------------------------------------------------------------------------
 | 
			
		||||
@@ -4632,16 +4670,14 @@ int main(int argc, char **argv)
 | 
			
		||||
    {
 | 
			
		||||
        TestPChar();
 | 
			
		||||
        TestString();
 | 
			
		||||
    }
 | 
			
		||||
        TestStringSub();
 | 
			
		||||
    if ( 0 )
 | 
			
		||||
    {
 | 
			
		||||
        TestStringConstruction();
 | 
			
		||||
        TestStringFormat();
 | 
			
		||||
        TestStringFind();
 | 
			
		||||
        TestStringTokenizer();
 | 
			
		||||
        TestStringReplace();
 | 
			
		||||
    }
 | 
			
		||||
    TestStringMatch();
 | 
			
		||||
#endif // TEST_STRINGS
 | 
			
		||||
 | 
			
		||||
#ifdef TEST_ARRAYS
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user