SF.net SVN: geany:[5708] trunk
ntrel at users.sourceforge.net
ntrel at xxxxx
Mon Apr 11 14:21:52 UTC 2011
Revision: 5708
http://geany.svn.sourceforge.net/geany/?rev=5708&view=rev
Author: ntrel
Date: 2011-04-11 14:21:52 +0000 (Mon, 11 Apr 2011)
Log Message:
-----------
Refactor with filetypes_get_filename().
Make filetypes_get_conf_extension() static.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/filetypes.c
trunk/src/filetypes.h
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2011-04-11 12:40:34 UTC (rev 5707)
+++ trunk/ChangeLog 2011-04-11 14:21:52 UTC (rev 5708)
@@ -8,6 +8,9 @@
Sierro, thanks).
There's still a bug with loading a project at startup; closing the
project doesn't restore old VTE path.
+ * src/filetypes.c, src/filetypes.h:
+ Refactor with filetypes_get_filename().
+ Make filetypes_get_conf_extension() static.
2011-04-10 Enrico Tröger <enrico(dot)troeger(at)uvena(dot)de>
Modified: trunk/src/filetypes.c
===================================================================
--- trunk/src/filetypes.c 2011-04-11 12:40:34 UTC (rev 5707)
+++ trunk/src/filetypes.c 2011-04-11 14:21:52 UTC (rev 5708)
@@ -63,7 +63,9 @@
static void create_radio_menu_item(GtkWidget *menu, GeanyFiletype *ftype);
+static gchar *filetypes_get_conf_extension(gint filetype_idx);
+
enum TitleType
{
TITLE_SOURCE_FILE,
@@ -1216,23 +1218,39 @@
}
-static void add_group_keys(GKeyFile *kf, const gchar *group, GeanyFiletype *ft)
+static gchar *filetypes_get_filename(GeanyFiletype *ft, gboolean user)
{
- GKeyFile *src = g_key_file_new();
gchar *ext = filetypes_get_conf_extension(ft->id);
const gchar *f;
- f = utils_make_filename(app->datadir, "filetypes.", ext, NULL);
- if (!g_file_test(f, G_FILE_TEST_EXISTS))
+ if (user)
f = utils_make_filename(app->configdir,
GEANY_FILEDEFS_SUBDIR G_DIR_SEPARATOR_S, "filetypes.", ext, NULL);
+ else
+ f = utils_make_filename(app->datadir, "filetypes.", ext, NULL);
+
g_free(ext);
+ return g_strdup(f);
+}
+
+static void add_group_keys(GKeyFile *kf, const gchar *group, GeanyFiletype *ft)
+{
+ GKeyFile *src = g_key_file_new();
+ gchar *f;
+
+ f = filetypes_get_filename(ft, FALSE);
+ if (!g_file_test(f, G_FILE_TEST_EXISTS))
+ f = filetypes_get_filename(ft, TRUE);
+
if (!g_key_file_load_from_file(src, f, G_KEY_FILE_NONE, NULL))
{
geany_debug("Could not read config file %s for [%s=%s]!", f, group, ft->name);
+ g_free(f);
return;
}
+ g_free(f);
+
add_keys(kf, group, src);
}
@@ -1310,15 +1328,14 @@
config_home = g_key_file_new();
{
/* highlighting uses GEANY_FILETYPES_NONE for common settings */
- gchar *ext = filetypes_get_conf_extension(ft_id);
- const gchar *f;
+ gchar *f;
- f = utils_make_filename(app->datadir, "filetypes.", ext, NULL);
+ f = filetypes_get_filename(ft, FALSE);
load_system_keyfile(config, f, G_KEY_FILE_KEEP_COMMENTS, ft);
- f = utils_make_filename(app->configdir,
- GEANY_FILEDEFS_SUBDIR G_DIR_SEPARATOR_S, "filetypes.", ext, NULL);
+
+ setptr(f, filetypes_get_filename(ft, TRUE));
g_key_file_load_from_file(config_home, f, G_KEY_FILE_KEEP_COMMENTS, NULL);
- g_free(ext);
+ g_free(f);
}
/* Copy keys for any groups with [group=C] from system keyfile */
copy_ft_groups(config);
@@ -1332,7 +1349,7 @@
}
-gchar *filetypes_get_conf_extension(gint filetype_idx)
+static gchar *filetypes_get_conf_extension(gint filetype_idx)
{
gchar *result;
GeanyFiletype *ft = filetypes[filetype_idx];
@@ -1359,23 +1376,20 @@
void filetypes_save_commands(void)
{
- gchar *conf_prefix = g_strconcat(app->configdir,
- G_DIR_SEPARATOR_S GEANY_FILEDEFS_SUBDIR G_DIR_SEPARATOR_S "filetypes.", NULL);
guint i;
for (i = 0; i < filetypes_array->len; i++)
{
GKeyFile *config_home;
- gchar *fname, *ext, *data;
+ gchar *fname, *data;
+ GeanyFiletype *ft = filetypes[i];
- if (filetypes[i]->home_save_needed)
+ if (ft->home_save_needed)
{
- ext = filetypes_get_conf_extension(i);
- fname = g_strconcat(conf_prefix, ext, NULL);
- g_free(ext);
+ fname = filetypes_get_filename(ft, TRUE);
config_home = g_key_file_new();
g_key_file_load_from_file(config_home, fname, G_KEY_FILE_KEEP_COMMENTS, NULL);
- build_save_menu(config_home, (gpointer)(filetypes[i]), GEANY_BCS_HOME_FT);
+ build_save_menu(config_home, ft, GEANY_BCS_HOME_FT);
data = g_key_file_to_data(config_home, NULL, NULL);
utils_write_file(fname, data);
g_free(data);
@@ -1383,7 +1397,6 @@
g_free(fname);
}
}
- g_free(conf_prefix);
}
Modified: trunk/src/filetypes.h
===================================================================
--- trunk/src/filetypes.h 2011-04-11 12:40:34 UTC (rev 5707)
+++ trunk/src/filetypes.h 2011-04-11 14:21:52 UTC (rev 5708)
@@ -204,8 +204,6 @@
GtkFileFilter *filetypes_create_file_filter_all_source(void);
-gchar *filetypes_get_conf_extension(gint filetype_idx);
-
gboolean filetype_has_tags(GeanyFiletype *ft);
gboolean filetypes_parse_error_message(GeanyFiletype *ft, const gchar *message,
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