mirror of
https://github.com/irssi/irssi.git
synced 2024-12-04 14:46:39 -05:00
Process the nick changes in queries before the PRIVMSG is handled.
Otherwise we end up with the message in the status window since the frontend knows jack shit about the casemapping option when it tries to find the associated window for the query.
This commit is contained in:
parent
618c8bd10e
commit
0d6add02cf
@ -78,6 +78,13 @@ static void event_privmsg(SERVER_REC *server, const char *data,
|
||||
if (!server_has_nick(server, query->name))
|
||||
query_change_nick(query, nick);
|
||||
}
|
||||
} else {
|
||||
/* process the changes to the query structure now, before the
|
||||
* privmsg is dispatched. */
|
||||
if (g_strcmp0(query->name, nick) != 0)
|
||||
query_change_nick(query, nick);
|
||||
if (address != NULL && g_strcmp0(query->address, address) != 0)
|
||||
query_change_address(query, address);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -79,20 +79,6 @@ static void check_query_changes(IRC_SERVER_REC *server, const char *nick,
|
||||
}
|
||||
}
|
||||
|
||||
static void event_privmsg(IRC_SERVER_REC *server, const char *data,
|
||||
const char *nick, const char *address)
|
||||
{
|
||||
char *params, *target, *msg;
|
||||
|
||||
g_return_if_fail(data != NULL);
|
||||
if (nick == NULL)
|
||||
return;
|
||||
|
||||
params = event_get_params(data, 2 | PARAM_FLAG_GETREST, &target, &msg);
|
||||
check_query_changes(server, nick, address, target);
|
||||
g_free(params);
|
||||
}
|
||||
|
||||
static void ctcp_action(IRC_SERVER_REC *server, const char *msg,
|
||||
const char *nick, const char *address,
|
||||
const char *target)
|
||||
@ -117,14 +103,12 @@ static void event_nick(SERVER_REC *server, const char *data,
|
||||
|
||||
void irc_queries_init(void)
|
||||
{
|
||||
signal_add_last("event privmsg", (SIGNAL_FUNC) event_privmsg);
|
||||
signal_add_last("ctcp action", (SIGNAL_FUNC) ctcp_action);
|
||||
signal_add("event nick", (SIGNAL_FUNC) event_nick);
|
||||
}
|
||||
|
||||
void irc_queries_deinit(void)
|
||||
{
|
||||
signal_remove("event privmsg", (SIGNAL_FUNC) event_privmsg);
|
||||
signal_remove("ctcp action", (SIGNAL_FUNC) ctcp_action);
|
||||
signal_remove("event nick", (SIGNAL_FUNC) event_nick);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user