From 2ae5b6b9ab2a528425c1c5265b04bb01a5246e29 Mon Sep 17 00:00:00 2001 From: Curtis McEnroe Date: Mon, 13 Aug 2018 13:49:03 -0400 Subject: Add /query, /part and /close Closing a channel before parting it is a bit weird, but if I send a PART on /close, it would get reopened again to show the part message. --- input.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'input.c') diff --git a/input.c b/input.c index 9f7eddf..2d9bc46 100644 --- a/input.c +++ b/input.c @@ -64,6 +64,21 @@ static void inputJoin(struct Tag tag, char *params) { ircFmt("JOIN %s\r\n", chan); } +static void inputPart(struct Tag tag, char *params) { + if (params) { + ircFmt("PART %s :%s\r\n", tag.name, params); + } else { + ircFmt("PART %s :Goodbye\r\n", tag.name); + } +} + +static void inputQuery(struct Tag tag, char *params) { + (void)tag; + char *nick = param("/query", ¶ms, "name"); + tabTouch(TAG_NONE, nick); + uiViewTag(tagFor(nick)); +} + static void inputWho(struct Tag tag, char *params) { (void)params; ircFmt("WHO %s\r\n", tag.name); @@ -113,15 +128,24 @@ static void inputView(struct Tag tag, char *params) { } } +static void inputClose(struct Tag tag, char *params) { + (void)params; + uiCloseTag(tag); + tabRemove(TAG_NONE, tag.name); +} + static const struct { const char *command; Handler handler; } COMMANDS[] = { + { "/close", inputClose }, { "/join", inputJoin }, { "/me", inputMe }, { "/names", inputWho }, { "/nick", inputNick }, { "/open", inputOpen }, + { "/part", inputPart }, + { "/query", inputQuery }, { "/quit", inputQuit }, { "/topic", inputTopic }, { "/url", inputUrl }, -- cgit 1.4.1-2-gfad0