diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/c_plugins.c | 5 | ||||
-rw-r--r-- | src/plugins/plugins.c | 17 | ||||
-rw-r--r-- | src/plugins/python_plugins.c | 3 | ||||
-rw-r--r-- | src/plugins/settings.c | 35 | ||||
-rw-r--r-- | src/plugins/themes.c | 19 |
5 files changed, 29 insertions, 50 deletions
diff --git a/src/plugins/c_plugins.c b/src/plugins/c_plugins.c index c7f8fcdb..d7de7352 100644 --- a/src/plugins/c_plugins.c +++ b/src/plugins/c_plugins.c @@ -41,6 +41,7 @@ #include "log.h" #include "config/preferences.h" +#include "config/files.h" #include "plugins/api.h" #include "plugins/callbacks.h" #include "plugins/plugins.h" @@ -60,9 +61,9 @@ c_plugin_create(const char *const filename) ProfPlugin *plugin; void *handle = NULL; - gchar *plugins_dir = plugins_get_dir(); + char *plugins_dir = files_get_data_path(DIR_PLUGINS); GString *path = g_string_new(plugins_dir); - g_free(plugins_dir); + free(plugins_dir); g_string_append(path, "/"); g_string_append(path, filename); diff --git a/src/plugins/plugins.c b/src/plugins/plugins.c index 2308e7f3..cdade652 100644 --- a/src/plugins/plugins.c +++ b/src/plugins/plugins.c @@ -131,7 +131,7 @@ plugins_init(void) gboolean plugins_install(const char *const plugin_name, const char *const filename) { - char *plugins_dir = plugins_get_dir(); + char *plugins_dir = files_get_data_path(DIR_PLUGINS); GString *target_path = g_string_new(plugins_dir); free(plugins_dir); g_string_append(target_path, "/"); @@ -266,7 +266,7 @@ GSList* plugins_unloaded_list(void) { GSList *result = NULL; - char *plugins_dir = plugins_get_dir(); + char *plugins_dir = files_get_data_path(DIR_PLUGINS); _plugins_unloaded_list_dir(plugins_dir, &result); free(plugins_dir); @@ -830,16 +830,3 @@ plugins_shutdown(void) callbacks_close(); disco_close(); } - -char* -plugins_get_dir(void) -{ - gchar *xdg_data = files_get_xdg_data_home(); - GString *plugins_dir = g_string_new(xdg_data); - g_string_append(plugins_dir, "/profanity/plugins"); - char *result = strdup(plugins_dir->str); - g_free(xdg_data); - g_string_free(plugins_dir, TRUE); - - return result; -} diff --git a/src/plugins/python_plugins.c b/src/plugins/python_plugins.c index dc1c17f9..16c64fab 100644 --- a/src/plugins/python_plugins.c +++ b/src/plugins/python_plugins.c @@ -36,6 +36,7 @@ #include "config.h" #include "config/preferences.h" +#include "config/files.h" #include "plugins/api.h" #include "plugins/callbacks.h" #include "plugins/plugins.h" @@ -77,7 +78,7 @@ python_env_init(void) python_init_prof(); - gchar *plugins_dir = plugins_get_dir(); + char *plugins_dir = files_get_data_path(DIR_PLUGINS); GString *path = g_string_new("import sys\n"); g_string_append(path, "sys.path.append(\""); g_string_append(path, plugins_dir); diff --git a/src/plugins/settings.c b/src/plugins/settings.c index 418451ff..992390cf 100644 --- a/src/plugins/settings.c +++ b/src/plugins/settings.c @@ -49,24 +49,21 @@ static void _save_settings(void); void plugin_settings_init(void) { - gchar *xdg_data = files_get_xdg_data_home(); - GString *fileloc = g_string_new(xdg_data); - g_string_append(fileloc, "/profanity/plugin_settings"); - g_free(xdg_data); + char *settings_file = files_get_data_path(FILE_PLUGIN_SETTINGS); - if (g_file_test(fileloc->str, G_FILE_TEST_EXISTS)) { - g_chmod(fileloc->str, S_IRUSR | S_IWUSR); + if (g_file_test(settings_file, G_FILE_TEST_EXISTS)) { + g_chmod(settings_file, S_IRUSR | S_IWUSR); } settings = g_key_file_new(); - g_key_file_load_from_file(settings, fileloc->str, G_KEY_FILE_KEEP_COMMENTS, NULL); + g_key_file_load_from_file(settings, settings_file, G_KEY_FILE_KEEP_COMMENTS, NULL); gsize g_data_size; gchar *g_data = g_key_file_to_data(settings, &g_data_size, NULL); - g_file_set_contents(fileloc->str, g_data, g_data_size, NULL); - g_chmod(fileloc->str, S_IRUSR | S_IWUSR); + g_file_set_contents(settings_file, g_data, g_data_size, NULL); + g_chmod(settings_file, S_IRUSR | S_IWUSR); g_free(g_data); - g_string_free(fileloc, TRUE); + free(settings_file); } void @@ -135,19 +132,13 @@ _save_settings(void) gsize g_data_size; gchar *g_data = g_key_file_to_data(settings, &g_data_size, NULL); - gchar *xdg_data = files_get_xdg_data_home(); - GString *fileloc = g_string_new(xdg_data); - g_free(xdg_data); - - g_string_append(fileloc, "/profanity/"); - char *base = strdup(fileloc->str); - g_string_append(fileloc, "plugin_settings"); - - gchar *true_loc = get_file_or_linked(fileloc->str, base); - free(base); + char *fileloc = files_get_data_path(FILE_PLUGIN_SETTINGS); + gchar *base = g_path_get_basename(fileloc); + gchar *true_loc = get_file_or_linked(fileloc, base); + g_free(base); g_file_set_contents(true_loc, g_data, g_data_size, NULL); free(true_loc); g_free(g_data); - g_chmod(fileloc->str, S_IRUSR | S_IWUSR); - g_string_free(fileloc, TRUE); + g_chmod(fileloc, S_IRUSR | S_IWUSR); + free(fileloc); } diff --git a/src/plugins/themes.c b/src/plugins/themes.c index 061638e9..e2e62a51 100644 --- a/src/plugins/themes.c +++ b/src/plugins/themes.c @@ -32,6 +32,8 @@ * */ +#include <stdlib.h> + #include <glib.h> #include <glib/gstdio.h> @@ -44,24 +46,21 @@ static GKeyFile *themes; void plugin_themes_init(void) { - gchar *xdg_data = files_get_xdg_data_home(); - GString *fileloc = g_string_new(xdg_data); - g_string_append(fileloc, "/profanity/plugin_themes"); - g_free(xdg_data); + char *themes_file = files_get_data_path(FILE_PLUGIN_THEMES); - if (g_file_test(fileloc->str, G_FILE_TEST_EXISTS)) { - g_chmod(fileloc->str, S_IRUSR | S_IWUSR); + if (g_file_test(themes_file, G_FILE_TEST_EXISTS)) { + g_chmod(themes_file, S_IRUSR | S_IWUSR); } themes = g_key_file_new(); - g_key_file_load_from_file(themes, fileloc->str, G_KEY_FILE_KEEP_COMMENTS, NULL); + g_key_file_load_from_file(themes, themes_file, G_KEY_FILE_KEEP_COMMENTS, NULL); gsize g_data_size; gchar *g_data = g_key_file_to_data(themes, &g_data_size, NULL); - g_file_set_contents(fileloc->str, g_data, g_data_size, NULL); - g_chmod(fileloc->str, S_IRUSR | S_IWUSR); + g_file_set_contents(themes_file, g_data, g_data_size, NULL); + g_chmod(themes_file, S_IRUSR | S_IWUSR); g_free(g_data); - g_string_free(fileloc, TRUE); + free(themes_file); } void |