diff options
-rw-r--r-- | src/pugixml.cpp | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/pugixml.cpp b/src/pugixml.cpp index 13034f4..e814970 100644 --- a/src/pugixml.cpp +++ b/src/pugixml.cpp @@ -3376,7 +3376,7 @@ PUGI__NS_BEGIN } // set value with conversion functions - PUGI__FN bool set_value_buffer(char_t*& dest, uintptr_t& header, uintptr_t header_mask, const char (&buf)[128]) + PUGI__FN bool set_value_buffer(char_t*& dest, uintptr_t& header, uintptr_t header_mask, char (&buf)[128]) { #ifdef PUGIXML_WCHAR_MODE char_t wbuf[128]; @@ -3668,6 +3668,18 @@ PUGI__NS_BEGIN return result; } #endif + + PUGI__FN bool save_file_impl(const xml_document& doc, FILE* file, const char_t* indent, unsigned int flags, xml_encoding encoding) + { + if (!file) return false; + + xml_writer_file writer(file); + doc.save(writer, indent, flags, encoding); + + fclose(file); + + return true; + } PUGI__NS_END namespace pugi @@ -5243,27 +5255,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"); - if (!file) return false; - - xml_writer_file writer(file); - save(writer, indent, flags, encoding); - - fclose(file); - - return true; + return 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"); - if (!file) return false; - - xml_writer_file writer(file); - save(writer, indent, flags, encoding); - - fclose(file); - - return true; + return save_file_impl(*this, file, indent, flags, encoding); } PUGI__FN xml_node xml_document::document_element() const |