--- 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)
+ const gchar *const *xdg_dirs; @@ -159,27 +159,19 @@
purple_theme_manager_build_dir(loaders, 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);
- 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);
/* now dig through XDG_DATA_DIRS and add those too */
- xdg = g_getenv("XDG_DATA_DIRS"); /* XXX: change to g_get_system_data_dir() ? */
- 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);
+ /* 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);