diff options
| -rw-r--r-- | catgirl.1 | 10 | ||||
| -rw-r--r-- | command.c | 24 | 
2 files changed, 33 insertions, 1 deletions
| @@ -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 @@ -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 },  }; | 
