Revision: 5736 http://geany.svn.sourceforge.net/geany/?rev=5736&view=rev Author: colombanw Date: 2011-04-24 15:30:32 +0000 (Sun, 24 Apr 2011)
Log Message: ----------- When copying filetype groups, add keys from both system and user ones
This makes sure we use the user filetypes in precedence over system ones even if both are present.
Modified Paths: -------------- trunk/src/filetypes.c
Modified: trunk/src/filetypes.c =================================================================== --- trunk/src/filetypes.c 2011-04-24 15:30:20 UTC (rev 5735) +++ trunk/src/filetypes.c 2011-04-24 15:30:32 UTC (rev 5736) @@ -1248,22 +1248,30 @@
static void add_group_keys(GKeyFile *kf, const gchar *group, GeanyFiletype *ft) { - GKeyFile *src = g_key_file_new(); - gchar *f; + gchar *files[2]; + gboolean loaded = FALSE; + guint i;
- f = filetypes_get_filename(ft, FALSE); - if (!g_file_test(f, G_FILE_TEST_EXISTS)) - f = filetypes_get_filename(ft, TRUE); + files[0] = filetypes_get_filename(ft, FALSE); + files[1] = filetypes_get_filename(ft, TRUE);
- if (!g_key_file_load_from_file(src, f, G_KEY_FILE_NONE, NULL)) + for (i = 0; i < G_N_ELEMENTS(files); i++) { - geany_debug("Could not read config file %s for [%s=%s]!", f, group, ft->name); - g_free(f); - return; + GKeyFile *src = g_key_file_new(); + + if (g_key_file_load_from_file(src, files[i], G_KEY_FILE_NONE, NULL)) + { + add_keys(kf, group, src); + loaded = TRUE; + } + g_key_file_free(src); } - g_free(f);
- add_keys(kf, group, src); + if (!loaded) + geany_debug("Could not read config file %s for [%s=%s]!", files[0], group, ft->name); + + g_free(files[0]); + g_free(files[1]); }
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.