summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--degesch.c16
2 files changed, 13 insertions, 5 deletions
diff --git a/NEWS b/NEWS
index 444d4fc..04979e7 100644
--- a/NEWS
+++ b/NEWS
@@ -9,6 +9,8 @@
* degesch: added support for IRCv3 chghost
+ * degesch: /deop and /devoice without arguments will use the client's user
+
* censor.lua: now stripping colours from censored messages;
their attributes are also configurable rather than always black on black
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",