[gnome-boxes] Make keyfile_save() use gio instead of libc



commit d74d2a986dfefeb0c3e22d667f0b2fc090c5d403
Author: Marc-Andrà Lureau <marcandre lureau gmail com>
Date:   Mon Oct 24 16:57:55 2011 +0200

    Make keyfile_save() use gio instead of libc

 src/util.vala |   21 +++++++++++++++------
 1 files changed, 15 insertions(+), 6 deletions(-)
---
diff --git a/src/util.vala b/src/util.vala
index b73af2e..d641db3 100644
--- a/src/util.vala
+++ b/src/util.vala
@@ -145,14 +145,23 @@ namespace Boxes {
     }
 
     private bool keyfile_save (KeyFile key_file, string file_name, bool overwrite = false) {
-        if (!overwrite && FileUtils.test (file_name, FileTest.EXISTS))
-            return false;
+        try {
+            var file = File.new_for_path (file_name);
+
+            if (file.query_exists ())
+                if (!overwrite)
+                    return false;
+                else
+                    file.delete ();
 
-        var file = FileStream.open (file_name, "w");
-        var data = key_file.to_data (null);
-        file.puts (data);
+            var dos = new DataOutputStream (file.create (FileCreateFlags.REPLACE_DESTINATION));
+            dos.put_string (key_file.to_data (null));
 
-        return true;
+            return true;
+        } catch (GLib.Error e) {
+            warning (e.message);
+            return false;
+        }
     }
 
     public string replace_regex (string str, string old, string replacement) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]