diff options
author | Curtis McEnroe | 2018-08-04 01:12:26 -0400 |
---|---|---|
committer | Curtis McEnroe | 2018-08-04 01:12:26 -0400 |
commit | fe938fba535ee939c8a4d903736426c4cf6f1f3b (patch) | |
tree | c05cbbf9e6d31cd7a5f712bb070333cb309348f8 | |
parent | 5522529e839e7e4a2c4b7379d277d464fcb07f2b (diff) |
Track own nick
-rw-r--r-- | chat.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/chat.c b/chat.c index a428819..c3a4f4f 100644 --- a/chat.c +++ b/chat.c @@ -254,16 +254,21 @@ static char *shift(char **params) { return strsep(params, " "); } -static void handle001(char *prefix, char *params) { - (void)prefix; (void)params; - clientFmt("JOIN %s\r\n", client.chan); -} - static void handlePing(char *prefix, char *params) { (void)prefix; clientFmt("PONG %s\r\n", params); } +static void handle001(char *prefix, char *params) { + (void)prefix; + char *nick = shift(¶ms); + if (strcmp(nick, client.nick)) { + free(client.nick); + client.nick = strdup(nick); + } + clientFmt("JOIN %s\r\n", client.chan); +} + static void handleJoin(char *prefix, char *params) { char *nick = prift(&prefix); char *user = prift(&prefix); @@ -370,6 +375,10 @@ static void handleNick(char *prefix, char *params) { char *prev = prift(&prefix); char *user = prift(&prefix); char *next = shift(¶ms); + if (!strcmp(user, client.user)) { + free(client.nick); + client.nick = strdup(next); + } uiFmt( "\3%d%s\3 is now known as \3%d%s\3", color(user), prev, color(user), next |