]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fileconf.cpp
Hopefully fixed library names generated by wx-config for OS/2's PM port.
[wxWidgets.git] / src / common / fileconf.cpp
index 2cfdd601b57b6506b1b3757ea6ea5a7c4dff91e5..2944b099951415d6c73e5ab3d4f6dee9def07dfd 100644 (file)
@@ -495,7 +495,7 @@ wxFileConfig::wxFileConfig(wxInputStream &inStream, wxMBConv& conv)
         char buf[1024];
         do
         {
-            inStream.Read(buf, WXSIZEOF(buf));
+            inStream.Read(buf, WXSIZEOF(buf)-1);  // leave room for the NULL
 
             const wxStreamError err = inStream.GetLastError();
 
@@ -1098,12 +1098,13 @@ bool wxFileConfig::DeleteEntry(const wxString& key, bool bGroupIfEmptyAlso)
   if ( !m_pCurrentGroup->DeleteEntry(path.Name()) )
     return false;
 
+  SetDirty();
+
   if ( bGroupIfEmptyAlso && m_pCurrentGroup->IsEmpty() ) {
     if ( m_pCurrentGroup != m_pRootGroup ) {
       wxFileConfigGroup *pGroup = m_pCurrentGroup;
       SetPath(wxT(".."));  // changes m_pCurrentGroup!
-      if ( m_pCurrentGroup->DeleteSubgroupByName(pGroup->Name()) )
-          SetDirty();
+      m_pCurrentGroup->DeleteSubgroupByName(pGroup->Name());
     }
     //else: never delete the root group
   }
@@ -1851,20 +1852,11 @@ 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: 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...
+            // add a new line to the file: note that line returned by
+            // GetLastEntryLine() may be NULL if we're in the root group and it
+            // doesn't have any entries yet, but this is ok as passing NULL
+            // line to LineListInsert() means to prepend new line to the list
             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);