From: Vadim Zeitlin Date: Sat, 16 Dec 2006 23:11:48 +0000 (+0000) Subject: for for initializing wxFileName with empty string returning true from IsOk() and... X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/698581160d470eb3e3f2ff67aebb04668642dcb9 for for initializing wxFileName with empty string returning true from IsOk() and tests for the correct behaviour (patch 1617156) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@43992 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/common/filename.cpp b/src/common/filename.cpp index 234ac80138..99f24f2e16 100644 --- a/src/common/filename.cpp +++ b/src/common/filename.cpp @@ -427,7 +427,7 @@ void wxFileName::Assign(const wxString& fullpathOrig, // always recognize fullpath as directory, even if it doesn't end with a // slash wxString fullpath = fullpathOrig; - if ( !wxEndsWithPathSeparator(fullpath) ) + if ( !fullpath.empty() && !wxEndsWithPathSeparator(fullpath) ) { fullpath += GetPathSeparator(format); } diff --git a/tests/filename/filenametest.cpp b/tests/filename/filenametest.cpp index 992a05a8bf..813079ca8e 100644 --- a/tests/filename/filenametest.cpp +++ b/tests/filename/filenametest.cpp @@ -49,6 +49,11 @@ static struct FileNameInfo wxPathFormat format; } filenames[] = { + // the empty string + { _T(""), _(""), _(""), _(""), _(""), false, wxPATH_UNIX }, + { _T(""), _(""), _(""), _(""), _(""), false, wxPATH_DOS }, + { _T(""), _(""), _(""), _(""), _(""), false, wxPATH_VMS }, + // Unix file names { _T("/usr/bin/ls"), _T(""), _T("/usr/bin"), _T("ls"), _T(""), true, wxPATH_UNIX }, { _T("/usr/bin/"), _T(""), _T("/usr/bin"), _T(""), _T(""), true, wxPATH_UNIX }, @@ -167,6 +172,24 @@ void FileNameTestCase::TestConstruction() fni.format), fn ); } } + + wxFileName fn; + + // empty strings + fn.AssignDir(wxEmptyString); + CPPUNIT_ASSERT( !fn.IsOk() ); + + fn.Assign(wxEmptyString); + CPPUNIT_ASSERT( !fn.IsOk() ); + + fn.Assign(wxEmptyString, wxEmptyString); + CPPUNIT_ASSERT( !fn.IsOk() ); + + fn.Assign(wxEmptyString, wxEmptyString, wxEmptyString); + CPPUNIT_ASSERT( !fn.IsOk() ); + + fn.Assign(wxEmptyString, wxEmptyString, wxEmptyString, wxEmptyString); + CPPUNIT_ASSERT( !fn.IsOk() ); } void FileNameTestCase::TestComparison()