summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorarseny.kapoulkine@gmail.com <arseny.kapoulkine@gmail.com@99668b35-9821-0410-8761-19e4c4f06640>2012-03-23 05:37:45 +0000
committerarseny.kapoulkine@gmail.com <arseny.kapoulkine@gmail.com@99668b35-9821-0410-8761-19e4c4f06640>2012-03-23 05:37:45 +0000
commit343107b3de345a78307f9c07bff6ff1982f3a7ab (patch)
tree95be8e026e6ff5aaab2e4f237f3d425aa0b90545
parent046073830bfa338d7c7d07a3aa9f4262a9618d7d (diff)
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
-rw-r--r--src/pugixml.cpp4
-rw-r--r--src/pugixml.hpp3
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;