protocols/ircv3/purpleircv3commands.h

Mon, 02 Dec 2024 20:53:56 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Mon, 02 Dec 2024 20:53:56 -0600
changeset 43097
757575456cc2
child 43126
5b5a883528e0
permissions
-rw-r--r--

IRCv3: Implement the query command

Testing Done:
Used `/query pidgin2` from a status window and verified it opened a conversation that worked to message `pidgin2` by sending messages in the new window. Also used the status window to send `/query pidgin2 hiya!` and verified that the conversation was created and the message was sent to `pidgin2` and that additional messages could be sent from both sides.

I also used `/query #pidgin testing against a channel` when I was already in `#pidgin` and verified the message was sent. When using a channel that doesn't exist, the conversation gets created but doesn't work. We should handle this better at some point when we have labelled responses as right now we can't detect the error.

Finally, called in the turtles.

Reviewed at https://reviews.imfreedom.org/r/3687/

43097
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
1 /*
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
4 *
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7 * source distribution.
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
8 *
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
9 * This library is free software; you can redistribute it and/or modify
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
12 * (at your option) any later version.
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
13 *
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
14 * This library is distributed in the hope that it will be useful,
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
17 * GNU General Public License for more details.
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
18 *
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
20 * along with this library; if not, see <https://www.gnu.org/licenses/>.
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
21 */
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
22
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
23 #if !defined(PURPLE_IRCV3_GLOBAL_HEADER_INSIDE) && \
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
24 !defined(PURPLE_IRCV3_COMPILATION)
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
25 # error "only <libpurple/protocols/ircv3.h> may be included directly"
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
26 #endif
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
27
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
28 #ifndef PURPLE_IRCV3_COMMANDS_H
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
29 #define PURPLE_IRCV3_COMMANDS_H
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
30
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
31 #include <glib.h>
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
32
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
33 #include <purple.h>
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
34
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
35 G_BEGIN_DECLS
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
36
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 G_GNUC_INTERNAL gboolean purple_ircv3_command_query_cb(PurpleCommand *command, PurpleConversation *conversation, GStrv params, gpointer data);
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39 G_END_DECLS
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
40
757575456cc2 IRCv3: Implement the query command
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
41 #endif /* PURPLE_IRCV3_COMMANDS_H */

mercurial