static void sig_message_own_action(IRC_SERVER_REC *server, const char *msg, const char *target) { void *item; if (ischannel(*target)) item = irc_channel_find(server, target); else item = irc_query_find(server, target); printformat(server, target, MSGLEVEL_ACTIONS | MSGLEVEL_NOHILIGHT | MSGLEVEL_NO_ACT | (ischannel(*target) ? MSGLEVEL_PUBLIC : MSGLEVEL_MSGS), item != NULL ? IRCTXT_OWN_ACTION : IRCTXT_OWN_ACTION_TARGET, server->nick, msg, target); }
static void event_nick(IRC_SERVER_REC *server, const char *data, const char *orignick) { QUERY_REC *query; CHAT_DCC_REC *dcc; char *params, *nick, *tag; g_return_if_fail(data != NULL); g_return_if_fail(orignick != NULL); params = event_get_params(data, 1, &nick); if (g_ascii_strcasecmp(nick, orignick) == 0) { /* shouldn't happen, but just to be sure irssi doesn't get into infinite loop */ g_free(params); return; } while ((dcc = dcc_chat_find_nick(server, orignick)) != NULL) { g_free(dcc->nick); dcc->nick = g_strdup(nick); tag = g_strconcat("=", dcc->id, NULL); query = irc_query_find(server, tag); g_free(tag); /* change the id too */ g_free(dcc->id); dcc->id = NULL; dcc->id = dcc_chat_get_new_id(nick); if (query != NULL) { tag = g_strconcat("=", dcc->id, NULL); query_change_nick(query, tag); g_free(tag); } } g_free(params); }
static void sig_message_own_action(IRC_SERVER_REC *server, const char *msg, const char *target) { void *item; char *freemsg = NULL; if (ischannel(*target)) item = irc_channel_find(server, target); else item = irc_query_find(server, target); if (settings_get_bool("emphasis")) msg = freemsg = expand_emphasis(item, msg); printformat(server, target, MSGLEVEL_ACTIONS | MSGLEVEL_NOHILIGHT | MSGLEVEL_NO_ACT | (ischannel(*target) ? MSGLEVEL_PUBLIC : MSGLEVEL_MSGS), item != NULL ? IRCTXT_OWN_ACTION : IRCTXT_OWN_ACTION_TARGET, server->nick, msg, target); g_free_not_null(freemsg); }
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); } }