Added a (recursive) ordering, so we have a canonical output that we can compare.

This commit is contained in:
beder
2008-07-06 00:06:36 +00:00
parent 3cad5a2ed0
commit 1acc0e4982
15 changed files with 217 additions and 51 deletions

View File

@@ -151,4 +151,26 @@ namespace YAML
if(m_data.empty())
out << std::endl;
}
int Sequence::Compare(Content *pContent)
{
return -pContent->Compare(this);
}
int Sequence::Compare(Sequence *pSeq)
{
unsigned n = m_data.size(), m = pSeq->m_data.size();
if(n < m)
return -1;
else if(n > m)
return 1;
for(unsigned i=0;i<n;i++) {
int cmp = m_data[i]->Compare(*pSeq->m_data[i]);
if(cmp != 0)
return cmp;
}
return 0;
}
}