1
0
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:
Sebastien Helleu
2005-01-02 11:44:33 +00:00
parent a3e3113e4e
commit 82265b629b
6 changed files with 74 additions and 40 deletions
+2
View File
@@ -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
View File
@@ -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);
}
}
}
}
}
+1
View File
@@ -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;
+2
View File
@@ -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
View File
@@ -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);
}
}
}
}
}
+1
View File
@@ -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;