From 906440968e658629a3722ebc8d8405cbbb7b4d1d Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Tue, 2 Jul 2019 18:40:06 -0400 Subject: [PATCH] Add -k option for joining with keys --- catgirl.1 | 7 +++++++ chat.c | 3 ++- chat.h | 1 + handle.c | 6 +++++- 4 files changed, 15 insertions(+), 2 deletions(-) diff --git a/catgirl.1 b/catgirl.1 index 4d8176f..93ed604 100644 --- a/catgirl.1 +++ b/catgirl.1 @@ -13,6 +13,7 @@ .Op Fl a Ar auth .Op Fl h Ar host .Op Fl j Ar chan +.Op Fl k Ar keys .Op Fl l Ar path .Op Fl n Ar nick .Op Fl p Ar port @@ -58,6 +59,12 @@ after connecting. .Ar chan may be a comma-separated list. . +.It Fl k Ar keys +Set keys for channels in +.Fl j . +.Ar keys +may be a comma-separated list. +. .It Fl l Ar path Log messages to subdirectories of diff --git a/chat.c b/chat.c index 2ec20bd..a9677cf 100644 --- a/chat.c +++ b/chat.c @@ -53,13 +53,14 @@ int main(int argc, char *argv[]) { setlocale(LC_CTYPE, ""); int opt; - while (0 < (opt = getopt(argc, argv, "NW:a:h:j:l:n:p:r:u:vw:"))) { + while (0 < (opt = getopt(argc, argv, "NW:a:h:j:k:l:n:p:r:u:vw:"))) { switch (opt) { break; case 'N': self.notify = true; break; case 'W': self.webp = dupe(optarg); break; case 'a': self.auth = dupe(optarg); break; case 'h': self.host = dupe(optarg); break; case 'j': self.join = dupe(optarg); + break; case 'k': self.keys = dupe(optarg); break; case 'l': logOpen(optarg); break; case 'n': self.nick = dupe(optarg); break; case 'p': self.port = dupe(optarg); diff --git a/chat.h b/chat.h index a3ce3f9..71a96ff 100644 --- a/chat.h +++ b/chat.h @@ -43,6 +43,7 @@ struct { char *user; char *real; char *join; + char *keys; bool raw; bool notify; bool quit; diff --git a/handle.c b/handle.c index a46c149..4f9015c 100644 --- a/handle.c +++ b/handle.c @@ -138,7 +138,11 @@ static void handleReplyWelcome(char *prefix, char *params) { self.nick = strdup(nick); if (!self.nick) err(EX_OSERR, "strdup"); } - if (self.join) ircFmt("JOIN %s\r\n", self.join); + if (self.join && self.keys) { + ircFmt("JOIN %s %s\r\n", self.join, self.keys); + } else if (self.join) { + ircFmt("JOIN %s\r\n", self.join); + } tabTouch(TagStatus, self.nick); uiLog(TagStatus, UICold, L"You have arrived");