X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..d3211838bf578eb8ada5a608b66626a6bde6846a:/src/common/config.cpp?ds=sidebyside diff --git a/src/common/config.cpp b/src/common/config.cpp index feccd99ab0..1b614016b2 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -132,10 +132,9 @@ bool wxConfigBase::Read(const wxString& key, long *pl, long defVal) const bool wxConfigBase::Read(const wxString& key, double* val) const { wxString str; - if (Read(key, & str)) + if ( Read(key, &str) ) { - *val = wxAtof(str); - return TRUE; + return str.ToDouble(val); } return FALSE; @@ -190,28 +189,29 @@ bool wxConfigBase::Read(const wxString& key, int *pi, int defVal) const { long l; bool ret = Read(key, &l, (long) defVal); - *pi = (int) l; + if (ret) + *pi = (int) l; return ret; } bool wxConfigBase::Write(const wxString& key, double val) { wxString str; - str.Printf(wxT("%f"), val); + str.Printf(wxT("%g"), val); return Write(key, str); } bool wxConfigBase::Write(const wxString& key, bool value) { - long l = (value ? 1 : 0); - return Write(key, l); + return Write(key, value ? 1l : 0l); } -bool wxConfigBase::Write( const wxString &key, const wxChar *text ) +bool wxConfigBase::Write(const wxString& key, const wxChar *value) { - wxString str( text ) ; - return Write( key, str ) ; + // explicit cast needed, otherwise value would have been converted to bool + return Write(key, wxString(value)); } + wxString wxConfigBase::ExpandEnvVars(const wxString& str) const { wxString tmp; // Required for BC++ @@ -246,7 +246,9 @@ wxConfigPathChanger::wxConfigPathChanger(const wxConfigBase *pContainer, m_bChanged = TRUE; m_strName = strEntry.AfterLast(wxCONFIG_PATH_SEPARATOR); m_strOldPath = m_pContainer->GetPath(); - m_strOldPath += wxCONFIG_PATH_SEPARATOR; + if ( m_strOldPath.Len() == 0 || + m_strOldPath.Last() != wxCONFIG_PATH_SEPARATOR ) + m_strOldPath += wxCONFIG_PATH_SEPARATOR; m_pContainer->SetPath(strPath); } else {