X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f48a115976827701bb7b4bab7333f7512de08ab2..f40f8e17226c2080dec017e2043fe59e2d21e15b:/src/common/config.cpp?ds=sidebyside diff --git a/src/common/config.cpp b/src/common/config.cpp index 6de614b83a..1ca75fa2cf 100644 --- a/src/common/config.cpp +++ b/src/common/config.cpp @@ -63,10 +63,8 @@ bool wxConfigBase::ms_bAutoCreate = true; wxConfigBase *wxAppTraitsBase::CreateConfig() { return new - #if defined(__WXMSW__) && wxUSE_CONFIG_NATIVE + #if defined(__WINDOWS__) && wxUSE_CONFIG_NATIVE wxRegConfig(wxTheApp->GetAppName(), wxTheApp->GetVendorName()); - #elif defined(__WXPALMOS__) && wxUSE_CONFIG_NATIVE - wxPrefConfig(wxTheApp->GetAppName()); #else // either we're under Unix or wish to use files even under Windows wxFileConfig(wxTheApp->GetAppName()); #endif @@ -221,7 +219,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; @@ -284,8 +290,9 @@ wxConfigPathChanger::wxConfigPathChanger(const wxConfigBase *pContainer, m_bChanged = false; 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 +324,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; } } @@ -385,7 +385,7 @@ enum Bracket Bracket_None, Bracket_Normal = ')', Bracket_Curly = '}', -#ifdef __WXMSW__ +#ifdef __WINDOWS__ Bracket_Windows = '%', // yeah, Windows people are a bit strange ;-) #endif Bracket_Max @@ -399,17 +399,17 @@ wxString wxExpandEnvVars(const wxString& str) size_t m; for ( size_t n = 0; n < str.length(); n++ ) { switch ( str[n].GetValue() ) { -#ifdef __WXMSW__ +#ifdef __WINDOWS__ case wxT('%'): -#endif //WINDOWS +#endif // __WINDOWS__ case wxT('$'): { Bracket bracket; - #ifdef __WXMSW__ + #ifdef __WINDOWS__ if ( str[n] == wxT('%') ) bracket = Bracket_Windows; else - #endif //WINDOWS + #endif // __WINDOWS__ if ( n == str.length() - 1 ) { bracket = Bracket_None; } @@ -453,7 +453,7 @@ wxString wxExpandEnvVars(const wxString& str) #endif { // variable doesn't exist => don't change anything - #ifdef __WXMSW__ + #ifdef __WINDOWS__ if ( bracket != Bracket_Windows ) #endif if ( bracket != Bracket_None ) @@ -470,10 +470,10 @@ wxString wxExpandEnvVars(const wxString& str) // // under Unix, OTOH, this warning could be useful for the user to // understand why isn't the variable expanded as intended - #ifndef __WXMSW__ + #ifndef __WINDOWS__ wxLogWarning(_("Environment variables expansion failed: missing '%c' at position %u in '%s'."), (char)bracket, (unsigned int) (m + 1), str.c_str()); - #endif // __WXMSW__ + #endif // __WINDOWS__ } else { // skip closing bracket unless the variables wasn't expanded