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

Free all buffers when exiting from WeeChat

This commit is contained in:
Sebastien Helleu
2004-07-10 12:29:20 +00:00
parent ab393805fb
commit 4c660ad565
10 changed files with 24 additions and 22 deletions
+9 -6
View File
@@ -346,7 +346,7 @@ gui_line_free (t_gui_line *line)
*/
void
gui_buffer_free (t_gui_buffer *buffer)
gui_buffer_free (t_gui_buffer *buffer, int switch_to_another)
{
t_gui_window *ptr_win;
t_gui_buffer *ptr_buffer;
@@ -355,11 +355,14 @@ gui_buffer_free (t_gui_buffer *buffer)
create_new = (buffer->server || buffer->channel);
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
if (switch_to_another)
{
if ((buffer == ptr_win->buffer) &&
((buffer->next_buffer) || (buffer->prev_buffer)))
gui_switch_to_previous_buffer (ptr_win);
for (ptr_win = gui_windows; ptr_win; ptr_win = ptr_win->next_window)
{
if ((buffer == ptr_win->buffer) &&
((buffer->next_buffer) || (buffer->prev_buffer)))
gui_switch_to_previous_buffer (ptr_win);
}
}
/* decrease buffer number for all next buffers */
@@ -393,7 +396,7 @@ gui_buffer_free (t_gui_buffer *buffer)
free (buffer);
/* always at least one buffer */
if (!gui_buffers && create_new)
if (!gui_buffers && create_new && switch_to_another)
(void) gui_buffer_new (gui_windows, NULL, NULL, 1);
}
+1 -1
View File
@@ -230,6 +230,7 @@ extern void gui_buffer_clear (t_gui_buffer *);
extern void gui_buffer_clear_all ();
extern void gui_infobar_printf (int, int, char *, ...);
extern void gui_infobar_remove ();
extern void gui_buffer_free (t_gui_buffer *, int);
extern t_gui_line *gui_new_line (t_gui_buffer *);
extern t_gui_message *gui_new_message (t_gui_buffer *);
extern void gui_optimize_input_buffer_size (t_gui_buffer *);
@@ -264,7 +265,6 @@ extern void gui_pre_init (int *, char **[]);
extern void gui_init_colors ();
extern void gui_set_window_title ();
extern void gui_init ();
extern void gui_buffer_free (t_gui_buffer *);
extern void gui_end ();
extern void gui_printf_color_type (/*@null@*/ t_gui_buffer *, int, int, char *, ...);
extern void gui_main_loop ();