static void query_update_topic(QUERY_REC *query, const char *uin, guint32 ip) { if (ip && ip != -1) { char *address = g_strdup_printf("%s@%d.%d.%d.%d", uin, ip>>24, (ip>>16)&255, (ip>>8)&255, ip&255); if (!query->address || strcmp(query->address, address)) query_change_address(query, address); g_free(address); } else if (!query->address) {
static void check_query_changes(IRC_SERVER_REC *server, const char *nick, const char *address, const char *target) { QUERY_REC *query; if (ischannel(*target)) return; query = irc_query_find(server, nick); if (query == NULL) return; if (strcmp(query->name, nick) != 0) { /* upper/lowercase chars in nick changed */ query_change_nick(query, nick); } if (query->address == NULL || strcmp(query->address, address) != 0) { /* host changed */ query_change_address(query, address); } }