X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/004c69ab7b4d4de3620bb3076e42742375b2cb19..69418a8e475a23318b21ef06bc9f3c69e1ddbb58:/src/common/fileconf.cpp diff --git a/src/common/fileconf.cpp b/src/common/fileconf.cpp index af6e490dca..b41119bb0a 100644 --- a/src/common/fileconf.cpp +++ b/src/common/fileconf.cpp @@ -226,18 +226,21 @@ wxFileConfig::wxFileConfig(const wxString& appName, const wxString& vendorName, SetStyle(GetStyle() | wxCONFIG_USE_GLOBAL_FILE); // if the path is not absolute, prepend the standard directory to it - if ( !m_strLocalFile.IsEmpty() && !wxIsAbsolutePath(m_strLocalFile) ) - { - wxString strLocal = m_strLocalFile; - m_strLocalFile = GetLocalDir(); - m_strLocalFile << strLocal; - } - - if ( !m_strGlobalFile.IsEmpty() && !wxIsAbsolutePath(m_strGlobalFile) ) - { - wxString strGlobal = m_strGlobalFile; - m_strGlobalFile = GetGlobalDir(); - m_strGlobalFile << strGlobal; + // UNLESS wxCONFIG_USE_RELATIVE_PATH style is set + if ( !(style & wxCONFIG_USE_RELATIVE_PATH) ){ + if ( !m_strLocalFile.IsEmpty() && !wxIsAbsolutePath(m_strLocalFile) ) + { + wxString strLocal = m_strLocalFile; + m_strLocalFile = GetLocalDir(); + m_strLocalFile << strLocal; + } + + if ( !m_strGlobalFile.IsEmpty() && !wxIsAbsolutePath(m_strGlobalFile) ) + { + wxString strGlobal = m_strGlobalFile; + m_strGlobalFile = GetGlobalDir(); + m_strGlobalFile << strGlobal; + } } Init(); @@ -338,7 +341,7 @@ void wxFileConfig::Parse(wxTextFile& file, bool bLocal) } else { // a key const wxChar *pEnd = pStart; - while ( !wxIsspace(*pEnd) ) { + while ( *pEnd != _T('=') && !wxIsspace(*pEnd) ) { if ( *pEnd == _T('\\') ) { // next character may be space or not - still take it because it's // quoted @@ -610,8 +613,6 @@ bool wxFileConfig::Write(const wxString& key, const wxString& szValue) return FALSE; } - strName = FilterOutEntryName(strName); - ConfigEntry *pEntry = m_pCurrentGroup->FindEntry(strName); if ( pEntry == NULL ) pEntry = m_pCurrentGroup->AddEntry(strName); @@ -906,7 +907,10 @@ LineList *ConfigGroup::GetGroupLine() // this group wasn't present in local config file, add it now if ( pParent != NULL ) { wxString strFullName; - strFullName << _T("[") << (GetFullName().c_str() + 1) << _T("]"); // +1: no '/' + strFullName << _T("[") + // +1: no '/' + << FilterOutEntryName(GetFullName().c_str() + 1) + << _T("]"); m_pLine = m_pConfig->LineListInsert(strFullName, pParent->GetLastGroupLine()); pParent->SetLastGroup(this); // we're surely after all the others @@ -1273,7 +1277,7 @@ void ConfigEntry::SetValue(const wxString& strValue, bool bUser) if ( bUser ) { wxString strVal = FilterOutValue(strValue); wxString strLine; - strLine << m_strName << _T(" = ") << strVal; + strLine << FilterOutEntryName(m_strName) << _T('=') << strVal; if ( m_pLine != NULL ) { // entry was read from the local config file, just modify the line