[gnome-boxes] Simplify and robustify Util::keyfile_save
- From: Christophe Fergeau <teuf src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-boxes] Simplify and robustify Util::keyfile_save
- Date: Fri, 7 Sep 2012 10:29:41 +0000 (UTC)
commit 8f6c839175ddd90070462538ffa6495807499561
Author: Christophe Fergeau <cfergeau redhat com>
Date: Fri Sep 7 11:54:17 2012 +0200
Simplify and robustify Util::keyfile_save
The previous implementation was deleting the keyfile and then
trying to write to it. This means we can endup with an empty/partial
keyfile if an error occurs during the writing. g_file_set_contents
will write to a temporary file and then atomatically replace the
existing file which is much better. This also makes this function
shorter.
https://bugzilla.gnome.org/show_bug.cgi?id=683558
src/util.vala | 14 +++-----------
1 files changed, 3 insertions(+), 11 deletions(-)
---
diff --git a/src/util.vala b/src/util.vala
index c0f13af..5f210a3 100644
--- a/src/util.vala
+++ b/src/util.vala
@@ -102,18 +102,10 @@ namespace Boxes {
public bool keyfile_save (KeyFile key_file, string file_name, bool overwrite = false) {
try {
- var file = File.new_for_path (file_name);
-
- if (file.query_exists ())
- if (!overwrite)
- return false;
- else
- file.delete ();
-
- var stream = new DataOutputStream (file.create (FileCreateFlags.REPLACE_DESTINATION));
- stream.put_string (key_file.to_data (null));
+ if (!overwrite && FileUtils.test (file_name, FileTest.EXISTS))
+ return false;
- return true;
+ return FileUtils.set_contents(file_name, key_file.to_data (null));
} catch (GLib.Error error) {
warning (error.message);
return false;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]