Branch: refs/heads/master Author: Frank Lanitz frank@frank.uvena.de Committer: GitHub noreply@github.com Date: Sat, 29 Apr 2017 09:44:18 UTC Commit: cfd70a8bea776bcc0309ca2db0252c9b39b75a07 https://github.com/geany/geany-plugins/commit/cfd70a8bea776bcc0309ca2db0252c...
Log Message: ----------- Merge pull request #569 from geany/osx_relpath
Use paths relative to the bundle on OS X
Modified Paths: -------------- geanygendoc/src/ggd-utils.c geniuspaste/src/geniuspaste.c git-changebar/src/gcb-plugin.c overview/overview/overviewprefspanel.c pohelper/src/gph-plugin.c scope/src/scope.c
Modified: geanygendoc/src/ggd-utils.c 27 lines changed, 19 insertions(+), 8 deletions(-) =================================================================== @@ -135,6 +135,24 @@ ggd_copy_file (const gchar *input, return success; }
+static gchar * +get_data_dir_path (const gchar *filename) +{ + gchar *prefix = NULL; + gchar *path; + +#ifdef G_OS_WIN32 + prefix = g_win32_get_package_installation_directory_of_module (NULL); +#elif defined(__APPLE__) + if (g_getenv ("GEANY_PLUGINS_SHARE_PATH")) + return g_build_filename (g_getenv ("GEANY_PLUGINS_SHARE_PATH"), + PLUGIN, filename, NULL); +#endif + path = g_build_filename (prefix ? prefix : "", PLUGINDATADIR, filename, NULL); + g_free (prefix); + return path; +} + /** * ggd_get_config_file: * @name: The name of the configuration file to get (ASCII string) @@ -161,7 +179,6 @@ ggd_get_config_file (const gchar *name, GError **error) { gchar *path = NULL; - gchar *system_prefix = NULL; gchar *user_dir; gchar *user_path; gchar *system_dir; @@ -170,17 +187,12 @@ ggd_get_config_file (const gchar *name, g_return_val_if_fail (name != NULL, NULL); g_return_val_if_fail (error == NULL || *error == NULL, NULL);
-#ifdef G_OS_WIN32 - system_prefix = g_win32_get_package_installation_directory_of_module (NULL); -#endif - /* here we guess the locale encoding is ASCII-compatible, anyway it's the case * on Windows since we use UTF-8 and on UNIX it would cause too much troubles * everywhere if it is not anyway */ user_dir = g_build_filename (geany->app->configdir, "plugins", GGD_PLUGIN_CNAME, section, NULL); - system_dir = g_build_filename (system_prefix ? system_prefix : "", - PLUGINDATADIR, section, NULL); + system_dir = get_data_dir_path (section); user_path = g_build_filename (user_dir, name, NULL); system_path = g_build_filename (system_dir, name, NULL); if (perms_req & GGD_PERM_R) { @@ -259,7 +271,6 @@ ggd_get_config_file (const gchar *name, if (path != system_path) g_free (system_path); g_free (user_dir); g_free (system_dir); - g_free (system_prefix);
return path; }
Modified: geniuspaste/src/geniuspaste.c 24 lines changed, 17 insertions(+), 7 deletions(-) =================================================================== @@ -244,17 +244,29 @@ static void load_pastebins_in_dir(const gchar *path) } }
-static void load_all_pastebins(void) +static gchar *get_data_dir_path(const gchar *filename) { -#ifdef G_OS_WIN32 - gchar *prefix = g_win32_get_package_installation_directory_of_module(NULL); -#else gchar *prefix = NULL; + gchar *path; + +#ifdef G_OS_WIN32 + prefix = g_win32_get_package_installation_directory_of_module(NULL); +#elif defined(__APPLE__) + if (g_getenv("GEANY_PLUGINS_SHARE_PATH")) + return g_build_filename(g_getenv("GEANY_PLUGINS_SHARE_PATH"), + PLUGIN, filename, NULL); #endif + path = g_build_filename(prefix ? prefix : "", PLUGINDATADIR, filename, NULL); + g_free(prefix); + return path; +} + +static void load_all_pastebins(void) +{ gchar *paths[] = { g_build_filename(geany->app->configdir, "plugins", "geniuspaste", "pastebins", NULL), - g_build_filename(prefix ? prefix : "", PLUGINDATADIR, "pastebins", NULL) + get_data_dir_path("pastebins") }; guint i;
@@ -264,8 +276,6 @@ static void load_all_pastebins(void) g_free(paths[i]); } pastebins = g_slist_sort(pastebins, sort_pastebins); - - g_free(prefix); }
static void free_all_pastebins(void)
Modified: git-changebar/src/gcb-plugin.c 27 lines changed, 19 insertions(+), 8 deletions(-) =================================================================== @@ -1386,19 +1386,31 @@ on_plugin_configure_response (GtkDialog *dialog, } }
+static gchar * +get_data_dir_path (const gchar *filename) +{ + gchar *prefix = NULL; + gchar *path; + +#ifdef G_OS_WIN32 + prefix = g_win32_get_package_installation_directory_of_module (NULL); +#elif defined(__APPLE__) + if (g_getenv ("GEANY_PLUGINS_SHARE_PATH")) + return g_build_filename (g_getenv ("GEANY_PLUGINS_SHARE_PATH"), + PLUGIN, filename, NULL); +#endif + path = g_build_filename (prefix ? prefix : "", PLUGINDATADIR, filename, NULL); + g_free (prefix); + return path; +} + GtkWidget * plugin_configure (GtkDialog *dialog) { GError *error = NULL; GtkWidget *base = NULL; GtkBuilder *builder = gtk_builder_new (); -#ifdef G_OS_WIN32 - gchar *prefix = g_win32_get_package_installation_directory_of_module (NULL); -#else - gchar *prefix = NULL; -#endif - gchar *path = g_build_filename (prefix ? prefix : "", PLUGINDATADIR, - "prefs.ui", NULL); + gchar *path = get_data_dir_path ("prefs.ui");
gtk_builder_set_translation_domain (builder, GETTEXT_PACKAGE); if (! gtk_builder_add_from_file (builder, path, &error)) { @@ -1444,7 +1456,6 @@ plugin_configure (GtkDialog *dialog) }
g_free (path); - g_free (prefix); g_object_unref (builder);
return base;
Modified: overview/overview/overviewprefspanel.c 26 lines changed, 19 insertions(+), 7 deletions(-) =================================================================== @@ -192,18 +192,31 @@ overview_prefs_panel_load_prefs (OverviewPrefsPanel *self) g_signal_emit_by_name (self, "prefs-loaded", self->prefs); }
+static gchar * +get_data_dir_path (const gchar *filename) +{ + gchar *prefix = NULL; + gchar *path; + +#ifdef G_OS_WIN32 + prefix = g_win32_get_package_installation_directory_of_module (NULL); +#elif defined(__APPLE__) + if (g_getenv ("GEANY_PLUGINS_SHARE_PATH")) + return g_build_filename (g_getenv ("GEANY_PLUGINS_SHARE_PATH"), + PLUGIN, filename, NULL); +#endif + path = g_build_filename (prefix ? prefix : "", PLUGINDATADIR, filename, NULL); + g_free (prefix); + return path; +} + static void overview_prefs_panel_init (OverviewPrefsPanel *self) { GtkBuilder *builder; GError *error = NULL; GtkWidget *overlay_frame; -#ifdef G_OS_WIN32 - gchar *prefix = g_win32_get_package_installation_directory_of_module (NULL); -#else - gchar *prefix = NULL; -#endif - gchar *ui_file_path = g_build_filename (prefix ? prefix : "", PLUGINDATADIR, "prefs.ui", NULL); + gchar *ui_file_path = get_data_dir_path ("prefs.ui");
builder = gtk_builder_new (); if (! gtk_builder_add_from_file (builder, ui_file_path, &error)) @@ -215,7 +228,6 @@ overview_prefs_panel_init (OverviewPrefsPanel *self) }
g_free (ui_file_path); - g_free (prefix);
self->prefs_table = builder_get_widget (builder, "prefs-table"); self->width_spin = builder_get_widget (builder, "width-spin");
Modified: pohelper/src/gph-plugin.c 16 lines changed, 9 insertions(+), 7 deletions(-) =================================================================== @@ -1360,16 +1360,18 @@ on_color_button_color_notify (GtkWidget *widget, static gchar * get_data_dir_path (const gchar *filename) { -#ifdef G_OS_WIN32 - gchar *prefix = g_win32_get_package_installation_directory_of_module (NULL); -#else gchar *prefix = NULL; + gchar *path; + +#ifdef G_OS_WIN32 + prefix = g_win32_get_package_installation_directory_of_module (NULL); +#elif defined(__APPLE__) + if (g_getenv ("GEANY_PLUGINS_SHARE_PATH")) + return g_build_filename( g_getenv ("GEANY_PLUGINS_SHARE_PATH"), + PLUGIN, filename, NULL); #endif - gchar *path = g_build_filename (prefix ? prefix : "", PLUGINDATADIR, - filename, NULL); - + path = g_build_filename (prefix ? prefix : "", PLUGINDATADIR, filename, NULL); g_free (prefix); - return path; }
Modified: scope/src/scope.c 19 lines changed, 18 insertions(+), 1 deletions(-) =================================================================== @@ -526,10 +526,27 @@ void configure_panel(void) gtk_notebook_set_tab_pos(GTK_NOTEBOOK(debug_panel), pref_panel_tab_pos); }
+static gchar *get_data_dir_path(const gchar *filename) +{ + gchar *prefix = NULL; + gchar *path; + +#ifdef G_OS_WIN32 + prefix = g_win32_get_package_installation_directory_of_module(NULL); +#elif defined(__APPLE__) + if (g_getenv("GEANY_PLUGINS_SHARE_PATH")) + return g_build_filename(g_getenv("GEANY_PLUGINS_SHARE_PATH"), + PLUGIN, filename, NULL); +#endif + path = g_build_filename(prefix ? prefix : "", PLUGINDATADIR, filename, NULL); + g_free(prefix); + return path; +} + void plugin_init(G_GNUC_UNUSED GeanyData *gdata) { GeanyKeyGroup *scope_key_group; - char *gladefile = g_build_filename(PLUGINDATADIR, "scope.glade", NULL); + char *gladefile = get_data_dir_path("scope.glade"); GError *gerror = NULL; GtkWidget *menubar1 = ui_lookup_widget(geany->main_widgets->window, "menubar1"); guint item;
-------------- This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).