From 80c1e8f8eb016fff43e6b1f1bbf6aa512d321b16 Mon Sep 17 00:00:00 2001
From: Přemysl Eric Janouch
Date: Thu, 3 Jun 2021 00:07:11 +0200
Subject: degesch: make /deop and /devoice default to self
It's pretty annoying to type `/mode -o `, for little reason.
---
NEWS | 2 ++
degesch.c | 16 +++++++++++-----
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[] =
"...",
handle_command_op, HANDLER_SERVER | HANDLER_CHANNEL_FIRST },
{ "deop", "Remove channel operator status",
- "...",
+ "[...]",
handle_command_deop, HANDLER_SERVER | HANDLER_CHANNEL_FIRST },
{ "voice", "Give voice",
"...",
handle_command_voice, HANDLER_SERVER | HANDLER_CHANNEL_FIRST },
{ "devoice", "Remove voice",
- "...",
+ "[...]",
handle_command_devoice, HANDLER_SERVER | HANDLER_CHANNEL_FIRST },
{ "mode", "Change mode",
--
cgit v1.2.3-70-g09d2