X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..a967ef9dcefdb23a73ab389b5749fe1e17bedc5b:/src/msw/regconf.cpp diff --git a/src/msw/regconf.cpp b/src/msw/regconf.cpp index 404fb0d2d2..9c77482ec9 100644 --- a/src/msw/regconf.cpp +++ b/src/msw/regconf.cpp @@ -134,6 +134,7 @@ wxRegConfig::wxRegConfig(const wxString& appName, const wxString& vendorName, { wxLogNull nolog; m_keyGlobalRoot.Open(); + m_keyGlobal.Open(); } } @@ -217,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 @@ -246,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