pidgin/pidgin

968ef3b0caed
Parents c5f76443d99d
Children a5d1c14b6021
Fix #16762 where transient startup statuses could be deleted on exit
--- a/ChangeLog Wed Dec 23 22:18:47 2015 -0600
+++ b/ChangeLog Tue Dec 29 18:41:57 2015 -0600
@@ -3,6 +3,8 @@
version 2.10.12 (MM/DD/YY):
General:
* purple-url-handler now works with Python 3.x (Daniƫl van Eeden)
+ * Fixed an issue where transient startup statuses could be deleted
+ (Jakub Adam) (#16762)
Pidgin:
* The shout smile now matches the default theme (Steve Vaught)
--- a/libpurple/savedstatuses.c Wed Dec 23 22:18:47 2015 -0600
+++ b/libpurple/savedstatuses.c Tue Dec 29 18:41:57 2015 -0600
@@ -193,16 +193,18 @@
remove_old_transient_statuses(void)
{
GList *l, *next;
- PurpleSavedStatus *saved_status, *current_status;
+ PurpleSavedStatus *saved_status, *startup_status, *current_status;
int count;
time_t creation_time;
+ startup_status = purple_savedstatus_get_startup();
current_status = purple_savedstatus_get_current();
/*
* Iterate through the list of saved statuses. Delete all
* transient statuses except for the first MAX_TRANSIENTS
* (remember, the saved statuses are already sorted by popularity).
+ * We should also keep the startup status, if any is set.
*/
count = 0;
for (l = saved_statuses; l != NULL; l = next)
@@ -213,7 +215,7 @@
{
if (count == MAX_TRANSIENTS)
{
- if (saved_status != current_status)
+ if (saved_status != current_status && saved_status != startup_status)
{
saved_statuses = g_list_remove(saved_statuses, saved_status);
creation_time = purple_savedstatus_get_creation_time(saved_status);