Don't remove the last slash from "/" directory name under Unix.
This was totally wrong as it returned empty string as (invalid) directory name. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@71353 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
		@@ -561,6 +561,10 @@ Univ:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- Fix regression with read-only wxComboBox appearance (Jason Erb).
 | 
					- Fix regression with read-only wxComboBox appearance (Jason Erb).
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Unix:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					- Fix bug with wxDir("/").GetName() returning empty string.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
2.9.3: (released 2011-12-14)
 | 
					2.9.3: (released 2011-12-14)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -235,10 +235,13 @@ wxString wxDir::GetName() const
 | 
				
			|||||||
    if ( m_data )
 | 
					    if ( m_data )
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        name = M_DIR->GetName();
 | 
					        name = M_DIR->GetName();
 | 
				
			||||||
        if ( !name.empty() && (name.Last() == wxT('/')) )
 | 
					
 | 
				
			||||||
 | 
					        // Notice that we need to check for length > 1 as we shouldn't remove
 | 
				
			||||||
 | 
					        // the last slash from the root directory!
 | 
				
			||||||
 | 
					        if ( name.length() > 1 && (name.Last() == wxT('/')) )
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            // chop off the last (back)slash
 | 
					            // chop off the last slash
 | 
				
			||||||
            name.Truncate(name.length() - 1);
 | 
					            name.RemoveLast();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -41,11 +41,13 @@ private:
 | 
				
			|||||||
        CPPUNIT_TEST( DirExists );
 | 
					        CPPUNIT_TEST( DirExists );
 | 
				
			||||||
        CPPUNIT_TEST( Traverse );
 | 
					        CPPUNIT_TEST( Traverse );
 | 
				
			||||||
        CPPUNIT_TEST( Enum );
 | 
					        CPPUNIT_TEST( Enum );
 | 
				
			||||||
 | 
					        CPPUNIT_TEST( GetName );
 | 
				
			||||||
    CPPUNIT_TEST_SUITE_END();
 | 
					    CPPUNIT_TEST_SUITE_END();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void DirExists();
 | 
					    void DirExists();
 | 
				
			||||||
    void Traverse();
 | 
					    void Traverse();
 | 
				
			||||||
    void Enum();
 | 
					    void Enum();
 | 
				
			||||||
 | 
					    void GetName();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    void CreateTempFile(const wxString& path);
 | 
					    void CreateTempFile(const wxString& path);
 | 
				
			||||||
    wxArrayString DirEnumHelper(wxDir& dir,
 | 
					    wxArrayString DirEnumHelper(wxDir& dir,
 | 
				
			||||||
@@ -227,3 +229,15 @@ void DirTestCase::DirExists()
 | 
				
			|||||||
    CPPUNIT_ASSERT( wxDir::Exists(wxGetCwd()) );
 | 
					    CPPUNIT_ASSERT( wxDir::Exists(wxGetCwd()) );
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void DirTestCase::GetName()
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    wxDir d;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    CPPUNIT_ASSERT( d.Open(".") );
 | 
				
			||||||
 | 
					    CPPUNIT_ASSERT( d.GetName().Last() != wxFILE_SEP_PATH );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __UNIX__
 | 
				
			||||||
 | 
					    CPPUNIT_ASSERT( d.Open("/") );
 | 
				
			||||||
 | 
					    CPPUNIT_ASSERT_EQUAL( "/", d.GetName() );
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user