SF.net SVN: geany:[5825] trunk
eht16 at users.sourceforge.net
eht16 at xxxxx
Sun May 29 20:08:53 UTC 2011
Revision: 5825
http://geany.svn.sourceforge.net/geany/?rev=5825&view=rev
Author: eht16
Date: 2011-05-29 20:08:53 +0000 (Sun, 29 May 2011)
Log Message:
-----------
Check whether the custom plugin path is one of the user or system plugin paths and if so, ignore it.
Modified Paths:
--------------
trunk/ChangeLog
trunk/src/plugins.c
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2011-05-29 19:45:16 UTC (rev 5824)
+++ trunk/ChangeLog 2011-05-29 20:08:53 UTC (rev 5825)
@@ -8,6 +8,8 @@
code into the function definition.
Do not add active plugins to the list of plugins when they are
already in the list (closes #3308191).
+ Check whether the custom plugin path is one of the user or system
+ plugin paths and if so, ignore it.
2011-05-27 Colomban Wendling <colomban(at)geany(dot)org>
Modified: trunk/src/plugins.c
===================================================================
--- trunk/src/plugins.c 2011-05-29 19:45:16 UTC (rev 5824)
+++ trunk/src/plugins.c 2011-05-29 20:08:53 UTC (rev 5825)
@@ -895,8 +895,8 @@
static gchar *get_plugin_path()
{
#ifdef G_OS_WIN32
+ gchar *path;
gchar *install_dir = win32_get_installation_dir();
- gchar *path;
path = g_strconcat(install_dir, "\\lib", NULL);
g_free(install_dir);
@@ -908,24 +908,49 @@
}
+static gboolean validate_custom_plugin_path(const gchar *plugin_path_custom,
+ const gchar *plugin_path_config,
+ const gchar *plugin_path_system)
+{
+ /* check whether the custom plugin path is one of the system or user plugin paths
+ * and abort if so */
+ if (utils_str_equal(plugin_path_custom, plugin_path_config) ||
+ utils_str_equal(plugin_path_custom, plugin_path_system))
+ return FALSE;
+
+ return TRUE;
+}
+
+
/* Load (but don't initialize) all plugins for the Plugin Manager dialog */
static void load_all_plugins(void)
{
- gchar *path;
+ gchar *plugin_path_config;
+ gchar *plugin_path_system;
- path = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "plugins", NULL);
+ plugin_path_config = g_strconcat(app->configdir, G_DIR_SEPARATOR_S, "plugins", NULL);
+ plugin_path_system = get_plugin_path();
+
/* first load plugins in ~/.config/geany/plugins/ */
- load_plugins_from_path(path);
- g_free(path);
+ load_plugins_from_path(plugin_path_config);
/* load plugins from a custom path */
if (NZV(prefs.custom_plugin_path))
- load_plugins_from_path(prefs.custom_plugin_path);
+ {
+ gchar *plugin_path_custom = utils_get_locale_from_utf8(prefs.custom_plugin_path);
+ utils_tidy_path(plugin_path_custom);
+ if (validate_custom_plugin_path(plugin_path_custom, plugin_path_config, plugin_path_system))
+ load_plugins_from_path(plugin_path_custom);
+
+ g_free(plugin_path_custom);
+ }
+
/* finally load plugins from $prefix/lib/geany */
- path = get_plugin_path();
- load_plugins_from_path(path);
- g_free(path);
+ load_plugins_from_path(plugin_path_system);
+
+ g_free(plugin_path_config);
+ g_free(plugin_path_system);
}
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