]> git.saurik.com Git - wxWidgets.git/commitdiff
fix bug with entries present in both global and local files (patch 773360)
authorVadim Zeitlin <vadim@wxwidgets.org>
Sat, 16 Aug 2003 12:07:03 +0000 (12:07 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sat, 16 Aug 2003 12:07:03 +0000 (12:07 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22927 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/fileconf.cpp

index 15d5237f9bc1e09d1407ebdda5f82cd533ee1702..9899d67a9dcf89292da137ca6e2afa2245aeaff4 100644 (file)
@@ -623,7 +623,11 @@ void wxFileConfig::Parse(wxTextBuffer& buffer, bool bLocal)
       SetPath(strGroup);
 
       if ( bLocal )
+      {
+        if ( m_pCurrentGroup->Parent() )
+          m_pCurrentGroup->Parent()->SetLastGroup(m_pCurrentGroup);
         m_pCurrentGroup->SetLine(m_linesTail);
+      }
 
       // check that there is nothing except comments left on this line
       bool bCont = TRUE;
@@ -678,19 +682,6 @@ void wxFileConfig::Parse(wxTextBuffer& buffer, bool bLocal)
         if ( pEntry == NULL ) {
           // new entry
           pEntry = m_pCurrentGroup->AddEntry(strKey, n);
-
-          // <JACS>
-          // Take the opportunity to set some pointers now
-          // that we know there are items in this group.
-          // Otherwise, items added to a newly read file
-          // can be put in the wrong place.
-          m_pCurrentGroup->SetLastEntry(pEntry);
-          if (m_pCurrentGroup->Parent())
-              m_pCurrentGroup->Parent()->SetLastGroup(m_pCurrentGroup);
-          // </JACS>
-
-          if ( bLocal )
-            pEntry->SetLine(m_linesTail);
         }
         else {
           if ( bLocal && pEntry->IsImmutable() ) {
@@ -708,11 +699,12 @@ void wxFileConfig::Parse(wxTextBuffer& buffer, bool bLocal)
             wxLogWarning(_("file '%s', line %d: key '%s' was first found at line %d."),
                          buffer.GetName(), n + 1, strKey.c_str(), pEntry->Line());
 
-            if ( bLocal )
-              pEntry->SetLine(m_linesTail);
           }
         }
 
+        if ( bLocal )
+          pEntry->SetLine(m_linesTail);
+
         // skip whitespace
         while ( wxIsspace(*pEnd) )
           pEnd++;
@@ -1844,8 +1836,6 @@ 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
-            wxASSERT( m_nLine == wxNOT_FOUND );   // consistency check
-
             wxFileConfigLineList *line = Group()->GetLastEntryLine();
             m_pLine = Group()->Config()->LineListInsert(strLine, line);