pidgin/pidgin

58473fc5ee73
Parents af422a3fb924
Children 0fc4ba7fa2be
Use GLib XDG dirs functions instead of g_getenv
--- a/libpurple/theme-manager.c Tue Sep 27 08:13:06 2016 +0300
+++ b/libpurple/theme-manager.c Wed Sep 28 02:21:24 2016 +0300
@@ -147,7 +147,7 @@
purple_theme_manager_refresh(void)
{
gchar *path;
- const gchar *xdg;
+ const gchar *const *xdg_dirs;
gint i;
GSList *loaders = NULL;
@@ -159,27 +159,19 @@
purple_theme_manager_build_dir(loaders, path);
g_free(path);
- /* look for XDG_DATA_HOME. If we don't have it use ~/.local, and add it */
- if ((xdg = g_getenv("XDG_DATA_HOME")) != NULL) /* XXX: change to g_get_user_data_dir() ? */
- path = g_build_filename(xdg, "themes", NULL);
- else
- path = g_build_filename(purple_home_dir(), ".local", "themes", NULL);
-
+ /* look for XDG_DATA_HOME */
+ /* NOTE: will work on Windows, see g_get_user_data_dir() documentation */
+ path = g_build_filename(g_get_user_data_dir(), "themes", NULL);
purple_theme_manager_build_dir(loaders, path);
g_free(path);
/* now dig through XDG_DATA_DIRS and add those too */
- xdg = g_getenv("XDG_DATA_DIRS"); /* XXX: change to g_get_system_data_dir() ? */
- if (xdg) {
- gchar **xdg_dirs = g_strsplit(xdg, G_SEARCHPATH_SEPARATOR_S, 0);
-
- for (i = 0; xdg_dirs[i]; i++) {
- path = g_build_filename(xdg_dirs[i], "themes", NULL);
- purple_theme_manager_build_dir(loaders, path);
- g_free(path);
- }
-
- g_strfreev(xdg_dirs);
+ /* NOTE: will work on Windows, see g_get_system_data_dirs() documentation */
+ xdg_dirs = g_get_system_data_dirs();
+ for (i = 0; xdg_dirs[i] != NULL; i++) {
+ path = g_build_filename(xdg_dirs[i], "themes", NULL);
+ purple_theme_manager_build_dir(loaders, path);
+ g_free(path);
}
g_slist_free(loaders);