summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/common/outbound.c6
-rw-r--r--src/common/plugin.c4
-rw-r--r--src/common/plugin.h8
-rw-r--r--src/fe-gtk/plugingui.c4
4 files changed, 15 insertions, 7 deletions
diff --git a/src/common/outbound.c b/src/common/outbound.c
index fe6da8c8..96fb7fe4 100644
--- a/src/common/outbound.c
+++ b/src/common/outbound.c
@@ -2610,7 +2610,7 @@ cmd_load (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 	}
 
 #ifdef USE_PLUGIN
-	if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
+	if (g_str_has_suffix (word[2], "."PLUGIN_SUFFIX))
 	{
 		arg = NULL;
 		if (word_eol[3][0])
@@ -3616,7 +3616,7 @@ cmd_unload (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 #ifdef USE_PLUGIN
 	gboolean by_file = FALSE;
 
-	if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
+	if (g_str_has_suffix (word[2], "."PLUGIN_SUFFIX))
 		by_file = TRUE;
 
 	switch (plugin_kill (word[2], by_file))
@@ -3641,7 +3641,7 @@ cmd_reload (struct session *sess, char *tbuf, char *word[], char *word_eol[])
 #ifdef USE_PLUGIN
 	gboolean by_file = FALSE;
 
-	if (g_str_has_suffix (word[2], "."G_MODULE_SUFFIX))
+	if (g_str_has_suffix (word[2], "."PLUGIN_SUFFIX))
 		by_file = TRUE;
 
 	switch (plugin_reload (sess, word[2], by_file))
diff --git a/src/common/plugin.c b/src/common/plugin.c
index 3ad3c558..1db11f35 100644
--- a/src/common/plugin.c
+++ b/src/common/plugin.c
@@ -464,10 +464,10 @@ plugin_auto_load (session *sess)
 	for_files (lib_dir, "hcwinamp.dll", plugin_auto_load_cb);
 	for_files (lib_dir, "hcsysinfo.dll", plugin_auto_load_cb);
 #else
-	for_files (lib_dir, "*."G_MODULE_SUFFIX, plugin_auto_load_cb);
+	for_files (lib_dir, "*."PLUGIN_SUFFIX, plugin_auto_load_cb);
 #endif
 
-	for_files (sub_dir, "*."G_MODULE_SUFFIX, plugin_auto_load_cb);
+	for_files (sub_dir, "*."PLUGIN_SUFFIX, plugin_auto_load_cb);
 
 	g_free (sub_dir);
 }
diff --git a/src/common/plugin.h b/src/common/plugin.h
index 76ce97a3..fb7da831 100644
--- a/src/common/plugin.h
+++ b/src/common/plugin.h
@@ -181,4 +181,12 @@ int plugin_show_help (session *sess, char *cmd);
 void plugin_command_foreach (session *sess, void *userdata, void (*cb) (session *sess, void *userdata, char *name, char *usage));
 session *plugin_find_context (const char *servname, const char *channel, server *current_server);
 
+/* On macOS, G_MODULE_SUFFIX says "so" but meson uses "dylib"
+ * https://github.com/mesonbuild/meson/issues/1160 */
+#if defined(__APPLE__)
+#  define PLUGIN_SUFFIX "dylib"
+#else
+#  define PLUGIN_SUFFIX G_MODULE_SUFFIX
+#endif
+
 #endif
diff --git a/src/fe-gtk/plugingui.c b/src/fe-gtk/plugingui.c
index 4399cd71..83bb745f 100644
--- a/src/fe-gtk/plugingui.c
+++ b/src/fe-gtk/plugingui.c
@@ -162,7 +162,7 @@ plugingui_load (void)
 	char *sub_dir = g_build_filename (get_xdir(), "addons", NULL);
 
 	gtkutil_file_req (_("Select a Plugin or Script to load"), plugingui_load_cb, current_sess,
-							sub_dir, "*."G_MODULE_SUFFIX";*.lua;*.pl;*.py;*.tcl;*.js", FRF_FILTERISINITIAL|FRF_EXTENSIONS);
+							sub_dir, "*."PLUGIN_SUFFIX";*.lua;*.pl;*.py;*.tcl;*.js", FRF_FILTERISINITIAL|FRF_EXTENSIONS);
 
 	g_free (sub_dir);
 }
@@ -185,7 +185,7 @@ plugingui_unload (GtkWidget * wid, gpointer unused)
 	                                    FILEPATH_COLUMN, &file, -1))
 		return;
 
-	if (g_str_has_suffix (file, "."G_MODULE_SUFFIX))
+	if (g_str_has_suffix (file, "."PLUGIN_SUFFIX))
 	{
 		if (plugin_kill (modname, FALSE) == 2)
 			fe_message (_("That plugin is refusing to unload.\n"), FE_MSG_ERROR);