mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-26 10:32:56 +01:00
Avoid endless loop when indent is set to -1, cleanup code
This commit is contained in:
@@ -61,38 +61,29 @@ Element::Ptr Array::get(int pos) const
|
|||||||
std::string Array::toString(int indent) const
|
std::string Array::toString(int indent) const
|
||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
|
||||||
oss << "[";
|
oss << "[";
|
||||||
if ( indent > 0 )
|
|
||||||
{
|
if ( indent > 0 ) oss << std::endl;
|
||||||
oss << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
|
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
|
||||||
{
|
{
|
||||||
if ( it != _elements.begin() )
|
if ( it != _elements.begin() )
|
||||||
{
|
{
|
||||||
oss << ",";
|
oss << ",";
|
||||||
if ( indent > 0 )
|
if ( indent > 0 ) oss << std::endl;
|
||||||
{
|
|
||||||
oss << std::endl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i = 0; i < indent; ++i)
|
for(int i = 0; i < indent; ++i) oss << ' ';
|
||||||
{
|
|
||||||
oss << ' ';
|
|
||||||
}
|
|
||||||
oss << (*it)->toString();
|
oss << (*it)->toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( indent > 0 )
|
if ( indent > 0 )
|
||||||
{
|
{
|
||||||
oss << std::endl;
|
oss << std::endl;
|
||||||
indent -= 2;
|
if ( indent >= 2 ) indent -= 2;
|
||||||
for(int i = 0; i < indent; ++i)
|
for(int i = 0; i < indent; ++i) oss << ' ';
|
||||||
{
|
|
||||||
oss << ' ';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
oss << "]";
|
oss << "]";
|
||||||
|
|||||||
@@ -151,51 +151,36 @@ std::string Document::toString(int indent) const
|
|||||||
{
|
{
|
||||||
std::ostringstream oss;
|
std::ostringstream oss;
|
||||||
|
|
||||||
oss << "{";
|
oss << '{';
|
||||||
if ( indent > 0 )
|
|
||||||
{
|
if ( indent > 0 ) oss << std::endl;
|
||||||
oss << std::endl;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
|
for(ElementSet::const_iterator it = _elements.begin(); it != _elements.end(); ++it)
|
||||||
{
|
{
|
||||||
if ( it != _elements.begin() )
|
if ( it != _elements.begin() )
|
||||||
{
|
{
|
||||||
oss << ",";
|
oss << ',';
|
||||||
if ( indent > 0 )
|
if ( indent > 0 ) oss << std::endl;
|
||||||
{
|
|
||||||
oss << std::endl;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ( indent > 0 )
|
|
||||||
{
|
|
||||||
for(int i = 0; i < indent; ++i)
|
|
||||||
{
|
|
||||||
oss << ' ';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
oss << '"' << (*it)->name() << '"' << " : ";
|
|
||||||
if ( indent > 0 )
|
|
||||||
{
|
|
||||||
oss << (*it)->toString(indent + 2);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
oss << (*it)->toString();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for(int i = 0; i < indent; ++i) oss << ' ';
|
||||||
|
|
||||||
|
oss << '"' << (*it)->name() << '"';
|
||||||
|
oss << (( indent > 0 ) ? " : " : ":");
|
||||||
|
|
||||||
|
oss << (*it)->toString(indent > 0 ? indent + 2 : 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( indent > 0 )
|
if ( indent > 0 )
|
||||||
{
|
{
|
||||||
oss << std::endl;
|
oss << std::endl;
|
||||||
indent -= 2;
|
if ( indent >= 2 ) indent -= 2;
|
||||||
for(int i = 0; i < indent; ++i)
|
|
||||||
{
|
for(int i = 0; i < indent; ++i) oss << ' ';
|
||||||
oss << ' ';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
oss << "}";
|
oss << '}';
|
||||||
|
|
||||||
return oss.str();
|
return oss.str();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user