Keep indentation control fully inside the XMLPrinter. You'll have to subclass it to override its standard behaviour by overwriting CompactMode().
diff --git a/tinyxml2.h b/tinyxml2.h
index 431088d..a584010 100755
--- a/tinyxml2.h
+++ b/tinyxml2.h
@@ -822,9 +822,6 @@
// internal
virtual char* ParseDeep( char*, StrPair* );
- bool GetForceCompactMode() const { if( _forceCompactMode || !Parent() ) return _forceCompactMode; return Parent()->GetForceCompactMode(); };
- void SetForceCompactMode( bool b ) { _forceCompactMode = b; };
-
protected:
XMLNode( XMLDocument* );
virtual ~XMLNode();
@@ -2079,6 +2076,8 @@
}
protected:
+ virtual bool CompactMode( const XMLElement& elem ) { return _compactMode; };
+
void SealElement();
bool _elementJustOpened;
DynArray< const char*, 10 > _stack;