diff --git a/src/irc/notifylist/notify-ison.c b/src/irc/notifylist/notify-ison.c index 7d22f21c..2de398a1 100644 --- a/src/irc/notifylist/notify-ison.c +++ b/src/irc/notifylist/notify-ison.c @@ -176,7 +176,7 @@ static void whois_send(IRC_SERVER_REC *server, const char *nicks, for (p = str+strlen(nicks)+1; *p != '\0'; p++) if (*p == ',') *p = ' '; - server_redirect_event(server, "whois", 1, str, FALSE, + server_redirect_event(server, "whois", 1, str, TRUE, "notifylist event whois end", "event 318", "notifylist event whois end", "event 311", "notifylist event whois", @@ -285,7 +285,6 @@ static void ison_check_parts(IRC_SERVER_REC *server) continue; notifylist_left(server, rec); - notify_nick_destroy(rec); } } diff --git a/src/irc/notifylist/notifylist.c b/src/irc/notifylist/notifylist.c index 0d2b5c21..39806769 100644 --- a/src/irc/notifylist/notifylist.c +++ b/src/irc/notifylist/notifylist.c @@ -232,6 +232,8 @@ void notifylist_left(IRC_SERVER_REC *server, NOTIFY_NICK_REC *rec) rec->user, rec->host, rec->realname, rec->awaymsg); } + + notify_nick_destroy(rec); } static void notifylist_idle_reset(IRC_SERVER_REC *server, const char *nick) @@ -297,7 +299,7 @@ static void notifylist_check_join(IRC_SERVER_REC *server, const char *nick, g_free_not_null(rec->realname); rec->user = g_strdup(user); rec->host = g_strdup(host); - rec->realname = *realname == '\0' ? NULL : g_strdup(realname); + rec->realname = realname == NULL || *realname == '\0' ? NULL : g_strdup(realname); if (away != -1) rec->away = away; rec->host_ok = TRUE;