mirror of
				https://github.com/AxioDL/tinyxml2.git
				synced 2025-10-28 12:49:49 +00:00 
			
		
		
		
	Merge remote-tracking branch 'sniperbat/master'
This commit is contained in:
		
						commit
						6e0e38b372
					
				
							
								
								
									
										17
									
								
								tinyxml2.cpp
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								tinyxml2.cpp
									
									
									
									
									
								
							| @ -1501,13 +1501,14 @@ void XMLDocument::PrintError() const | ||||
| } | ||||
| 
 | ||||
| 
 | ||||
| XMLPrinter::XMLPrinter( FILE* file ) :  | ||||
| XMLPrinter::XMLPrinter( FILE* file, bool compact ) :  | ||||
| 	elementJustOpened( false ),  | ||||
| 	firstElement( true ), | ||||
| 	fp( file ),  | ||||
| 	depth( 0 ),  | ||||
| 	textDepth( -1 ), | ||||
| 	processEntities( true ) | ||||
| 	processEntities( true ), | ||||
| 	compactMode( compact ) | ||||
| { | ||||
| 	for( int i=0; i<ENTITY_RANGE; ++i ) { | ||||
| 		entityFlag[i] = false; | ||||
| @ -1627,7 +1628,7 @@ void XMLPrinter::OpenElement( const char* name ) | ||||
| 	} | ||||
| 	stack.Push( name ); | ||||
| 
 | ||||
| 	if ( textDepth < 0 && !firstElement ) { | ||||
| 	if ( textDepth < 0 && !firstElement && !compactMode ) { | ||||
| 		Print( "\n" ); | ||||
| 		PrintSpace( depth ); | ||||
| 	} | ||||
| @ -1689,7 +1690,7 @@ void XMLPrinter::CloseElement() | ||||
| 		Print( "/>" ); | ||||
| 	} | ||||
| 	else { | ||||
| 		if ( textDepth < 0 ) { | ||||
| 		if ( textDepth < 0 && !compactMode) { | ||||
| 			Print( "\n" ); | ||||
| 			PrintSpace( depth ); | ||||
| 		} | ||||
| @ -1698,7 +1699,7 @@ void XMLPrinter::CloseElement() | ||||
| 
 | ||||
| 	if ( textDepth == depth ) | ||||
| 		textDepth = -1; | ||||
| 	if ( depth == 0 ) | ||||
| 	if ( depth == 0 && !compactMode) | ||||
| 		Print( "\n" ); | ||||
| 	elementJustOpened = false; | ||||
| } | ||||
| @ -1734,7 +1735,7 @@ void XMLPrinter::PushComment( const char* comment ) | ||||
| 	if ( elementJustOpened ) { | ||||
| 		SealElement(); | ||||
| 	} | ||||
| 	if ( textDepth < 0 && !firstElement ) { | ||||
| 	if ( textDepth < 0 && !firstElement && !compactMode) { | ||||
| 		Print( "\n" ); | ||||
| 		PrintSpace( depth ); | ||||
| 	} | ||||
| @ -1748,7 +1749,7 @@ void XMLPrinter::PushDeclaration( const char* value ) | ||||
| 	if ( elementJustOpened ) { | ||||
| 		SealElement(); | ||||
| 	} | ||||
| 	if ( textDepth < 0 && !firstElement) { | ||||
| 	if ( textDepth < 0 && !firstElement && !compactMode) { | ||||
| 		Print( "\n" ); | ||||
| 		PrintSpace( depth ); | ||||
| 	} | ||||
| @ -1762,7 +1763,7 @@ void XMLPrinter::PushUnknown( const char* value ) | ||||
| 	if ( elementJustOpened ) { | ||||
| 		SealElement(); | ||||
| 	} | ||||
| 	if ( textDepth < 0 && !firstElement ) { | ||||
| 	if ( textDepth < 0 && !firstElement && !compactMode) { | ||||
| 		Print( "\n" ); | ||||
| 		PrintSpace( depth ); | ||||
| 	} | ||||
|  | ||||
							
								
								
									
										11
									
								
								tinyxml2.h
									
									
									
									
									
								
							
							
						
						
									
										11
									
								
								tinyxml2.h
									
									
									
									
									
								
							| @ -1329,7 +1329,7 @@ public: | ||||
| 		this will print to the FILE. Else it will print | ||||
| 		to memory, and the result is available in CStr() | ||||
| 	*/ | ||||
| 	XMLPrinter( FILE* file=0 ); | ||||
| 	XMLPrinter( FILE* file=0, bool compact = false ); | ||||
| 	~XMLPrinter()	{} | ||||
| 
 | ||||
| 	/** If streaming, write the BOM and declaration. */ | ||||
| @ -1378,6 +1378,14 @@ public: | ||||
|   	*/ | ||||
|   	const int CStrSize()const{ return buffer.Size(); } | ||||
| 
 | ||||
| 	/**
 | ||||
|   	Set printer to compact mode, for printing without '\n' and space, | ||||
| 		let output file smaller. | ||||
| 	*/ | ||||
| 	void SetCompactMode( bool on ){ compactMode = on; } | ||||
| 	bool IsCompactMode()const{ return compactMode; }; | ||||
|    | ||||
| 
 | ||||
| private: | ||||
| 	void SealElement(); | ||||
| 	void PrintSpace( int depth ); | ||||
| @ -1390,6 +1398,7 @@ private: | ||||
| 	int depth; | ||||
| 	int textDepth; | ||||
| 	bool processEntities; | ||||
| 	bool compactMode; | ||||
| 
 | ||||
| 	enum { | ||||
| 		ENTITY_RANGE = 64, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user