summary refs log tree commit diff stats
path: root/plugins/fishlim/keystore.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/fishlim/keystore.c')
-rw-r--r--plugins/fishlim/keystore.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/plugins/fishlim/keystore.c b/plugins/fishlim/keystore.c
index 45cca668..8cb12912 100644
--- a/plugins/fishlim/keystore.c
+++ b/plugins/fishlim/keystore.c
@@ -125,6 +125,26 @@ static bool delete_nick(GKeyFile *keyfile, const char *nick) {
     return ok;
 }
 
+#if !GLIB_CHECK_VERSION(2,40,0)
+/**
+ * Writes the key store file to disk.
+ */
+static gboolean keyfile_save_to_file (GKeyFile *keyfile, char *filename) {
+    gboolean ok;
+
+    /* Serialize */
+    gsize file_length;
+    gchar *file_data = g_key_file_to_data(keyfile, &file_length, NULL);
+    if (!file_data)
+        return FALSE;
+
+    /* Write to file */
+    ok = g_file_set_contents (filename, file_data, file_length, NULL);
+    g_free(file_data);
+    return ok;
+}
+#endif
+
 /**
  * Writes the key store file to disk.
  */
@@ -133,7 +153,11 @@ static bool save_keystore(GKeyFile *keyfile) {
     bool ok;
 
     filename = get_config_filename();
+#if !GLIB_CHECK_VERSION(2,40,0)
+    ok = keyfile_save_to_file (keyfile, filename);
+#else
     ok = g_key_file_save_to_file (keyfile, filename, NULL);
+#endif
     g_free (filename);
 
     return ok;