In src/plugins.c:

> @@ -830,25 +1011,80 @@ static gboolean check_plugin_path(const gchar *fname)
>  }
>  
>  
> +/* Retuns NULL if this ain't a plugin,
> + * otherwise it returns the appropriate PluginProxy instance to load it */
> +static PluginProxy* is_plugin(const gchar *file)
> +{
> +	GList *node;
> +	const gchar *ext;
> +
> +	/* extract file extension to avoid g_str_has_suffix() in the loop */
> +	ext = (const gchar *)strrchr(file, '.');
> +	if (ext == NULL)
> +		return FALSE;
> +	/* ensure the dot is really part of the filename */
> +	else if (strchr(ext, G_DIR_SEPARATOR) != NULL)
> +		return FALSE;

In this case it is guaranteed. geany.cfg stores only the plugin's basename, not the full path. The full path is always constructed using g_build_path() prior to calling plugin_new()


Reply to this email directly or view it on GitHub.