summary refs log tree commit diff stats
path: root/src/common/userlist.c
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2021-05-24 02:53:28 +0100
committerGitHub <noreply@github.com>2021-05-23 20:53:28 -0500
commit37118a4d2b70c11a76c732346975c2745d3cc4c6 (patch)
treeb43cd4aa33f016b8826bdf420887cdb55551ee11 /src/common/userlist.c
parent6199635e7fbd220860e9b650b6d3fe63f60d4f80 (diff)
Implement support for the IRCv3 account-tag specification. (#2572)
Co-authored-by: Patrick <tingping@tingping.se>
Diffstat (limited to 'src/common/userlist.c')
-rw-r--r--src/common/userlist.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/common/userlist.c b/src/common/userlist.c
index 17719ff6..5f2d67f2 100644
--- a/src/common/userlist.c
+++ b/src/common/userlist.c
@@ -101,13 +101,15 @@ userlist_set_account (struct session *sess, char *nick, char *account)
 	user = userlist_find (sess, nick);
 	if (user)
 	{
-		g_free (user->account);
-			
 		if (strcmp (account, "*") == 0)
-			user->account = NULL;
-		else
+		{
+			g_clear_pointer (&user->account, g_free);
+		} else if (g_strcmp0 (user->account, account))
+		{
+			g_free (user->account);
 			user->account = g_strdup (account);
-			
+		}
+
 		/* gui doesnt currently reflect login status, maybe later
 		fe_userlist_rehash (sess, user); */
 	}