mirror of
https://github.com/irssi/irssi.git
synced 2026-08-11 12:53:42 +02:00
support cap away-notify
This commit is contained in:
parent
d418989f0c
commit
61d215acdd
7 changed files with 75 additions and 0 deletions
|
|
@ -467,6 +467,20 @@ static void event_setname(SERVER_REC *server, const char *data, const char *nick
|
|||
g_slist_free(nicks);
|
||||
}
|
||||
|
||||
static void event_away_notify(IRC_SERVER_REC *server, const char *data, const char *nick, const char *add)
|
||||
{
|
||||
char *params, *awaymsg;
|
||||
|
||||
if (!IS_IRC_SERVER(server))
|
||||
return;
|
||||
|
||||
g_return_if_fail(data != NULL);
|
||||
|
||||
params = event_get_params(data, 1 | PARAM_FLAG_GETREST, &awaymsg);
|
||||
nicklist_update_flags(SERVER(server), nick, *awaymsg != '\0', -1);
|
||||
g_free(params);
|
||||
}
|
||||
|
||||
static void sig_usermode(SERVER_REC *server)
|
||||
{
|
||||
g_return_if_fail(IS_SERVER(server));
|
||||
|
|
@ -507,6 +521,7 @@ void irc_nicklist_init(void)
|
|||
signal_add_first("event 433", (SIGNAL_FUNC) event_nick_in_use);
|
||||
signal_add_first("event 437", (SIGNAL_FUNC) event_target_unavailable);
|
||||
signal_add_first("event 302", (SIGNAL_FUNC) event_userhost);
|
||||
signal_add_first("event away", (SIGNAL_FUNC) event_away_notify);
|
||||
signal_add("userhost event", (SIGNAL_FUNC) event_userhost);
|
||||
signal_add("event setname", (SIGNAL_FUNC) event_setname);
|
||||
signal_add("user mode changed", (SIGNAL_FUNC) sig_usermode);
|
||||
|
|
@ -530,6 +545,7 @@ void irc_nicklist_deinit(void)
|
|||
signal_remove("event 433", (SIGNAL_FUNC) event_nick_in_use);
|
||||
signal_remove("event 437", (SIGNAL_FUNC) event_target_unavailable);
|
||||
signal_remove("event 302", (SIGNAL_FUNC) event_userhost);
|
||||
signal_remove("event away", (SIGNAL_FUNC) event_away_notify);
|
||||
signal_remove("userhost event", (SIGNAL_FUNC) event_userhost);
|
||||
signal_remove("event setname", (SIGNAL_FUNC) event_setname);
|
||||
signal_remove("user mode changed", (SIGNAL_FUNC) sig_usermode);
|
||||
|
|
|
|||
|
|
@ -237,6 +237,7 @@ static void server_init(IRC_SERVER_REC *server)
|
|||
irc_cap_toggle(server, CAP_EXTENDED_JOIN, TRUE);
|
||||
irc_cap_toggle(server, CAP_SETNAME, TRUE);
|
||||
irc_cap_toggle(server, CAP_INVITE_NOTIFY, TRUE);
|
||||
irc_cap_toggle(server, CAP_AWAY_NOTIFY, TRUE);
|
||||
|
||||
irc_send_cmd_now(server, "CAP LS " CAP_LS_VERSION);
|
||||
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@
|
|||
#define CAP_EXTENDED_JOIN "extended-join"
|
||||
#define CAP_SETNAME "draft/setname"
|
||||
#define CAP_INVITE_NOTIFY "invite-notify"
|
||||
#define CAP_AWAY_NOTIFY "away-notify"
|
||||
|
||||
/* returns IRC_SERVER_REC if it's IRC server, NULL if it isn't */
|
||||
#define IRC_SERVER(server) \
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue