]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed bug with adding new entries to a root group with subgroups but without any...
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 17 Oct 2004 00:05:21 +0000 (00:05 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 17 Oct 2004 00:05:21 +0000 (00:05 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29928 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/fileconf.cpp

index 7fcaadeb5d845c927d9114585c8963e34bfbcaa2..afb7f15282b7b90641baa3be3ef27efc2aa5be74 100644 (file)
@@ -1836,8 +1836,20 @@ void wxFileConfigEntry::SetValue(const wxString& strValue, bool bUser)
         }
         else // this entry didn't exist in the local file
         {
-            // add a new line to the file
+            // add a new line to the file: note the hack for the root group
+            // which is special in that it doesn't have its own group line
+            // (something like "[/]") and so the line we get for it may be not
+            // its line at all if it doesn't have any entries
+            //
+            // this is definitely not the right place to fix it but changing
+            // the root group to have NULL m_pLine will probably break too
+            // much stuff elsewhere so I don't dare to do it...
             wxFileConfigLineList *line = Group()->GetLastEntryLine();
+            if ( !Group()->Parent() && line == Group()->GetGroupLine() )
+            {
+                // prepend the first root group entry to the head of the list
+                line = NULL;
+            }
             m_pLine = Group()->Config()->LineListInsert(strLine, line);
 
             Group()->SetLastEntry(this);