diff --git a/catgirl.1 b/catgirl.1 index 7e39408..ccb3745 100644 --- a/catgirl.1 +++ b/catgirl.1 @@ -1,4 +1,4 @@ -.Dd June 18, 2021 +.Dd July 2, 2021 .Dt CATGIRL 1 .Os . @@ -421,8 +421,10 @@ Set or clear your away status. Send a command to ChanServ. .It Ic /invite Ar nick Invite a user to the channel. -.It Ic /join Ar channel Op Ar key -Join a channel. +.It Ic /join Op Ar channel Op Ar key +Join the named channel, +the current channel, +or the channel you've been invited to. .It Ic /list Op Ar channel List channels. .It Ic /me Op Ar action diff --git a/chat.h b/chat.h index a4c7670..9ad298f 100644 --- a/chat.h +++ b/chat.h @@ -198,6 +198,7 @@ extern struct Self { char *user; char *host; enum Color color; + char *invited; char *quit; } self; diff --git a/command.c b/command.c index 1193615..3392fa9 100644 --- a/command.c +++ b/command.c @@ -149,6 +149,7 @@ static void commandMsg(uint id, char *params) { } static void commandJoin(uint id, char *params) { + if (!params && id == Network) params = self.invited; if (!params) params = idNames[id]; uint count = 1; for (char *ch = params; *ch && *ch != ' '; ++ch) { diff --git a/handle.c b/handle.c index bfe6e8c..a8f054c 100644 --- a/handle.c +++ b/handle.c @@ -479,6 +479,7 @@ static void handleQuit(struct Message *msg) { static void handleInvite(struct Message *msg) { require(msg, true, 2); if (!strcmp(msg->params[0], self.nick)) { + set(&self.invited, msg->params[1]); uiFormat( Network, filterCheck(Hot, Network, msg), tagTime(msg), "\3%02d%s\3\tinvites you to \3%02d%s\3",