mirror of
https://github.com/weechat/weechat.git
synced 2026-07-05 09:13:14 +02:00
Fixed /away command (now ok when not away)
This commit is contained in:
@@ -1712,6 +1712,7 @@ irc_cmd_recv_305 (t_irc_server *server, char *host, char *arguments)
|
||||
COLOR_WIN_CHAT, "%s\n", arguments);
|
||||
}
|
||||
server->is_away = 0;
|
||||
server->away_time = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1737,6 +1738,7 @@ irc_cmd_recv_306 (t_irc_server *server, char *host, char *arguments)
|
||||
COLOR_WIN_CHAT, "%s\n", arguments);
|
||||
}
|
||||
server->is_away = 1;
|
||||
server->away_time = time (NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
+34
-20
@@ -118,17 +118,24 @@ irc_cmd_send_away (t_irc_server *server, char *arguments)
|
||||
}
|
||||
else
|
||||
{
|
||||
server_sendf (ptr_server, "AWAY\r\n");
|
||||
ptr_server->is_away = 0;
|
||||
elapsed = time (NULL) - ptr_server->away_time;
|
||||
if (cfg_look_display_away)
|
||||
if (ptr_server->is_away)
|
||||
{
|
||||
snprintf (buffer, sizeof (buffer),
|
||||
"is back (gone %.2ld:%.2ld:%.2ld)",
|
||||
elapsed / 3600,
|
||||
(elapsed / 60) % 60,
|
||||
elapsed % 60);
|
||||
irc_send_me_all_channels (ptr_server, buffer);
|
||||
server_sendf (ptr_server, "AWAY\r\n");
|
||||
ptr_server->is_away = 0;
|
||||
if (server->away_time != 0)
|
||||
{
|
||||
elapsed = time (NULL) - ptr_server->away_time;
|
||||
ptr_server->away_time = 0;
|
||||
if (cfg_look_display_away)
|
||||
{
|
||||
snprintf (buffer, sizeof (buffer),
|
||||
"is back (gone %.2ld:%.2ld:%.2ld)",
|
||||
elapsed / 3600,
|
||||
(elapsed / 60) % 60,
|
||||
elapsed % 60);
|
||||
irc_send_me_all_channels (ptr_server, buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -149,17 +156,24 @@ irc_cmd_send_away (t_irc_server *server, char *arguments)
|
||||
}
|
||||
else
|
||||
{
|
||||
server_sendf (server, "AWAY\r\n");
|
||||
server->is_away = 0;
|
||||
elapsed = time (NULL) - server->away_time;
|
||||
if (cfg_look_display_away)
|
||||
if (server->is_away)
|
||||
{
|
||||
snprintf (buffer, sizeof (buffer),
|
||||
"is back (gone %.2ld:%.2ld:%.2ld)",
|
||||
elapsed / 3600,
|
||||
(elapsed / 60) % 60,
|
||||
elapsed % 60);
|
||||
irc_send_me_all_channels (server, buffer);
|
||||
server_sendf (server, "AWAY\r\n");
|
||||
server->is_away = 0;
|
||||
if (server->away_time != 0)
|
||||
{
|
||||
elapsed = time (NULL) - server->away_time;
|
||||
server->away_time = 0;
|
||||
if (cfg_look_display_away)
|
||||
{
|
||||
snprintf (buffer, sizeof (buffer),
|
||||
"is back (gone %.2ld:%.2ld:%.2ld)",
|
||||
elapsed / 3600,
|
||||
(elapsed / 60) % 60,
|
||||
elapsed % 60);
|
||||
irc_send_me_all_channels (server, buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ server_init (t_irc_server *server)
|
||||
server->reconnect_join = 0;
|
||||
server->sock4 = -1;
|
||||
server->is_away = 0;
|
||||
server->away_time = 0;
|
||||
server->server_read = -1;
|
||||
server->server_write = -1;
|
||||
server->buffer = NULL;
|
||||
|
||||
@@ -1712,6 +1712,7 @@ irc_cmd_recv_305 (t_irc_server *server, char *host, char *arguments)
|
||||
COLOR_WIN_CHAT, "%s\n", arguments);
|
||||
}
|
||||
server->is_away = 0;
|
||||
server->away_time = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1737,6 +1738,7 @@ irc_cmd_recv_306 (t_irc_server *server, char *host, char *arguments)
|
||||
COLOR_WIN_CHAT, "%s\n", arguments);
|
||||
}
|
||||
server->is_away = 1;
|
||||
server->away_time = time (NULL);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
+34
-20
@@ -118,17 +118,24 @@ irc_cmd_send_away (t_irc_server *server, char *arguments)
|
||||
}
|
||||
else
|
||||
{
|
||||
server_sendf (ptr_server, "AWAY\r\n");
|
||||
ptr_server->is_away = 0;
|
||||
elapsed = time (NULL) - ptr_server->away_time;
|
||||
if (cfg_look_display_away)
|
||||
if (ptr_server->is_away)
|
||||
{
|
||||
snprintf (buffer, sizeof (buffer),
|
||||
"is back (gone %.2ld:%.2ld:%.2ld)",
|
||||
elapsed / 3600,
|
||||
(elapsed / 60) % 60,
|
||||
elapsed % 60);
|
||||
irc_send_me_all_channels (ptr_server, buffer);
|
||||
server_sendf (ptr_server, "AWAY\r\n");
|
||||
ptr_server->is_away = 0;
|
||||
if (server->away_time != 0)
|
||||
{
|
||||
elapsed = time (NULL) - ptr_server->away_time;
|
||||
ptr_server->away_time = 0;
|
||||
if (cfg_look_display_away)
|
||||
{
|
||||
snprintf (buffer, sizeof (buffer),
|
||||
"is back (gone %.2ld:%.2ld:%.2ld)",
|
||||
elapsed / 3600,
|
||||
(elapsed / 60) % 60,
|
||||
elapsed % 60);
|
||||
irc_send_me_all_channels (ptr_server, buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -149,17 +156,24 @@ irc_cmd_send_away (t_irc_server *server, char *arguments)
|
||||
}
|
||||
else
|
||||
{
|
||||
server_sendf (server, "AWAY\r\n");
|
||||
server->is_away = 0;
|
||||
elapsed = time (NULL) - server->away_time;
|
||||
if (cfg_look_display_away)
|
||||
if (server->is_away)
|
||||
{
|
||||
snprintf (buffer, sizeof (buffer),
|
||||
"is back (gone %.2ld:%.2ld:%.2ld)",
|
||||
elapsed / 3600,
|
||||
(elapsed / 60) % 60,
|
||||
elapsed % 60);
|
||||
irc_send_me_all_channels (server, buffer);
|
||||
server_sendf (server, "AWAY\r\n");
|
||||
server->is_away = 0;
|
||||
if (server->away_time != 0)
|
||||
{
|
||||
elapsed = time (NULL) - server->away_time;
|
||||
server->away_time = 0;
|
||||
if (cfg_look_display_away)
|
||||
{
|
||||
snprintf (buffer, sizeof (buffer),
|
||||
"is back (gone %.2ld:%.2ld:%.2ld)",
|
||||
elapsed / 3600,
|
||||
(elapsed / 60) % 60,
|
||||
elapsed % 60);
|
||||
irc_send_me_all_channels (server, buffer);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,6 +81,7 @@ server_init (t_irc_server *server)
|
||||
server->reconnect_join = 0;
|
||||
server->sock4 = -1;
|
||||
server->is_away = 0;
|
||||
server->away_time = 0;
|
||||
server->server_read = -1;
|
||||
server->server_write = -1;
|
||||
server->buffer = NULL;
|
||||
|
||||
Reference in New Issue
Block a user