fix bug with not updating the last line correctly when a group was deleted and recreated (bug 1685312); added a unit test for this
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@45557 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -142,6 +142,7 @@ wxX11:
|
|||||||
All (Unix):
|
All (Unix):
|
||||||
|
|
||||||
- Handle socket shutdown by the peer correctly in wxSocket (Tim Kosse)
|
- Handle socket shutdown by the peer correctly in wxSocket (Tim Kosse)
|
||||||
|
- Fix bug in wxFileConfig when recreating a group (Steven Van Ingelgem)
|
||||||
|
|
||||||
wxMSW:
|
wxMSW:
|
||||||
|
|
||||||
|
@@ -1730,7 +1730,7 @@ bool wxFileConfigGroup::DeleteSubgroup(wxFileConfigGroup *pGroup)
|
|||||||
|
|
||||||
m_pLastGroup = NULL;
|
m_pLastGroup = NULL;
|
||||||
for ( wxFileConfigLineList *pl = pLine->Prev();
|
for ( wxFileConfigLineList *pl = pLine->Prev();
|
||||||
pl && pl != m_pLine && !m_pLastGroup;
|
pl && !m_pLastGroup;
|
||||||
pl = pl->Prev() )
|
pl = pl->Prev() )
|
||||||
{
|
{
|
||||||
// does this line belong to our subgroup?
|
// does this line belong to our subgroup?
|
||||||
@@ -1744,6 +1744,9 @@ bool wxFileConfigGroup::DeleteSubgroup(wxFileConfigGroup *pGroup)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ( pl == m_pLine )
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -76,6 +76,7 @@ private:
|
|||||||
CPPUNIT_TEST( CreateEntriesAndSubgroup );
|
CPPUNIT_TEST( CreateEntriesAndSubgroup );
|
||||||
CPPUNIT_TEST( CreateSubgroupAndEntries );
|
CPPUNIT_TEST( CreateSubgroupAndEntries );
|
||||||
CPPUNIT_TEST( DeleteLastGroup );
|
CPPUNIT_TEST( DeleteLastGroup );
|
||||||
|
CPPUNIT_TEST( DeleteAndRecreateGroup );
|
||||||
CPPUNIT_TEST_SUITE_END();
|
CPPUNIT_TEST_SUITE_END();
|
||||||
|
|
||||||
void Path();
|
void Path();
|
||||||
@@ -93,6 +94,7 @@ private:
|
|||||||
void CreateEntriesAndSubgroup();
|
void CreateEntriesAndSubgroup();
|
||||||
void CreateSubgroupAndEntries();
|
void CreateSubgroupAndEntries();
|
||||||
void DeleteLastGroup();
|
void DeleteLastGroup();
|
||||||
|
void DeleteAndRecreateGroup();
|
||||||
|
|
||||||
static wxString ChangePath(wxFileConfig& fc, const wxChar *path)
|
static wxString ChangePath(wxFileConfig& fc, const wxChar *path)
|
||||||
{
|
{
|
||||||
@@ -512,5 +514,29 @@ void FileConfigTestCase::DeleteLastGroup()
|
|||||||
(void) ::wxRemoveFile(wxFileConfig::GetLocalFileName(_T("deleteconftest")));
|
(void) ::wxRemoveFile(wxFileConfig::GetLocalFileName(_T("deleteconftest")));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FileConfigTestCase::DeleteAndRecreateGroup()
|
||||||
|
{
|
||||||
|
static const wxChar *confInitial =
|
||||||
|
_T("[First]\n")
|
||||||
|
_T("Value1=Foo\n")
|
||||||
|
_T("[Second]\n")
|
||||||
|
_T("Value2=Bar\n");
|
||||||
|
|
||||||
|
wxStringInputStream sis(confInitial);
|
||||||
|
wxFileConfig fc(sis);
|
||||||
|
|
||||||
|
fc.DeleteGroup(_T("Second"));
|
||||||
|
wxVERIFY_FILECONFIG( _T("[First]\n")
|
||||||
|
_T("Value1=Foo\n"),
|
||||||
|
fc );
|
||||||
|
|
||||||
|
fc.Write(_T("Second/Value2"), _T("New"));
|
||||||
|
wxVERIFY_FILECONFIG( _T("[First]\n")
|
||||||
|
_T("Value1=Foo\n")
|
||||||
|
_T("[Second]\n")
|
||||||
|
_T("Value2=New\n"),
|
||||||
|
fc );
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_FILECONFIG
|
#endif // wxUSE_FILECONFIG
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user