X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7e22c2bd02fcd8f6759dfbbf626302dd4a51822a..538f4dd82b7d37293a45516da0036b453f631f9f:/src/common/config.cpp diff --git a/src/common/config.cpp b/src/common/config.cpp index 81ff589b68..12c8213002 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -221,7 +221,15 @@ bool wxConfigBase::DoReadBool(const wxString& key, bool* val) const if ( !DoReadLong(key, &l) ) return false; - wxASSERT_MSG( l == 0 || l == 1, wxT("bad bool value in wxConfig::DoReadInt") ); + if ( l != 0 && l != 1 ) + { + // Don't assert here as this could happen in the result of user editing + // the file directly and this not indicate a bug in the program but + // still complain that something is wrong. + wxLogWarning(_("Invalid value %ld for a boolean key \"%s\" in " + "config file."), + l, key); + } *val = l != 0; @@ -282,10 +290,11 @@ wxConfigPathChanger::wxConfigPathChanger(const wxConfigBase *pContainer, const wxString& strEntry) { m_bChanged = false; - m_pContainer = (wxConfigBase *)pContainer; + m_pContainer = const_cast(pContainer); - // the path is everything which precedes the last slash - wxString strPath = strEntry.BeforeLast(wxCONFIG_PATH_SEPARATOR); + // the path is everything which precedes the last slash and the name is + // everything after it -- and this works correctly if there is no slash too + wxString strPath = strEntry.BeforeLast(wxCONFIG_PATH_SEPARATOR, &m_strName); // except in the special case of "/keyname" when there is nothing before "/" if ( strPath.empty() && @@ -317,13 +326,6 @@ wxConfigPathChanger::wxConfigPathChanger(const wxConfigBase *pContainer, m_strOldPath += wxCONFIG_PATH_SEPARATOR; m_pContainer->SetPath(strPath); } - - // in any case, use the just the name, not full path - m_strName = strEntry.AfterLast(wxCONFIG_PATH_SEPARATOR); - } - else { - // it's a name only, without path - nothing to do - m_strName = strEntry; } }