diff options
author | James Booth <boothj5@gmail.com> | 2014-06-17 23:34:52 +0100 |
---|---|---|
committer | James Booth <boothj5@gmail.com> | 2014-06-17 23:34:52 +0100 |
commit | 79ddf1048486d1a77a1aee9b8152c8ffb25d8a11 (patch) | |
tree | ae96e2efee1116f006b2c77137e87efabd73f0c3 /src/profanity.c | |
parent | ad68bcfde2d606906242f265a661ea3690e145bd (diff) | |
download | profani-tty-79ddf1048486d1a77a1aee9b8152c8ffb25d8a11.tar.gz |
Fixed memleaks with otr policy and autoaway options
Diffstat (limited to 'src/profanity.c')
-rw-r--r-- | src/profanity.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/src/profanity.c b/src/profanity.c index f99f90c3..899e70c4 100644 --- a/src/profanity.c +++ b/src/profanity.c @@ -219,6 +219,8 @@ _handle_idle_time() gint prefs_time = prefs_get_autoaway_time() * 60000; resource_presence_t current_presence = accounts_get_last_presence(jabber_get_account_name()); unsigned long idle_ms = ui_get_idle_time(); + char *pref_autoaway_mode = prefs_get_string(PREF_AUTOAWAY_MODE); + char *pref_autoaway_message = prefs_get_string(PREF_AUTOAWAY_MESSAGE); if (!idle) { if ((current_presence == RESOURCE_ONLINE) || (current_presence == RESOURCE_CHAT)) { @@ -226,13 +228,13 @@ _handle_idle_time() idle = TRUE; // handle away mode - if (strcmp(prefs_get_string(PREF_AUTOAWAY_MODE), "away") == 0) { - presence_update(RESOURCE_AWAY, prefs_get_string(PREF_AUTOAWAY_MESSAGE), 0); + if (strcmp(pref_autoaway_mode, "away") == 0) { + presence_update(RESOURCE_AWAY, pref_autoaway_message, 0); ui_auto_away(); // handle idle mode - } else if (strcmp(prefs_get_string(PREF_AUTOAWAY_MODE), "idle") == 0) { - presence_update(RESOURCE_ONLINE, prefs_get_string(PREF_AUTOAWAY_MESSAGE), idle_ms / 1000); + } else if (strcmp(pref_autoaway_mode, "idle") == 0) { + presence_update(RESOURCE_ONLINE, pref_autoaway_message, idle_ms / 1000); } } } @@ -243,16 +245,22 @@ _handle_idle_time() // handle check if (prefs_get_boolean(PREF_AUTOAWAY_CHECK)) { - if (strcmp(prefs_get_string(PREF_AUTOAWAY_MODE), "away") == 0) { + if (strcmp(pref_autoaway_mode, "away") == 0) { presence_update(RESOURCE_ONLINE, NULL, 0); ui_end_auto_away(); - } else if (strcmp(prefs_get_string(PREF_AUTOAWAY_MODE), "idle") == 0) { + } else if (strcmp(pref_autoaway_mode, "idle") == 0) { presence_update(RESOURCE_ONLINE, NULL, 0); ui_titlebar_presence(CONTACT_ONLINE); } } } } + if (pref_autoaway_mode != NULL) { + free(pref_autoaway_mode); + } + if (pref_autoaway_message != NULL) { + free(pref_autoaway_message); + } } static void |