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

View File

@ -22,7 +22,7 @@
int chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[]); int chanopt_command (session *sess, char *tbuf, char *word[], char *word_eol[]);
gboolean chanopt_is_set (unsigned int global, guint8 per_chan_setting); 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_save (session *sess);
void chanopt_load (session *sess); void chanopt_load (session *sess);

View File

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

View File

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

View File

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