SF.net SVN: geany:[4973] branches/sm/src/keyfile.c

statc at users.sourceforge.net statc at xxxxx
Mon May 31 09:25:02 UTC 2010


Revision: 4973
          http://geany.svn.sourceforge.net/geany/?rev=4973&view=rev
Author:   statc
Date:     2010-05-31 09:25:02 +0000 (Mon, 31 May 2010)

Log Message:
-----------
keyfile.c: Extract common code of opening, writing and closing geany.conf to separate functions.

Modified Paths:
--------------
    branches/sm/src/keyfile.c

Modified: branches/sm/src/keyfile.c
===================================================================
--- branches/sm/src/keyfile.c	2010-05-31 09:24:43 UTC (rev 4972)
+++ branches/sm/src/keyfile.c	2010-05-31 09:25:02 UTC (rev 4973)
@@ -226,6 +226,29 @@
 }
 
 
+static void open_config(GKeyFile ** config, gchar ** configfile)
+{
+	*config = g_key_file_new();
+	*configfile = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "geany.conf", NULL);
+	g_key_file_load_from_file(*config, *configfile, G_KEY_FILE_NONE, NULL);
+}
+
+
+static void write_config(GKeyFile * config, gchar * configfile)
+{
+	gchar *data = g_key_file_to_data(config, NULL, NULL);
+	utils_write_file(configfile, data);
+	g_free(data);
+}
+
+
+static void close_config(GKeyFile * config, gchar * configfile)
+{
+	g_key_file_free(config);
+	g_free(configfile);
+}
+
+
 static void save_recent_files(GKeyFile *config, GQueue *queue, gchar const *key)
 {
 	gchar **recent_files = g_new0(gchar*, file_prefs.mru_length + 1);
@@ -334,12 +357,10 @@
 
 void configuration_save_dialog_prefs(void)
 {
-	GKeyFile *config = g_key_file_new();
-	gchar *configfile = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "geany.conf", NULL);
-	gchar *data;
+	GKeyFile *config;
+	gchar *configfile;
+	open_config(&config, &configfile);
 
-	g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL);
-
 	/* new settings should be added in init_pref_groups() */
 	settings_action(config, SETTING_WRITE);
 
@@ -488,13 +509,8 @@
 	}
 #endif
 
-	/* write the file */
-	data = g_key_file_to_data(config, NULL, NULL);
-	utils_write_file(configfile, data);
-	g_free(data);
-
-	g_key_file_free(config);
-	g_free(configfile);
+	write_config(config, configfile);
+	close_config(config, configfile);
 }
 
 
@@ -551,12 +567,10 @@
 
 void configuration_save(void)
 {
-	GKeyFile *config = g_key_file_new();
-	gchar *configfile = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "geany.conf", NULL);
-	gchar *data;
+	GKeyFile *config;
+	gchar *configfile;
+	open_config(&config, &configfile);
 
-	g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL);
-
 	/* this signal can be used e.g. to prepare any settings before Stash code reads them below */
 	g_signal_emit_by_name(geany_object, "save-settings", config);
 
@@ -568,13 +582,8 @@
 	if (cl_options.load_session)
 		configuration_save_session_files(config);
 
-	/* write the file */
-	data = g_key_file_to_data(config, NULL, NULL);
-	utils_write_file(configfile, data);
-	g_free(data);
-
-	g_key_file_free(config);
-	g_free(configfile);
+	write_config(config, configfile);
+	close_config(config, configfile);
 }
 
 
@@ -911,22 +920,15 @@
  */
 void configuration_save_default_session(void)
 {
-	gchar *configfile = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "geany.conf", NULL);
-	gchar *data;
-	GKeyFile *config = g_key_file_new();
+	GKeyFile *config;
+	gchar *configfile;
+	open_config(&config, &configfile);
 
-	g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL);
-
 	if (cl_options.load_session)
 		configuration_save_session_files(config);
 
-	/* write the file */
-	data = g_key_file_to_data(config, NULL, NULL);
-	utils_write_file(configfile, data);
-	g_free(data);
-
-	g_key_file_free(config);
-	g_free(configfile);
+	write_config(config, configfile);
+	close_config(config, configfile);
 }
 
 
@@ -935,15 +937,13 @@
  */
 void configuration_reload_default_session(void)
 {
-	gchar *configfile = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "geany.conf", NULL);
-	GKeyFile *config = g_key_file_new();
+	GKeyFile *config;
+	gchar *configfile;
+	open_config(&config, &configfile);
 
-	g_key_file_load_from_file(config, configfile, G_KEY_FILE_NONE, NULL);
-
 	configuration_load_session_files(config, FALSE);
 
-	g_key_file_free(config);
-	g_free(configfile);
+	close_config(config, configfile);
 }
 
 


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list