From 0d487c87a4f61324256e13686f19db3c5dd4d826 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 28 Nov 2018 23:30:48 +0000 Subject: [PATCH] Write config.xml with CR/LF terminators on Windows. --- ChangeLog | 4 ++++ src/lib/config.cc | 15 +++++++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index b4d1b460b..fece69ded 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2018-11-28 Carl Hetherington + + * Write config.xml with CR/LF terminators on Windows (#1402). + 2018-11-26 Carl Hetherington * Version 2.13.73 released. diff --git a/src/lib/config.cc b/src/lib/config.cc index 489e66db9..ddb4bf25a 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -947,11 +947,22 @@ Config::write_config () const #endif try { - doc.write_to_file_formatted(config_file().string()); + string const s = doc.write_to_string_formatted (); + boost::filesystem::path const cf = config_file (); + FILE* f = fopen_boost (cf, "w"); + if (!f) { + throw FileError (_("Could not open file for writing"), cf); + } + size_t const w = fwrite (s.c_str(), 1, s.length(), f); + if (w != s.length()) { + fclose (f); + throw FileError (_("Could not write whole file"), cf); + } + fclose (f); } catch (xmlpp::exception& e) { string s = e.what (); trim (s); - throw FileError (s, path("config.xml")); + throw FileError (s, config_file()); } } -- 2.30.2