Add topic support - irc - Unnamed repository; edit this file 'description' to name the repository.
(HTM) git clone git://vernunftzentrum.de/irc.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
---
(DIR) commit 8ba4cb0d85f3f438fb3768c0339c43bd16feb6c2
(DIR) parent 43b931057b97856c20c11c587c3e0f5ac55aad7c
(HTM) Author: Christian Kellermann <ckeen@pestilenz.org>
Date: Wed, 28 Mar 2018 21:55:04 +0200
Add topic support
Diffstat:
irc.c | 14 ++++++++++++++
1 file changed, 14 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/irc.c b/irc.c
@@ -491,6 +491,13 @@ scmd(char *usr, char *cmd, char *par, char *data)
chl[s].name[0] = 0;
strncat(chl[s].name, fch, ChanLen - 1);
tdrawbar();
+ } else if (!strcmp(cmd, "TOPIC") || !strcmp(cmd, "332")
+ || !strcmp(cmd, "331")) {
+ char *chan = !strcmp(cmd, "TOPIC") ? pm : strtok(0, " ");
+ if (!data || !pm || !chan)
+ return;
+ pushf(chfind(chan), "Topic for %s: %s", chan, data);
+ tredraw();
} else if (!strcmp(cmd, "471") || !strcmp(cmd, "473")
|| !strcmp(cmd, "474") || !strcmp(cmd, "475")) { /* Join error. */
if ((pm = strtok(0, " "))) {
@@ -574,6 +581,13 @@ uparse(char *m)
if (p[1])
sndf("%s", &p[2]);
return;
+ case 't':
+ p = p + 1 + (p[1]==' ');
+ if (*p == '\0')
+ sndf("TOPIC %s", chl[ch].name);
+ else
+ sndf("TOPIC %s :%s", chl[ch].name, p);
+ return;
case 'q': /* Quit. */
quit = 1;
return;