summaryrefslogtreecommitdiff
path: root/src/fe-common/irc/fe-irc-commands.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/fe-common/irc/fe-irc-commands.c')
-rw-r--r--src/fe-common/irc/fe-irc-commands.c26
1 files changed, 23 insertions, 3 deletions
diff --git a/src/fe-common/irc/fe-irc-commands.c b/src/fe-common/irc/fe-irc-commands.c
index c9d3e7af..2c94c76d 100644
--- a/src/fe-common/irc/fe-irc-commands.c
+++ b/src/fe-common/irc/fe-irc-commands.c
@@ -1,7 +1,7 @@
/*
fe-irc-commands.c : irssi
- Copyright (C) 1999-2000 Timo Sirainen
+ Copyright (C) 1999-2001 Timo Sirainen
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
@@ -83,10 +83,10 @@ static void cmd_action(const char *data, IRC_SERVER_REC *server)
if (*target == '\0' || *text == '\0')
cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
- signal_emit("message irc own_action", 3, server, text, target);
+ irc_send_cmdv(server, "PRIVMSG %s :\001ACTION %s\001", target, text);
target = skip_target(target);
- irc_send_cmdv(server, "PRIVMSG %s :\001ACTION %s\001", target, text);
+ signal_emit("message irc own_action", 3, server, text, target);
cmd_params_free(free_arg);
}
@@ -186,6 +186,24 @@ static void cmd_wall(const char *data, IRC_SERVER_REC *server,
cmd_params_free(free_arg);
}
+static void cmd_wallchops(const char *data, IRC_SERVER_REC *server,
+ WI_ITEM_REC *item)
+{
+ char *channame, *msg;
+ void *free_arg;
+
+ CMD_IRC_SERVER(server);
+
+ if (!cmd_get_params(data, &free_arg, 2 | PARAM_FLAG_OPTCHAN |
+ PARAM_FLAG_GETREST, item, &channame, &msg))
+ return;
+ if (*msg == '\0') cmd_param_error(CMDERR_NOT_ENOUGH_PARAMS);
+
+ signal_emit("message irc own_wall", 3, server, msg, channame);
+
+ cmd_params_free(free_arg);
+}
+
static void bans_ask_channel(const char *channel, IRC_SERVER_REC *server,
WI_ITEM_REC *item)
{
@@ -444,6 +462,7 @@ void fe_irc_commands_init(void)
command_bind_irc("ctcp", NULL, (SIGNAL_FUNC) cmd_ctcp);
command_bind_irc("nctcp", NULL, (SIGNAL_FUNC) cmd_nctcp);
command_bind_irc("wall", NULL, (SIGNAL_FUNC) cmd_wall);
+ command_bind_irc("wallchops", NULL, (SIGNAL_FUNC) cmd_wallchops);
command_bind_irc("ban", NULL, (SIGNAL_FUNC) cmd_ban);
command_bind_irc("invitelist", NULL, (SIGNAL_FUNC) cmd_invitelist);
command_bind_irc("ver", NULL, (SIGNAL_FUNC) cmd_ver);
@@ -461,6 +480,7 @@ void fe_irc_commands_deinit(void)
command_unbind("ctcp", (SIGNAL_FUNC) cmd_ctcp);
command_unbind("nctcp", (SIGNAL_FUNC) cmd_nctcp);
command_unbind("wall", (SIGNAL_FUNC) cmd_wall);
+ command_unbind("wallchops", (SIGNAL_FUNC) cmd_wallchops);
command_unbind("ban", (SIGNAL_FUNC) cmd_ban);
command_unbind("invitelist", (SIGNAL_FUNC) cmd_invitelist);
command_unbind("ver", (SIGNAL_FUNC) cmd_ver);