Index: src/libchcore/ConfigNodeContainer.cpp =================================================================== diff -u -N -r39864b5fbb931e3b257afbd60cfb7f36f71d146d -r95a466ca0a4f95851dcacf2b80e2084e0168b7e4 --- src/libchcore/ConfigNodeContainer.cpp (.../ConfigNodeContainer.cpp) (revision 39864b5fbb931e3b257afbd60cfb7f36f71d146d) +++ src/libchcore/ConfigNodeContainer.cpp (.../ConfigNodeContainer.cpp) (revision 95a466ca0a4f95851dcacf2b80e2084e0168b7e4) @@ -339,7 +339,7 @@ { if(iter->m_strNodeName.Get().StartsWith(strSearch.c_str())) { - setExistingNames.insert(std::make_pair(iter->m_strNodeName.Get(), iter->m_iOrder)); + setExistingNames.insert(std::make_pair(iter->m_strNodeName.Get(), iter->m_iOrder.Get())); } } @@ -349,7 +349,7 @@ TString strNodeName = pszNode; strNodeName += _T(".") + iter->m_strNodeName; - std::set::iterator iterExisting = setExistingNames.find(std::make_pair(strNodeName, iter->m_iOrder)); + std::set::iterator iterExisting = setExistingNames.find(std::make_pair(strNodeName, iter->m_iOrder.Get())); if(iterExisting != setExistingNames.end()) { // node already exists - modify instead of delete+add @@ -583,7 +583,19 @@ for(NodeContainer::const_iterator iter = m_mic.begin(); iter != m_mic.end(); ++iter) { unsigned long long ullID = iter->m_oidObjectID; - _sntprintf_s(szBuffer, stBufferSize, _TRUNCATE, _T("Node (oid %I64u): %s.%ld = %s\n"), ullID, iter->m_strNodeName.Get().c_str(), iter->m_iOrder.Get(), iter->m_strValue.Get().c_str()); + int iNodeNameModified = iter->m_strNodeName.IsModified() ? 1 : 0; + int iNodeNameModified2 = iter->m_setModifications[ConfigNode::eMod_NodeName]; + int iOrderModified = iter->m_iOrder.IsModified() ? 1 : 0; + int iOrderModified2 = iter->m_setModifications[ConfigNode::eMod_Order]; + int iValueModified = iter->m_strValue.IsModified() ? 1 : 0; + int iValueModified2 = iter->m_setModifications[ConfigNode::eMod_Value]; + bool bAdded = iter->m_setModifications[ConfigNode::eMod_Added]; + + _sntprintf_s(szBuffer, stBufferSize, _TRUNCATE, _T("Node (oid %I64u): %s(%ld/%ld).%ld(%ld/%ld) = %s(%ld/%ld)%s\n"), ullID, + iter->m_strNodeName.Get().c_str(), iNodeNameModified, iNodeNameModified2, + iter->m_iOrder.Get(), iOrderModified, iOrderModified2, + iter->m_strValue.Get().c_str(), iValueModified, iValueModified2, + bAdded ? L" [added]" : L""); OutputDebugString(szBuffer); } }