iSupport for nick changes with "n" command - 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 43b931057b97856c20c11c587c3e0f5ac55aad7c /ckeen/repos/irc/commit/43b931057b97856c20c11c587c3e0f5ac55aad7c.gph vernunftzentrum.de 70 1parent b9c8db79bf4902329e427dfae03e537f128df4c4 /ckeen/repos/irc/commit/b9c8db79bf4902329e427dfae03e537f128df4c4.gph vernunftzentrum.de 70 hAuthor: Christian Kellermann URL:mailto:ckeen@pestilenz.org vernunftzentrum.de 70 iDate: Wed, 28 Mar 2018 17:23:16 +0200 Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iSupport for nick changes with "n" command Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iDiffstat: Err vernunftzentrum.de 70 i irc.c | 26 ++++++++++++++++++++++++++ Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i1 file changed, 26 insertions(+), 0 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@@ -460,6 +460,19 @@ scmd(char *usr, char *cmd, char *par, char *data) Err vernunftzentrum.de 70 i chl[c].new = 1; Err vernunftzentrum.de 70 i tdrawbar(); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i+ } else if (!strcmp(cmd, "NICK")) { Err vernunftzentrum.de 70 i+ if (!data || !pm) Err vernunftzentrum.de 70 i+ return; Err vernunftzentrum.de 70 i+ if (!strcmp(usr, nick)){ Err vernunftzentrum.de 70 i+ for (int c=0; c < nch; c++){ Err vernunftzentrum.de 70 i+ pushf(c, "-!- you are now known as %s", data); Err vernunftzentrum.de 70 i+ } Err vernunftzentrum.de 70 i+ strlcpy(nick, data, sizeof(nick)); Err vernunftzentrum.de 70 i+ } else { Err vernunftzentrum.de 70 i+ pushf(chfind(pm), "%s - is now known as %s", usr, data); Err vernunftzentrum.de 70 i+ } Err vernunftzentrum.de 70 i+ tredraw(); Err vernunftzentrum.de 70 i+ return; Err vernunftzentrum.de 70 i } else if (!strcmp(cmd, "PING")) { Err vernunftzentrum.de 70 i sndf("PONG :%s", data ? data : "(null)"); Err vernunftzentrum.de 70 i } else if (!strcmp(cmd, "PART")) { Err vernunftzentrum.de 70 i@@ -485,6 +498,12 @@ scmd(char *usr, char *cmd, char *par, char *data) Err vernunftzentrum.de 70 i pushf(0, "-!- Cannot join channel %s (%s)", pm, cmd); Err vernunftzentrum.de 70 i tredraw(); Err vernunftzentrum.de 70 i } Err vernunftzentrum.de 70 i+ } else if( !strcmp(cmd, "432") || !strcmp(cmd, "433") Err vernunftzentrum.de 70 i+ || !strcmp(cmd, "436")) { /* Nick change failed. */ Err vernunftzentrum.de 70 i+ if (!data) Err vernunftzentrum.de 70 i+ return; Err vernunftzentrum.de 70 i+ pushf(0, "-!- Cannot change to nick %s: %s", pm, data); Err vernunftzentrum.de 70 i+ tredraw(); Err vernunftzentrum.de 70 i } else if (!strcmp(cmd, "QUIT")) { /* Commands we don't care about. */ Err vernunftzentrum.de 70 i return; Err vernunftzentrum.de 70 i } else if (!strcmp(cmd, "NOTICE") || !strcmp(cmd, "375") Err vernunftzentrum.de 70 i@@ -544,6 +563,13 @@ uparse(char *m) Err vernunftzentrum.de 70 i *p++ = 0; Err vernunftzentrum.de 70 i sndf("PRIVMSG %s :%s", m, p); Err vernunftzentrum.de 70 i return; Err vernunftzentrum.de 70 i+ case 'n': /* change nick */ Err vernunftzentrum.de 70 i+ p = p + 1 + (p[1]==' '); Err vernunftzentrum.de 70 i+ p = strtok(p, " "); Err vernunftzentrum.de 70 i+ if (p) { Err vernunftzentrum.de 70 i+ sndf("NICK %s", p); Err vernunftzentrum.de 70 i+ } Err vernunftzentrum.de 70 i+ return; Err vernunftzentrum.de 70 i case 'r': /* Send raw. */ Err vernunftzentrum.de 70 i if (p[1]) Err vernunftzentrum.de 70 i sndf("%s", &p[2]); Err vernunftzentrum.de 70 .