iprivmsg support, thanks Evil_Bob! - irc - Unnamed repository; edit this file 'description' to name the repository. Err vernunftzentrum.de 70 hgit clone git://vernunftzentrum.de/irc.git URL:git://vernunftzentrum.de/irc.git vernunftzentrum.de 70 1Log /ckeen/repos/irc/log.gph vernunftzentrum.de 70 1Files /ckeen/repos/irc/files.gph vernunftzentrum.de 70 1Refs /ckeen/repos/irc/refs.gph vernunftzentrum.de 70 1README /ckeen/repos/irc/file/README.gph vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1commit 1d3c109eb02c514ecedda65cd1bda5256ef0c6c2 /ckeen/repos/irc/commit/1d3c109eb02c514ecedda65cd1bda5256ef0c6c2.gph vernunftzentrum.de 70 1parent 48569cdb36dd1a71f3221390b8f25e2ec62fecd7 /ckeen/repos/irc/commit/48569cdb36dd1a71f3221390b8f25e2ec62fecd7.gph vernunftzentrum.de 70 hAuthor: Quentin Carbonneaux URL:mailto:quentin.carbonneaux@yale.edu vernunftzentrum.de 70 iDate: Wed, 18 Jan 2017 15:12:44 -0500 Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iprivmsg support, thanks Evil_Bob! Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iDiffstat: Err vernunftzentrum.de 70 i irc.c | 23 +++++++++++++++++------ Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i1 file changed, 17 insertions(+), 6 deletions(-) Err vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1diff --git a/irc.c b/irc.c /ckeen/repos/irc/file/irc.c.gph vernunftzentrum.de 70 i@@ -238,7 +238,7 @@ dial(const char *host, const char *service) Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i static int Err vernunftzentrum.de 70 i-chadd(char *name) Err vernunftzentrum.de 70 i+chadd(char *name, int change) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i if (nch >= MaxChans || strlen(name) >= ChanLen) Err vernunftzentrum.de 70 i return -1; Err vernunftzentrum.de 70 i@@ -249,7 +249,9 @@ chadd(char *name) Err vernunftzentrum.de 70 i panic("Out of memory."); Err vernunftzentrum.de 70 i chl[nch].eol = chl[nch].buf; Err vernunftzentrum.de 70 i chl[nch].n = 0; Err vernunftzentrum.de 70 i- ch = nch++; Err vernunftzentrum.de 70 i+ if (change) Err vernunftzentrum.de 70 i+ ch = nch; Err vernunftzentrum.de 70 i+ nch++; Err vernunftzentrum.de 70 i tdrawbar(); Err vernunftzentrum.de 70 i return nch; Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i@@ -376,7 +378,7 @@ static void Err vernunftzentrum.de 70 i scmd(char *usr, char *cmd, char *par, char *data) Err vernunftzentrum.de 70 i { Err vernunftzentrum.de 70 i int s, c; Err vernunftzentrum.de 70 i- char *pm = strtok(par, " "); Err vernunftzentrum.de 70 i+ char *pm = strtok(par, " "), *chan; Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i if (!usr) Err vernunftzentrum.de 70 i usr = "?"; Err vernunftzentrum.de 70 i@@ -388,7 +390,16 @@ scmd(char *usr, char *cmd, char *par, char *data) Err vernunftzentrum.de 70 i if (!strcmp(cmd, "PRIVMSG")) { Err vernunftzentrum.de 70 i if (!pm || !data) Err vernunftzentrum.de 70 i return; Err vernunftzentrum.de 70 i- c = chfind(pm); Err vernunftzentrum.de 70 i+ if (strchr("&#!+.~", pm[0])) Err vernunftzentrum.de 70 i+ chan = pm; Err vernunftzentrum.de 70 i+ else Err vernunftzentrum.de 70 i+ chan = usr; Err vernunftzentrum.de 70 i+ if (!(c = chfind(chan))) { Err vernunftzentrum.de 70 i+ if (chadd(chan, 0) < 0) Err vernunftzentrum.de 70 i+ return; Err vernunftzentrum.de 70 i+ tredraw(); Err vernunftzentrum.de 70 i+ } Err vernunftzentrum.de 70 i+ c = chfind(chan); Err vernunftzentrum.de 70 i if (strcasestr(data, nick)) { Err vernunftzentrum.de 70 i pushf(c, PFMTHIGH, usr, data); Err vernunftzentrum.de 70 i chl[c].high |= ch != c; Err vernunftzentrum.de 70 i@@ -453,7 +464,7 @@ uparse(char *m) Err vernunftzentrum.de 70 i p += 1 + (p[1] == ' '); Err vernunftzentrum.de 70 i p = strtok(p, " "); Err vernunftzentrum.de 70 i while (p) { Err vernunftzentrum.de 70 i- if (chadd(p) < 0) Err vernunftzentrum.de 70 i+ if (chadd(p, 1) < 0) Err vernunftzentrum.de 70 i break; Err vernunftzentrum.de 70 i sndf("JOIN %s", p); Err vernunftzentrum.de 70 i p = strtok(0, " "); Err vernunftzentrum.de 70 i@@ -783,7 +794,7 @@ main(int argc, char *argv[]) Err vernunftzentrum.de 70 i user = "anonymous"; Err vernunftzentrum.de 70 i tinit(); Err vernunftzentrum.de 70 i sfd = dial(server, port); Err vernunftzentrum.de 70 i- chadd("*server*"); Err vernunftzentrum.de 70 i+ chadd("*server*", 1); Err vernunftzentrum.de 70 i sndf("NICK %s", nick); Err vernunftzentrum.de 70 i sndf("USER %s 8 * :%s", user, user); Err vernunftzentrum.de 70 i sndf("MODE %s +i", nick); Err vernunftzentrum.de 70 .