summaryrefslogtreecommitdiff
path: root/degesch.c
diff options
context:
space:
mode:
Diffstat (limited to 'degesch.c')
-rw-r--r--degesch.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/degesch.c b/degesch.c
index e54bdd9..e96b21a 100644
--- a/degesch.c
+++ b/degesch.c
@@ -11920,11 +11920,17 @@ static bool
handle_command_channel_mode
(struct handler_args *a, bool adding, char mode_char)
{
- if (!*a->arguments)
- return false;
+ const char *targets = a->arguments;
+ if (!*targets)
+ {
+ if (adding)
+ return false;
+
+ targets = a->s->irc_user->nickname;
+ }
struct strv v = strv_make ();
- cstr_split (a->arguments, " ", true, &v);
+ cstr_split (targets, " ", true, &v);
mass_channel_mode (a->s, a->channel_name, adding, mode_char, &v);
strv_free (&v);
return true;
@@ -12031,13 +12037,13 @@ g_command_handlers[] =
"<nick>...",
handle_command_op, HANDLER_SERVER | HANDLER_CHANNEL_FIRST },
{ "deop", "Remove channel operator status",
- "<nick>...",
+ "[<nick>...]",
handle_command_deop, HANDLER_SERVER | HANDLER_CHANNEL_FIRST },
{ "voice", "Give voice",
"<nick>...",
handle_command_voice, HANDLER_SERVER | HANDLER_CHANNEL_FIRST },
{ "devoice", "Remove voice",
- "<nick>...",
+ "[<nick>...]",
handle_command_devoice, HANDLER_SERVER | HANDLER_CHANNEL_FIRST },
{ "mode", "Change mode",