X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/6dda7a7521d641f9e45d9bd9c7225ab5490a9e7d..c01920998145b5248372a124fdcd53f0ba1582d5:/src/common/fileconf.cpp diff --git a/src/common/fileconf.cpp b/src/common/fileconf.cpp index beaaab32e0..afb7f15282 100644 --- a/src/common/fileconf.cpp +++ b/src/common/fileconf.cpp @@ -49,6 +49,7 @@ #if defined(__WXMAC__) #include "wx/mac/private.h" // includes mac headers + #include "wx/filename.h" // for MacSetTypeAndCreator #endif #if defined(__WXMSW__) @@ -1835,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);