Add /list
parent
6223c9c8f8
commit
3d1f7d8065
|
@ -123,6 +123,9 @@ may be used to abbreviate a command.
|
|||
.It Ic /join Ar chan Op Ar key
|
||||
Join a channel.
|
||||
.
|
||||
.It Ic /list Op Ar chan
|
||||
List channels.
|
||||
.
|
||||
.It Ic /me Op Ar action
|
||||
Send an action message.
|
||||
.
|
||||
|
|
33
handle.c
33
handle.c
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (C) 2018 Curtis McEnroe <june@causal.agency>
|
||||
/* Copyright (C) 2018, 2019 Curtis McEnroe <june@causal.agency>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Affero General Public License as published by
|
||||
|
@ -157,6 +157,35 @@ static void handleReplyMOTD(char *prefix, char *params) {
|
|||
uiFmt(TagStatus, UICold, "%s", mesg);
|
||||
}
|
||||
|
||||
static void handleReplyList(char *prefix, char *params) {
|
||||
char *chan, *count, *topic;
|
||||
parse(prefix, NULL, NULL, NULL, params, 4, 0, NULL, &chan, &count, &topic);
|
||||
if (topic[0] == '[') {
|
||||
char *skip = strstr(topic, "] ");
|
||||
if (skip) topic = &skip[2];
|
||||
}
|
||||
const char *people = (strcmp(count, "1") ? "people" : "person");
|
||||
if (topic[0]) {
|
||||
uiFmt(
|
||||
TagStatus, UIWarm,
|
||||
"You see %s %s in \3%d%s\3 under the banner, \"%s\"",
|
||||
count, people, colorGen(chan), chan, topic
|
||||
);
|
||||
} else {
|
||||
uiFmt(
|
||||
TagStatus, UIWarm,
|
||||
"You see %s %s in \3%d%s\3",
|
||||
count, people, colorGen(chan), chan
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
static void handleReplyListEnd(char *prefix, char *params) {
|
||||
(void)prefix;
|
||||
(void)params;
|
||||
uiLog(TagStatus, UICold, L"You don't see anyone else");
|
||||
}
|
||||
|
||||
static enum IRCColor whoisColor;
|
||||
static void handleReplyWhoisUser(char *prefix, char *params) {
|
||||
char *nick, *user, *host, *real;
|
||||
|
@ -499,6 +528,8 @@ static const struct {
|
|||
{ "315", handleReplyEndOfWho },
|
||||
{ "317", handleReplyWhoisIdle },
|
||||
{ "319", handleReplyWhoisChannels },
|
||||
{ "322", handleReplyList },
|
||||
{ "323", handleReplyListEnd },
|
||||
{ "332", handleReplyTopic },
|
||||
{ "352", handleReplyWho },
|
||||
{ "366", handleReplyEndOfNames },
|
||||
|
|
11
input.c
11
input.c
|
@ -50,6 +50,16 @@ static void inputJoin(struct Tag tag, char *params) {
|
|||
}
|
||||
}
|
||||
|
||||
static void inputList(struct Tag tag, char *params) {
|
||||
(void)tag;
|
||||
char *chan = strsep(¶ms, " ");
|
||||
if (chan) {
|
||||
ircFmt("LIST %s\r\n", chan);
|
||||
} else {
|
||||
ircFmt("LIST\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
static void inputMe(struct Tag tag, char *params) {
|
||||
privmsg(tag, true, params ? params : "");
|
||||
}
|
||||
|
@ -189,6 +199,7 @@ static const struct {
|
|||
{ "/close", inputClose },
|
||||
{ "/help", inputMan },
|
||||
{ "/join", inputJoin },
|
||||
{ "/list", inputList },
|
||||
{ "/man", inputMan },
|
||||
{ "/me", inputMe },
|
||||
{ "/move", inputMove },
|
||||
|
|
Loading…
Reference in New Issue