From 312a20fdd4c2af6e7a7fe1b5824785a8b9bfd872 Mon Sep 17 00:00:00 2001 From: Robert Reif Date: Sat, 8 Sep 2012 19:33:57 -0400 Subject: [PATCH 1/4] Add support to XMLDocument to save file in compact mode. --- tinyxml2.cpp | 8 ++++---- tinyxml2.h | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/tinyxml2.cpp b/tinyxml2.cpp index 8069d04..86a76a9 100644 --- a/tinyxml2.cpp +++ b/tinyxml2.cpp @@ -1563,7 +1563,7 @@ int XMLDocument::LoadFile( FILE* fp ) } -int XMLDocument::SaveFile( const char* filename ) +int XMLDocument::SaveFile( const char* filename, bool compact ) { #if defined(_MSC_VER) #pragma warning ( push ) @@ -1577,15 +1577,15 @@ int XMLDocument::SaveFile( const char* filename ) SetError( XML_ERROR_FILE_COULD_NOT_BE_OPENED, filename, 0 ); return errorID; } - SaveFile(fp); + SaveFile(fp, compact); fclose( fp ); return errorID; } -int XMLDocument::SaveFile( FILE* fp ) +int XMLDocument::SaveFile( FILE* fp, bool compact ) { - XMLPrinter stream( fp ); + XMLPrinter stream( fp, compact ); Print( &stream ); return errorID; } diff --git a/tinyxml2.h b/tinyxml2.h index e1c22c5..18555ca 100644 --- a/tinyxml2.h +++ b/tinyxml2.h @@ -1075,7 +1075,7 @@ public: Returns XML_NO_ERROR (0) on success, or an errorID. */ - int SaveFile( const char* filename ); + int SaveFile( const char* filename, bool compact = false ); /** Save the XML file to disk. You are responsible @@ -1084,7 +1084,7 @@ public: Returns XML_NO_ERROR (0) on success, or an errorID. */ - int SaveFile( FILE* ); + int SaveFile( FILE* fp, bool compact = false ); bool ProcessEntities() const { return processEntities; } From 6020a01812fc0ff1f1871ec349dfc63de61efd46 Mon Sep 17 00:00:00 2001 From: "Lee Thomason (grinliz)" Date: Sat, 8 Sep 2012 21:15:09 -0700 Subject: [PATCH 2/4] remove debug mem write when in release mode --- tinyxml2.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tinyxml2.h b/tinyxml2.h index e1c22c5..975ab8c 100644 --- a/tinyxml2.h +++ b/tinyxml2.h @@ -282,7 +282,9 @@ public: if ( !mem ) return; --currentAllocs; Chunk* chunk = (Chunk*)mem; +#ifdef DEBUG memset( chunk, 0xfe, sizeof(Chunk) ); +#endif chunk->next = root; root = chunk; } From 6b8b012daa9fe4b5ad64e4a4f85a5d28878488a6 Mon Sep 17 00:00:00 2001 From: "Lee Thomason (grinliz)" Date: Sat, 8 Sep 2012 21:21:00 -0700 Subject: [PATCH 3/4] added test case for compact save --- xmltest.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/xmltest.cpp b/xmltest.cpp index 81018aa..5077c25 100644 --- a/xmltest.cpp +++ b/xmltest.cpp @@ -296,6 +296,8 @@ int main( int /*argc*/, const char ** /*argv*/ ) doc->Print( &streamer ); XMLTest( "Compact mode", "", streamer.CStr(), false ); } + doc->SaveFile( "./resources/out/pretty.xml" ); + doc->SaveFile( "./resources/out/compact.xml", true ); delete doc; } { From 4dbe869cd7e650bfba4588aefb879556668e8c52 Mon Sep 17 00:00:00 2001 From: "Lee Thomason (grinliz)" Date: Sat, 8 Sep 2012 21:23:33 -0700 Subject: [PATCH 4/4] increase the version --- CMakeLists.txt | 168 ++++++++++++++++++++++++------------------------- dox | 2 +- tinyxml2.h | 2 +- 3 files changed, 86 insertions(+), 86 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4b60d7c..466f5ad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,84 +1,84 @@ -cmake_minimum_required(VERSION 2.6 FATAL_ERROR) -cmake_policy(VERSION 2.6) - -project(tinyxml2) -include(GNUInstallDirs) -#enable_testing() - -#CMAKE_BUILD_TOOL - -################################ -# set lib version here - -set(GENERIC_LIB_VERSION "1.0.6") -set(GENERIC_LIB_SOVERSION "1") - - -################################ -# Add common source - -include_directories("${CMAKE_CURRENT_SOURCE_DIR}/.") - -################################ -# Add custom target to copy all data - -set(TARGET_DATA_COPY DATA_COPY) -if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) - add_custom_target( - ${TARGET_DATA_COPY} - COMMAND ${CMAKE_COMMAND} -E echo "In source build") -else(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) - make_directory(${CMAKE_CURRENT_BINARY_DIR}/resources/) - add_custom_target( - ${TARGET_DATA_COPY} - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/resources/dream.xml ${CMAKE_CURRENT_BINARY_DIR}/resources/ - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/resources/utf8test.xml ${CMAKE_CURRENT_BINARY_DIR}/resources/ - COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/resources/utf8testverify.xml ${CMAKE_CURRENT_BINARY_DIR}/resources/) -endif(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) - -################################ -# Add definitions - -if(MSVC) - add_definitions(-D_CRT_SECURE_NO_WARNINGS) -endif(MSVC) - -################################ -# Add targets -set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries") -if(BUILD_STATIC_LIBS) - add_library(tinyxml2static STATIC tinyxml2.cpp tinyxml2.h) - set_target_properties(tinyxml2static PROPERTIES OUTPUT_NAME tinyxml2) -endif(BUILD_STATIC_LIBS) -add_library(tinyxml2 SHARED tinyxml2.cpp tinyxml2.h) -set_target_properties(tinyxml2 PROPERTIES - VERSION "${GENERIC_LIB_VERSION}" - SOVERSION "${GENERIC_LIB_SOVERSION}") - -add_executable(test xmltest.cpp) -add_dependencies(test tinyxml2) -add_dependencies(test ${TARGET_DATA_COPY}) -target_link_libraries(test tinyxml2) - - -if(BUILD_STATIC_LIBS) - install(TARGETS tinyxml2 tinyxml2static - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -else(BUILD_STATIC_LIBS) - install(TARGETS tinyxml2 - LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) -endif(BUILD_STATIC_LIBS) -install(FILES tinyxml2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) - -foreach(p LIB INCLUDE) - set(var CMAKE_INSTALL_${p}DIR) - if(NOT IS_ABSOLUTE "${${var}}") - set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") - endif() -endforeach() - -configure_file(tinyxml2.pc.in tinyxml2.pc @ONLY) -install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tinyxml2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) - -#add_test(test ${SAMPLE_NAME} COMMAND $) +cmake_minimum_required(VERSION 2.6 FATAL_ERROR) +cmake_policy(VERSION 2.6) + +project(tinyxml2) +include(GNUInstallDirs) +#enable_testing() + +#CMAKE_BUILD_TOOL + +################################ +# set lib version here + +set(GENERIC_LIB_VERSION "1.0.7") +set(GENERIC_LIB_SOVERSION "1") + + +################################ +# Add common source + +include_directories("${CMAKE_CURRENT_SOURCE_DIR}/.") + +################################ +# Add custom target to copy all data + +set(TARGET_DATA_COPY DATA_COPY) +if(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) + add_custom_target( + ${TARGET_DATA_COPY} + COMMAND ${CMAKE_COMMAND} -E echo "In source build") +else(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) + make_directory(${CMAKE_CURRENT_BINARY_DIR}/resources/) + add_custom_target( + ${TARGET_DATA_COPY} + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/resources/dream.xml ${CMAKE_CURRENT_BINARY_DIR}/resources/ + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/resources/utf8test.xml ${CMAKE_CURRENT_BINARY_DIR}/resources/ + COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/resources/utf8testverify.xml ${CMAKE_CURRENT_BINARY_DIR}/resources/) +endif(${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}) + +################################ +# Add definitions + +if(MSVC) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) +endif(MSVC) + +################################ +# Add targets +set(BUILD_STATIC_LIBS ON CACHE BOOL "Set to ON to build static libraries") +if(BUILD_STATIC_LIBS) + add_library(tinyxml2static STATIC tinyxml2.cpp tinyxml2.h) + set_target_properties(tinyxml2static PROPERTIES OUTPUT_NAME tinyxml2) +endif(BUILD_STATIC_LIBS) +add_library(tinyxml2 SHARED tinyxml2.cpp tinyxml2.h) +set_target_properties(tinyxml2 PROPERTIES + VERSION "${GENERIC_LIB_VERSION}" + SOVERSION "${GENERIC_LIB_SOVERSION}") + +add_executable(test xmltest.cpp) +add_dependencies(test tinyxml2) +add_dependencies(test ${TARGET_DATA_COPY}) +target_link_libraries(test tinyxml2) + + +if(BUILD_STATIC_LIBS) + install(TARGETS tinyxml2 tinyxml2static + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) +else(BUILD_STATIC_LIBS) + install(TARGETS tinyxml2 + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}) +endif(BUILD_STATIC_LIBS) +install(FILES tinyxml2.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) + +foreach(p LIB INCLUDE) + set(var CMAKE_INSTALL_${p}DIR) + if(NOT IS_ABSOLUTE "${${var}}") + set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}") + endif() +endforeach() + +configure_file(tinyxml2.pc.in tinyxml2.pc @ONLY) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tinyxml2.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) + +#add_test(test ${SAMPLE_NAME} COMMAND $) diff --git a/dox b/dox index c435bbf..305187d 100755 --- a/dox +++ b/dox @@ -32,7 +32,7 @@ PROJECT_NAME = "TinyXML-2" # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = 1.0.6 +PROJECT_NUMBER = 1.0.7 # Using the PROJECT_BRIEF tag one can provide an optional one line description # for a project that appears at the top of each page and should give viewer diff --git a/tinyxml2.h b/tinyxml2.h index 8e3dbab..0236048 100644 --- a/tinyxml2.h +++ b/tinyxml2.h @@ -85,7 +85,7 @@ distribution. static const int TIXML2_MAJOR_VERSION = 1; static const int TIXML2_MINOR_VERSION = 0; -static const int TIXML2_PATCH_VERSION = 6; +static const int TIXML2_PATCH_VERSION = 7; namespace tinyxml2 {