diff options
| -rw-r--r-- | ChangeLog | 4 | ||||
| -rw-r--r-- | src/lib/config.cc | 15 |
2 files changed, 17 insertions, 2 deletions
@@ -1,3 +1,7 @@ +2018-11-28 Carl Hetherington <cth@carlh.net> + + * Write config.xml with CR/LF terminators on Windows (#1402). + 2018-11-26 Carl Hetherington <cth@carlh.net> * 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()); } } |
