Don't flush the chanopt_list when saving it

Closes #1665
Fixes #1134
This commit is contained in:
LemonBoy 2016-03-29 19:38:34 +02:00 committed by Patrick Griffis
parent 5f2d6a3c11
commit 0635e91dd6
5 changed files with 16 additions and 10 deletions

View File

@ -396,7 +396,7 @@ chanopt_save_one_channel (chanopt_in_memory *co, int fh)
}
void
chanopt_save_all (void)
chanopt_save_all (gboolean flush)
{
int i;
int num_saved;
@ -438,15 +438,21 @@ chanopt_save_all (void)
}
cont:
if (flush)
{
g_free (co->network);
g_free (co->channel);
g_free (co);
}
}
close (fh);
if (flush)
{
g_slist_free (chanopt_list);
chanopt_list = NULL;
}
chanopt_open = FALSE;
chanopt_changed = FALSE;

View File

@ -22,7 +22,7 @@
int chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[]);
gboolean chanopt_is_set (unsigned int global, guint8 per_chan_setting);
void chanopt_save_all (void);
void chanopt_save_all (gboolean flush);
void chanopt_save (session *sess);
void chanopt_load (session *sess);

View File

@ -960,7 +960,7 @@ hexchat_exit (void)
notify_save ();
ignore_save ();
free_sessions ();
chanopt_save_all ();
chanopt_save_all (TRUE);
servlist_cleanup ();
fe_exit ();
}

View File

@ -581,7 +581,7 @@ cmd_chanopt (struct session *sess, char *tbuf, char *word[], char *word_eol[])
/* chanopt.c */
ret = chanopt_command (sess, tbuf, word, word_eol);
chanopt_save_all ();
chanopt_save_all (FALSE);
return ret;
}

View File

@ -1514,7 +1514,7 @@ mg_set_guint8 (GtkCheckMenuItem *item, guint8 *setting)
log_open_or_close (sess);
chanopt_save (sess);
chanopt_save_all ();
chanopt_save_all (FALSE);
}
static void