summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--catgirl.110
-rw-r--r--command.c24
2 files changed, 33 insertions, 1 deletions
diff --git a/catgirl.1 b/catgirl.1
index 501163c..286d4f9 100644
--- a/catgirl.1
+++ b/catgirl.1
@@ -1,4 +1,4 @@
-.Dd March 25, 2020
+.Dd March 29, 2020
.Dt CATGIRL 1
.Os
.
@@ -330,6 +330,10 @@ Switch to window by number.
.Bl -tag -width Ds
.It Ic /ban Op Ar mask ...
List or ban masks from the channel.
+.It Ic /deop Ar nick ...
+Revoke channel operator status from users.
+.It Ic /devoice Ar nick ...
+Revoke voice from users in the channel.
.It Ic /except Op Ar mask ...
List or add masks to the channel ban exception list.
.It Ic /invex Op Ar mask ...
@@ -342,12 +346,16 @@ In the
.Sy <network>
window,
show or set user modes.
+.It Ic /op Ar nick ...
+Grant users channel operator status.
.It Ic /unban Ar mask ...
Unban masks from the channel.
.It Ic /unexcept Ar mask ...
Remove masks from the channel ban exception list.
.It Ic /uninvex Ar mask ...
Remove masks from the channel invite list.
+.It Ic /voice Ar nick ...
+Grant users voice in the channel.
.El
.
.Sh KEY BINDINGS
diff --git a/command.c b/command.c
index 7339574..4779a6a 100644
--- a/command.c
+++ b/command.c
@@ -206,6 +206,26 @@ static void channelListMode(uint id, char pm, char l, char *params) {
ircFormat("MODE %s %c%.*s %s\r\n", idNames[id], pm, count, modes, params);
}
+static void commandOp(uint id, char *params) {
+ if (!params) return;
+ channelListMode(id, '+', 'o', params);
+}
+
+static void commandDeop(uint id, char *params) {
+ if (!params) return;
+ channelListMode(id, '-', 'o', params);
+}
+
+static void commandVoice(uint id, char *params) {
+ if (!params) return;
+ channelListMode(id, '+', 'v', params);
+}
+
+static void commandDevoice(uint id, char *params) {
+ if (!params) return;
+ channelListMode(id, '-', 'v', params);
+}
+
static void commandBan(uint id, char *params) {
if (params) {
channelListMode(id, '+', 'b', params);
@@ -379,6 +399,8 @@ static const struct Handler {
{ "/copy", commandCopy, Restricted },
{ "/cs", commandCS, 0 },
{ "/debug", commandDebug, Restricted },
+ { "/deop", commandDeop, 0 },
+ { "/devoice", commandDevoice, 0 },
{ "/except", commandExcept, 0 },
{ "/exec", commandExec, Multiline | Restricted },
{ "/help", commandHelp, 0 },
@@ -395,6 +417,7 @@ static const struct Handler {
{ "/nick", commandNick, 0 },
{ "/notice", commandNotice, Multiline },
{ "/ns", commandNS, 0 },
+ { "/op", commandOp, 0 },
{ "/open", commandOpen, Restricted },
{ "/part", commandPart, 0 },
{ "/query", commandQuery, Restricted },
@@ -405,6 +428,7 @@ static const struct Handler {
{ "/unban", commandUnban, 0 },
{ "/unexcept", commandUnexcept, 0 },
{ "/uninvex", commandUninvex, 0 },
+ { "/voice", commandVoice, 0 },
{ "/whois", commandWhois, 0 },
{ "/window", commandWindow, 0 },
};