X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b568d04ffa191f9e3b643ca33526094eca0ba304..c4955899eb1b7d6abc198cbb8e88c5ac17449339:/src/msw/regconf.cpp diff --git a/src/msw/regconf.cpp b/src/msw/regconf.cpp index e62511ca68..9c77482ec9 100644 --- a/src/msw/regconf.cpp +++ b/src/msw/regconf.cpp @@ -27,6 +27,9 @@ #include "wx/event.h" #include "wx/app.h" #include "wx/log.h" + +#if wxUSE_CONFIG + #include "wx/config.h" #ifndef __WIN16__ @@ -131,6 +134,7 @@ wxRegConfig::wxRegConfig(const wxString& appName, const wxString& vendorName, { wxLogNull nolog; m_keyGlobalRoot.Open(); + m_keyGlobal.Open(); } } @@ -214,13 +218,15 @@ bool wxRegConfig::GetNextGroup(wxString& str, long& lIndex) const // are we already enumerating local entries? if ( m_keyGlobal.IsOpened() && !IS_LOCAL_INDEX(lIndex) ) { // try to find a global entry which doesn't appear locally - do { - if ( !m_keyGlobal.GetNextKey(str, lIndex) ) { - // no more global entries - lIndex |= LOCAL_MASK; - break; + while ( m_keyGlobal.GetNextKey(str, lIndex) ) { + if ( !m_keyLocal.HasSubKey(str) ) { + // ok, found one - return it + return TRUE; } - } while( m_keyLocal.HasSubKey(str) ); + } + + // no more global entries + lIndex |= LOCAL_MASK; } // much easier with local entries: get the next one we find @@ -243,13 +249,15 @@ bool wxRegConfig::GetNextEntry(wxString& str, long& lIndex) const // are we already enumerating local entries? if ( m_keyGlobal.IsOpened() && !IS_LOCAL_INDEX(lIndex) ) { // try to find a global entry which doesn't appear locally - do { - if ( !m_keyGlobal.GetNextValue(str, lIndex) ) { - // no more global entries - lIndex |= LOCAL_MASK; - break; + while ( m_keyGlobal.GetNextValue(str, lIndex) ) { + if ( !m_keyLocal.HasValue(str) ) { + // ok, found one - return it + return TRUE; } - } while( m_keyLocal.HasValue(str) ); + } + + // no more global entries + lIndex |= LOCAL_MASK; } // much easier with local entries: get the next one we find @@ -577,3 +585,5 @@ bool wxRegConfig::DeleteAll() #endif // __WIN16__ +#endif + // wxUSE_CONFIG