From 343107b3de345a78307f9c07bff6ff1982f3a7ab Mon Sep 17 00:00:00 2001 From: "arseny.kapoulkine@gmail.com" Date: Fri, 23 Mar 2012 05:37:45 +0000 Subject: Added format_save_file_text flag for opening the file in text mode git-svn-id: http://pugixml.googlecode.com/svn/trunk@883 99668b35-9821-0410-8761-19e4c4f06640 --- src/pugixml.cpp | 4 ++-- src/pugixml.hpp | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/pugixml.cpp b/src/pugixml.cpp index c085cef..01eeaaf 100644 --- a/src/pugixml.cpp +++ b/src/pugixml.cpp @@ -5256,13 +5256,13 @@ namespace pugi PUGI__FN bool xml_document::save_file(const char* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const { - FILE* file = fopen(path_, "wb"); + FILE* file = fopen(path_, (flags & format_save_file_text) ? "w" : "wb"); return impl::save_file_impl(*this, file, indent, flags, encoding); } PUGI__FN bool xml_document::save_file(const wchar_t* path_, const char_t* indent, unsigned int flags, xml_encoding encoding) const { - FILE* file = impl::open_file_wide(path_, L"wb"); + FILE* file = impl::open_file_wide(path_, (flags & format_save_file_text) ? L"w" : L"wb"); return impl::save_file_impl(*this, file, indent, flags, encoding); } diff --git a/src/pugixml.hpp b/src/pugixml.hpp index e838f0c..4b7a655 100644 --- a/src/pugixml.hpp +++ b/src/pugixml.hpp @@ -184,6 +184,9 @@ namespace pugi // Don't escape attribute values and PCDATA contents. This flag is off by default. const unsigned int format_no_escapes = 0x10; + // Open file using text mode in xml_document::save_file. This enables special character (i.e. new-line) conversions on some systems. This flag is off by default. + const unsigned int format_save_file_text = 0x20; + // The default set of formatting flags. // Nodes are indented depending on their depth in DOM tree, a default declaration is output if document has none. const unsigned int format_default = format_indent; -- cgit v1.2.3