1
0
mirror of https://github.com/weechat/weechat.git synced 2026-07-03 08:13:14 +02:00

Fixed crash when closing DCC/raw buffer if 2 are open (bug #16808)

This commit is contained in:
Sebastien Helleu
2006-06-10 17:35:11 +00:00
parent cb329a3f33
commit 3b2e2ad006
6 changed files with 34 additions and 14 deletions
+1
View File
@@ -4,6 +4,7 @@ WeeChat - Wee Enhanced Environment for Chat
ChangeLog - 2006-06-10
Version 0.2.0 (under dev!):
* fixed crash when closing DCC/raw buffer if 2 are open (bug #16808)
* fixed crashes with DCC chat remove/purge on DCC view (bug #16775)
* fixed bug with connection to bnc (bug #16760)
* command /save now writes plugins options (~/.weechat/plugins.rc)
-4
View File
@@ -441,10 +441,6 @@ gui_buffer_free (t_gui_buffer *buffer, int switch_to_another)
if (buffer->type == BUFFER_TYPE_RAW_DATA)
gui_buffer_raw_data = NULL;
/* purge DCC chat using this buffer */
//if (CHANNEL(buffer))
// dcc_chat_remove_channel (CHANNEL(buffer));
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
+16 -3
View File
@@ -671,6 +671,7 @@ void
gui_exec_action_dcc (t_gui_window *window, char *actions)
{
t_irc_dcc *dcc_selected, *ptr_dcc, *ptr_dcc_next;
t_gui_window *ptr_win;
t_gui_buffer *ptr_buffer;
while (actions[0])
@@ -722,7 +723,13 @@ gui_exec_action_dcc (t_gui_window *window, char *actions)
if (gui_buffer_before_dcc)
{
ptr_buffer = window->buffer;
gui_window_switch_to_buffer (window, gui_buffer_before_dcc);
for (ptr_win = gui_windows; ptr_win;
ptr_win = ptr_win->next_window)
{
if (ptr_win->buffer == ptr_buffer)
gui_window_switch_to_buffer (ptr_win,
gui_buffer_before_dcc);
}
gui_buffer_free (ptr_buffer, 0);
}
else
@@ -759,6 +766,7 @@ gui_exec_action_dcc (t_gui_window *window, char *actions)
void
gui_exec_action_raw_data (t_gui_window *window, char *actions)
{
t_gui_window *ptr_win;
t_gui_buffer *ptr_buffer;
while (actions[0])
@@ -773,8 +781,13 @@ gui_exec_action_raw_data (t_gui_window *window, char *actions)
if (gui_buffer_before_raw_data)
{
ptr_buffer = window->buffer;
gui_window_switch_to_buffer (window,
gui_buffer_before_raw_data);
for (ptr_win = gui_windows; ptr_win;
ptr_win = ptr_win->next_window)
{
if (ptr_win->buffer == ptr_buffer)
gui_window_switch_to_buffer (ptr_win,
gui_buffer_before_raw_data);
}
gui_buffer_free (ptr_buffer, 0);
}
else
+1
View File
@@ -4,6 +4,7 @@ WeeChat - Wee Enhanced Environment for Chat
ChangeLog - 2006-06-10
Version 0.2.0 (under dev!):
* fixed crash when closing DCC/raw buffer if 2 are open (bug #16808)
* fixed crashes with DCC chat remove/purge on DCC view (bug #16775)
* fixed bug with connection to bnc (bug #16760)
* command /save now writes plugins options (~/.weechat/plugins.rc)
-4
View File
@@ -441,10 +441,6 @@ gui_buffer_free (t_gui_buffer *buffer, int switch_to_another)
if (buffer->type == BUFFER_TYPE_RAW_DATA)
gui_buffer_raw_data = NULL;
/* purge DCC chat using this buffer */
//if (CHANNEL(buffer))
// dcc_chat_remove_channel (CHANNEL(buffer));
for (ptr_server = irc_servers; ptr_server;
ptr_server = ptr_server->next_server)
+16 -3
View File
@@ -671,6 +671,7 @@ void
gui_exec_action_dcc (t_gui_window *window, char *actions)
{
t_irc_dcc *dcc_selected, *ptr_dcc, *ptr_dcc_next;
t_gui_window *ptr_win;
t_gui_buffer *ptr_buffer;
while (actions[0])
@@ -722,7 +723,13 @@ gui_exec_action_dcc (t_gui_window *window, char *actions)
if (gui_buffer_before_dcc)
{
ptr_buffer = window->buffer;
gui_window_switch_to_buffer (window, gui_buffer_before_dcc);
for (ptr_win = gui_windows; ptr_win;
ptr_win = ptr_win->next_window)
{
if (ptr_win->buffer == ptr_buffer)
gui_window_switch_to_buffer (ptr_win,
gui_buffer_before_dcc);
}
gui_buffer_free (ptr_buffer, 0);
}
else
@@ -759,6 +766,7 @@ gui_exec_action_dcc (t_gui_window *window, char *actions)
void
gui_exec_action_raw_data (t_gui_window *window, char *actions)
{
t_gui_window *ptr_win;
t_gui_buffer *ptr_buffer;
while (actions[0])
@@ -773,8 +781,13 @@ gui_exec_action_raw_data (t_gui_window *window, char *actions)
if (gui_buffer_before_raw_data)
{
ptr_buffer = window->buffer;
gui_window_switch_to_buffer (window,
gui_buffer_before_raw_data);
for (ptr_win = gui_windows; ptr_win;
ptr_win = ptr_win->next_window)
{
if (ptr_win->buffer == ptr_buffer)
gui_window_switch_to_buffer (ptr_win,
gui_buffer_before_raw_data);
}
gui_buffer_free (ptr_buffer, 0);
}
else