diff options
author | Sebastien Helleu <flashcode@flashtux.org> | 2012-05-08 15:05:53 +0200 |
---|---|---|
committer | Sebastien Helleu <flashcode@flashtux.org> | 2012-05-08 15:05:53 +0200 |
commit | 370a5ccb6198f6e9b1ee505e915b051885915b57 (patch) | |
tree | 5af0babd6666e5189e5c5f3132fab8e6bbaa9c14 | |
parent | doc: fix typo in python example of infolist_get (plugin API reference) (diff) | |
download | weechat-370a5ccb6198f6e9b1ee505e915b051885915b57.tar.xz weechat-370a5ccb6198f6e9b1ee505e915b051885915b57.zip |
irc: add option "fakerecv" for command /server to simulate a received IRC message (not documented, for debug only)
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | src/plugins/irc/irc-command.c | 28 | ||||
-rw-r--r-- | src/plugins/irc/irc-server.h | 3 |
3 files changed, 32 insertions, 3 deletions
@@ -1,7 +1,7 @@ WeeChat ChangeLog ================= Sébastien Helleu <flashcode@flashtux.org> -v0.3.8-dev, 2012-05-04 +v0.3.8-dev, 2012-05-08 Version 0.3.8 (under dev!) @@ -31,6 +31,8 @@ Version 0.3.8 (under dev!) * scripts: fix type of argument "rc" in callback of hook_process (from string to integer) * guile: add missing function "hook_process_hashtable" in API +* irc: add option "fakerecv" for command /server to simulate a received IRC + message (not documented, for debug only) * irc: hide everything after "identify" or "register" in messages to nickserv when option irc.look.hide_nickserv_pwd is on (bug #36362) * irc: add option "-pending" for command /disconnect (cancel auto-reconnection diff --git a/src/plugins/irc/irc-command.c b/src/plugins/irc/irc-command.c index 1e2e2a2a1..11bec2b98 100644 --- a/src/plugins/irc/irc-command.c +++ b/src/plugins/irc/irc-command.c @@ -3763,9 +3763,9 @@ int irc_command_server (void *data, struct t_gui_buffer *buffer, int argc, char **argv, char **argv_eol) { - int i, detailed_list, one_server_found; + int i, detailed_list, one_server_found, length; struct t_irc_server *ptr_server2, *server_found, *new_server; - char *server_name; + char *server_name, *message; IRC_BUFFER_GET_SERVER_CHANNEL(buffer); @@ -4106,6 +4106,30 @@ irc_command_server (void *data, struct t_gui_buffer *buffer, int argc, return WEECHAT_RC_OK; } + if (weechat_strcasecmp (argv[1], "fakerecv") == 0) + { + if (argc < 3) + { + IRC_COMMAND_TOO_FEW_ARGUMENTS(NULL, "server fakerecv"); + } + IRC_COMMAND_CHECK_SERVER("server fakerecv", 1); + length = strlen (argv_eol[2]); + if (length > 0) + { + /* allocate length + 2 (CR-LF) + 1 (final '\0') */ + message = malloc (length + 2 + 1); + if (message) + { + strcpy (message, argv_eol[2]); + strcat (message, "\r\n"); + irc_server_msgq_add_buffer (ptr_server, message); + irc_server_msgq_flush (); + free (message); + } + } + return WEECHAT_RC_OK; + } + weechat_printf (NULL, _("%s%s: unknown option for \"%s\" command"), weechat_prefix ("error"), IRC_PLUGIN_NAME, "server"); diff --git a/src/plugins/irc/irc-server.h b/src/plugins/irc/irc-server.h index 8f8c4b3a2..e8e077d53 100644 --- a/src/plugins/irc/irc-server.h +++ b/src/plugins/irc/irc-server.h @@ -267,6 +267,9 @@ extern struct t_hashtable *irc_server_sendf (struct t_irc_server *server, int flags, const char *tags, const char *format, ...); +extern void irc_server_msgq_add_buffer (struct t_irc_server *server, + const char *buffer); +extern void irc_server_msgq_flush (); extern void irc_server_set_buffer_title (struct t_irc_server *server); extern struct t_gui_buffer *irc_server_create_buffer (struct t_irc_server *server); extern int irc_server_connect (struct t_irc_server *server); |