pidgin/pidgin

Remove the pidgin commands API

10 days ago, Gary Kramlich
c739a460a784
Parents 3e35dd3a0b61
Children 44125b8e3b27
Remove the pidgin commands API

The commands API needs a lot of overhaul and there's not much here to salvage
at least code wise.

Testing Done:
Called in the turtles.

Reviewed at https://reviews.imfreedom.org/r/3140/
--- a/pidgin/meson.build Wed Apr 24 00:58:00 2024 -0500
+++ b/pidgin/meson.build Wed Apr 24 01:00:06 2024 -0500
@@ -25,7 +25,6 @@
'pidginavatar.c',
'pidginchanneljoindialog.c',
'pidgincolor.c',
- 'pidgincommands.c',
'pidgincontactinfomenu.c',
'pidgincontactlist.c',
'pidginconversation.c',
@@ -196,7 +195,7 @@
libpidgin_inc = include_directories('.')
libpidgin = shared_library('pidgin3',
- libpidgin_SOURCES + libpidgin_built_sources + libpidgin_built_headers + ['pidginprivate.h'],
+ libpidgin_SOURCES + libpidgin_built_sources + libpidgin_built_headers,
package_revision,
c_args : ['-DPIDGIN_COMPILATION', '-DG_LOG_USE_STRUCTURED', '-DG_LOG_DOMAIN="Pidgin"'],
gnu_symbol_visibility : 'hidden',
--- a/pidgin/pidgincommands.c Wed Apr 24 00:58:00 2024 -0500
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-/*
- * Pidgin - Internet Messenger
- * Copyright (C) Pidgin Developers <devel@pidgin.im>
- *
- * Pidgin is the legal property of its developers, whose names are too numerous
- * to list here. Please refer to the COPYRIGHT file distributed with this
- * source distribution.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <https://www.gnu.org/licenses/>.
- */
-
-#include <glib/gi18n-lib.h>
-
-#include "pidginprivate.h"
-
-/******************************************************************************
- * Command Implementations
- *****************************************************************************/
-static PurpleCmdRet
-say_command_cb(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
- char **args, G_GNUC_UNUSED char **error,
- G_GNUC_UNUSED gpointer data)
-{
- purple_conversation_send(conv, args[0]);
-
- return PURPLE_CMD_RET_OK;
-}
-
-static PurpleCmdRet
-me_command_cb(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
- char **args, G_GNUC_UNUSED char **error,
- G_GNUC_UNUSED gpointer data)
-{
- char *tmp;
-
- tmp = g_strdup_printf("/me %s", args[0]);
- purple_conversation_send(conv, tmp);
-
- g_free(tmp);
- return PURPLE_CMD_RET_OK;
-}
-
-static PurpleCmdRet
-debug_command_cb(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
- char **args, G_GNUC_UNUSED char **error,
- G_GNUC_UNUSED gpointer data)
-{
- char *tmp, *markup;
-
- if (!g_ascii_strcasecmp(args[0], "version")) {
- tmp = g_strdup_printf("Using Pidgin v%s with libpurple v%s.",
- DISPLAY_VERSION, purple_core_get_version());
- } else if (!g_ascii_strcasecmp(args[0], "plugins")) {
- /* Show all the loaded plugins, including plugins marked internal.
- * This is intentional, since third party protocols are often sources of bugs, and some
- * plugin loaders can also be buggy.
- */
- GString *str = g_string_new("Loaded Plugins: ");
- const GList *plugins = purple_plugins_get_loaded();
- if (plugins) {
- for (; plugins; plugins = plugins->next) {
- GPluginPluginInfo *info = GPLUGIN_PLUGIN_INFO(
- purple_plugin_get_info(
- PURPLE_PLUGIN(plugins->data)));
- str = g_string_append(
- str,
- gplugin_plugin_info_get_name(info));
-
- if (plugins->next)
- str = g_string_append(str, ", ");
- }
- } else {
- str = g_string_append(str, "(none)");
- }
-
- tmp = g_string_free(str, FALSE);
- } else if (!g_ascii_strcasecmp(args[0], "unsafe")) {
- if (purple_debug_is_unsafe()) {
- purple_debug_set_unsafe(FALSE);
- purple_conversation_write_system_message(conv,
- _("Unsafe debugging is now disabled."),
- PURPLE_MESSAGE_NO_LOG);
- } else {
- purple_debug_set_unsafe(TRUE);
- purple_conversation_write_system_message(conv,
- _("Unsafe debugging is now enabled."),
- PURPLE_MESSAGE_NO_LOG);
- }
-
- return PURPLE_CMD_RET_OK;
- } else if (!g_ascii_strcasecmp(args[0], "verbose")) {
- if (purple_debug_is_verbose()) {
- purple_debug_set_verbose(FALSE);
- purple_conversation_write_system_message(conv,
- _("Verbose debugging is now disabled."),
- PURPLE_MESSAGE_NO_LOG);
- } else {
- purple_debug_set_verbose(TRUE);
- purple_conversation_write_system_message(conv,
- _("Verbose debugging is now enabled."),
- PURPLE_MESSAGE_NO_LOG);
- }
-
- return PURPLE_CMD_RET_OK;
- } else {
- purple_conversation_write_system_message(conv,
- _("Supported debug options are: plugins, version, unsafe, verbose"),
- PURPLE_MESSAGE_NO_LOG);
- return PURPLE_CMD_RET_OK;
- }
-
- markup = g_markup_escape_text(tmp, -1);
- purple_conversation_send(conv, markup);
-
- g_free(tmp);
- g_free(markup);
- return PURPLE_CMD_RET_OK;
-}
-
-static PurpleCmdRet
-help_command_cb(PurpleConversation *conv, G_GNUC_UNUSED const char *cmd,
- char **args, G_GNUC_UNUSED char **error,
- G_GNUC_UNUSED gpointer data)
-{
- GList *l, *text;
- GString *s;
-
- if (args[0] != NULL) {
- s = g_string_new("");
- text = purple_cmd_help(conv, args[0]);
-
- if (text) {
- for (l = text; l; l = l->next)
- if (l->next)
- g_string_append_printf(s, "%s\n", (char *)l->data);
- else
- g_string_append_printf(s, "%s", (char *)l->data);
- } else {
- g_string_append(s, _("No such command (in this context)."));
- }
- } else {
- s = g_string_new(_("Use \"/help &lt;command&gt;\" for help with a "
- "specific command.<br/>The following commands are available "
- "in this context:<br/>"));
-
- text = purple_cmd_list(conv);
- for (l = text; l; l = l->next)
- if (l->next)
- g_string_append_printf(s, "%s, ", (char *)l->data);
- else
- g_string_append_printf(s, "%s.", (char *)l->data);
- g_list_free(text);
- }
-
- purple_conversation_write_system_message(conv, s->str, PURPLE_MESSAGE_NO_LOG);
- g_string_free(s, TRUE);
-
- return PURPLE_CMD_RET_OK;
-}
-
-/******************************************************************************
- * Public API
- *****************************************************************************/
-void
-pidgin_commands_init(void) {
- purple_cmd_register("say", "S", PURPLE_CMD_P_DEFAULT,
- PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
- say_command_cb, _("say &lt;message&gt;: Send a message normally as if you weren't using a command."), NULL);
- purple_cmd_register("me", "S", PURPLE_CMD_P_DEFAULT,
- PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
- me_command_cb, _("me &lt;action&gt;: Send an IRC style action to a buddy or chat."), NULL);
- purple_cmd_register("debug", "w", PURPLE_CMD_P_DEFAULT,
- PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM, NULL,
- debug_command_cb, _("debug &lt;option&gt;: Send various debug information to the current conversation."), NULL);
- purple_cmd_register("help", "w", PURPLE_CMD_P_DEFAULT,
- PURPLE_CMD_FLAG_CHAT | PURPLE_CMD_FLAG_IM | PURPLE_CMD_FLAG_ALLOW_WRONG_ARGS, NULL,
- help_command_cb, _("help &lt;command&gt;: Help on a specific command."), NULL);
-}
-
-void
-pidgin_commands_uninit(void) {
-}
--- a/pidgin/pidginprivate.h Wed Apr 24 00:58:00 2024 -0500
+++ b/pidgin/pidginprivate.h Wed Apr 24 01:00:06 2024 -0500
@@ -35,30 +35,6 @@
G_BEGIN_DECLS
-/*
- * pidgin_commands_init:
- *
- * Initializes the default conversation commands for Pidgin.
- *
- * This should only be called internally from Pidgin.
- *
- * Since: 3.0
- */
-PIDGIN_AVAILABLE_IN_3_0
-void pidgin_commands_init(void);
-
-/*
- * pidgin_commands_uninit:
- *
- * Uninitializes the default conversation commands for Pidgin.
- *
- * This should only be called internally from Pidgin.
- *
- * Since: 3.0
- */
-PIDGIN_AVAILABLE_IN_3_0
-void pidgin_commands_uninit(void);
-
G_END_DECLS
#endif /* PIDGIN_PRIVATE_H */
--- a/pidgin/pidginui.c Wed Apr 24 00:58:00 2024 -0500
+++ b/pidgin/pidginui.c Wed Apr 24 01:00:06 2024 -0500
@@ -129,7 +129,6 @@
purple_whiteboard_set_ui_ops(pidgin_whiteboard_get_ui_ops());
pidgin_request_init();
- pidgin_commands_init();
pidgin_medias_init();
pidgin_notify_init();
@@ -142,7 +141,6 @@
* (e.g., the debug window), or they may access things after they are
* shut down. */
pidgin_notify_uninit();
- pidgin_commands_uninit();
pidgin_request_uninit();
pidgin_debug_window_hide();
pidgin_debug_uninit();
--- a/po/POTFILES.in Wed Apr 24 00:58:00 2024 -0500
+++ b/po/POTFILES.in Wed Apr 24 01:00:06 2024 -0500
@@ -121,7 +121,6 @@
pidgin/pidginavatar.c
pidgin/pidgin.c
pidgin/pidgincolor.c
-pidgin/pidgincommands.c
pidgin/pidgincontactinfomenu.c
pidgin/pidgindebug.c
pidgin/pidgindisplaywindow.c