Fix wxRmdir() with non-ASCII paths
Don't apply at best unnecessary, and actually harmful, as it uses a wrong conversion, fn_str() when calling wxRmDir() which takes wxString. Update unit tests to check that wxRmdir() now works with non-ASCII filenames too. Closes #17644.
This commit is contained in:
@@ -84,6 +84,7 @@ All:
|
|||||||
wxEvtHandler and/or wxTrackable in C++11 code (Raul Tambre, mmarsan).
|
wxEvtHandler and/or wxTrackable in C++11 code (Raul Tambre, mmarsan).
|
||||||
- Update bundled expat to 2.2.0 (Catalin Raceanu).
|
- Update bundled expat to 2.2.0 (Catalin Raceanu).
|
||||||
- Add wxCMD_LINE_HIDDEN wxCmdLineParser flag (Lauri Nurmi).
|
- Add wxCMD_LINE_HIDDEN wxCmdLineParser flag (Lauri Nurmi).
|
||||||
|
- Fix wxRmdir() with non-ASCII paths (trivia21).
|
||||||
- Don't crash in wxFFile::Eof() or Error() on closed file (jprotopopov).
|
- Don't crash in wxFFile::Eof() or Error() on closed file (jprotopopov).
|
||||||
|
|
||||||
All (GUI):
|
All (GUI):
|
||||||
|
@@ -234,7 +234,7 @@ wxDebugReport::~wxDebugReport()
|
|||||||
|
|
||||||
if ( !m_dir.empty() )
|
if ( !m_dir.empty() )
|
||||||
{
|
{
|
||||||
if ( wxRmDir(m_dir.fn_str()) != 0 )
|
if ( wxRmDir(m_dir) != 0 )
|
||||||
{
|
{
|
||||||
wxLogSysError(_("Failed to clean up debug report directory \"%s\""),
|
wxLogSysError(_("Failed to clean up debug report directory \"%s\""),
|
||||||
m_dir.c_str());
|
m_dir.c_str());
|
||||||
|
@@ -1192,7 +1192,7 @@ bool wxRmdir(const wxString& dir, int WXUNUSED(flags))
|
|||||||
#if defined(__VMS__)
|
#if defined(__VMS__)
|
||||||
return false; //to be changed since rmdir exists in VMS7.x
|
return false; //to be changed since rmdir exists in VMS7.x
|
||||||
#else
|
#else
|
||||||
if ( wxRmDir(dir.fn_str()) != 0 )
|
if ( wxRmDir(dir) != 0 )
|
||||||
{
|
{
|
||||||
wxLogSysError(_("Directory '%s' couldn't be deleted"), dir);
|
wxLogSysError(_("Directory '%s' couldn't be deleted"), dir);
|
||||||
return false;
|
return false;
|
||||||
|
@@ -524,7 +524,7 @@ void FileFunctionsTestCase::PathOnly()
|
|||||||
// Rmdir fails on them on Linux. See ticket #17644.
|
// Rmdir fails on them on Linux. See ticket #17644.
|
||||||
void FileFunctionsTestCase::Mkdir()
|
void FileFunctionsTestCase::Mkdir()
|
||||||
{
|
{
|
||||||
wxString dirname = wxT("__wxMkdir_test_dir");
|
wxString dirname = wxString::FromUTF8("__wxMkdir_test_dir_with_\xc3\xb6");
|
||||||
const std::string msg = wxString::Format("Dir: %s", dirname).ToStdString();
|
const std::string msg = wxString::Format("Dir: %s", dirname).ToStdString();
|
||||||
CPPUNIT_ASSERT_MESSAGE( msg, wxMkdir(dirname) );
|
CPPUNIT_ASSERT_MESSAGE( msg, wxMkdir(dirname) );
|
||||||
CPPUNIT_ASSERT_MESSAGE( msg, wxDirExists(dirname) );
|
CPPUNIT_ASSERT_MESSAGE( msg, wxDirExists(dirname) );
|
||||||
@@ -533,7 +533,7 @@ void FileFunctionsTestCase::Mkdir()
|
|||||||
|
|
||||||
void FileFunctionsTestCase::Rmdir()
|
void FileFunctionsTestCase::Rmdir()
|
||||||
{
|
{
|
||||||
wxString dirname = wxT("__wxRmdir_test_dir");
|
wxString dirname = wxString::FromUTF8("__wxRmdir_test_dir_with_\xc3\xb6");
|
||||||
const std::string msg = wxString::Format("Dir: %s", dirname).ToStdString();
|
const std::string msg = wxString::Format("Dir: %s", dirname).ToStdString();
|
||||||
|
|
||||||
CPPUNIT_ASSERT_MESSAGE( msg, wxMkdir(dirname) );
|
CPPUNIT_ASSERT_MESSAGE( msg, wxMkdir(dirname) );
|
||||||
|
Reference in New Issue
Block a user