about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2015-02-09 21:28:08 +0000
committerJames Booth <boothj5@gmail.com>2015-02-09 21:28:08 +0000
commit51ccb695804fc4174b59cd45b7008f13bddd4739 (patch)
tree318e348b00cee95047ae3c9255c34e264b741b75 /src
parent916ee1dc1367f890261ec87990ce890ebf06f12f (diff)
parent6682f243ce2cbb46a1323bcd5fdf3a672b5a5d00 (diff)
downloadprofani-tty-51ccb695804fc4174b59cd45b7008f13bddd4739.tar.gz
Merge branch 'master' into readline
Conflicts:
	src/ui/inputwin.c
Diffstat (limited to 'src')
-rw-r--r--src/command/command.c11
-rw-r--r--src/config/theme.c4
-rw-r--r--src/ui/console.c19
-rw-r--r--src/ui/titlebar.c5
-rw-r--r--src/ui/window.c2
5 files changed, 26 insertions, 15 deletions
diff --git a/src/command/command.c b/src/command/command.c
index 81b401f0..33e95459 100644
--- a/src/command/command.c
+++ b/src/command/command.c
@@ -1659,7 +1659,7 @@ cmd_reset_autocomplete()
     autocomplete_reset(autoconnect_ac);
     autocomplete_reset(theme_ac);
     if (theme_load_ac != NULL) {
-        autocomplete_reset(theme_load_ac);
+        autocomplete_free(theme_load_ac);
         theme_load_ac = NULL;
     }
     autocomplete_reset(account_ac);
@@ -2468,11 +2468,12 @@ _theme_autocomplete(const char * const input)
         if (theme_load_ac == NULL) {
             theme_load_ac = autocomplete_new();
             GSList *themes = theme_list();
-            while (themes != NULL) {
-                autocomplete_add(theme_load_ac, themes->data);
-                themes = g_slist_next(themes);
+            GSList *curr = themes;
+            while (curr != NULL) {
+                autocomplete_add(theme_load_ac, curr->data);
+                curr = g_slist_next(curr);
             }
-            g_slist_free(themes);
+            g_slist_free_full(themes, g_free);
             autocomplete_add(theme_load_ac, "default");
         }
         result = autocomplete_param_with_ac(input, "/theme set", theme_load_ac, TRUE);
diff --git a/src/config/theme.c b/src/config/theme.c
index a5dbd0dd..26d48091 100644
--- a/src/config/theme.c
+++ b/src/config/theme.c
@@ -192,7 +192,9 @@ GSList *
 theme_list(void)
 {
     GSList *result = NULL;
-    _theme_list_dir(_get_themes_dir(), &result);
+    char *themes_dir = _get_themes_dir();
+    _theme_list_dir(themes_dir, &result);
+    free(themes_dir);
 #ifdef THEMES_PATH
     _theme_list_dir(THEMES_PATH, &result);
 #endif
diff --git a/src/ui/console.c b/src/ui/console.c
index 579d9c49..14ee7314 100644
--- a/src/ui/console.c
+++ b/src/ui/console.c
@@ -717,20 +717,24 @@ cons_show_account(ProfAccount *account)
         GList *resources = jabber_get_available_resources();
         GList *ordered_resources = NULL;
 
-        if (resources != NULL) {
+        GList *curr = resources;
+        if (curr != NULL) {
             win_save_println(console, "Resources:");
 
             // sort in order of availabiltiy
-            while (resources != NULL) {
-                Resource *resource = resources->data;
+            while (curr != NULL) {
+                Resource *resource = curr->data;
                 ordered_resources = g_list_insert_sorted(ordered_resources,
                     resource, (GCompareFunc)resource_compare_availability);
-                resources = g_list_next(resources);
+                curr = g_list_next(curr);
             }
         }
 
-        while (ordered_resources != NULL) {
-            Resource *resource = ordered_resources->data;
+        g_list_free(resources);
+
+        curr = ordered_resources;
+        while (curr != NULL) {
+            Resource *resource = curr->data;
             const char *resource_presence = string_from_resource_presence(resource->presence);
             theme_item_t presence_colour = theme_main_presence_attrs(resource_presence);
             win_save_vprint(console, '-', NULL, NO_EOL, presence_colour, "", "  %s (%d), %s", resource->name, resource->priority, resource_presence);
@@ -785,8 +789,9 @@ cons_show_account(ProfAccount *account)
                 caps_destroy(caps);
             }
 
-            ordered_resources = g_list_next(ordered_resources);
+            curr = g_list_next(curr);
         }
+        g_list_free(ordered_resources);
     }
 
     cons_alert();
diff --git a/src/ui/titlebar.c b/src/ui/titlebar.c
index 326dbf8b..a3299946 100644
--- a/src/ui/titlebar.c
+++ b/src/ui/titlebar.c
@@ -109,8 +109,11 @@ void
 title_bar_console(void)
 {
     werase(win);
-    typing = FALSE;
+    if (typing_elapsed) {
+        g_timer_destroy(typing_elapsed);
+    }
     typing_elapsed = NULL;
+    typing = FALSE;
 
     _title_bar_draw();
 }
diff --git a/src/ui/window.c b/src/ui/window.c
index e235dda5..bfef7946 100644
--- a/src/ui/window.c
+++ b/src/ui/window.c
@@ -337,7 +337,7 @@ win_free(ProfWin* window)
         ProfChatWin *chatwin = (ProfChatWin*)window;
         free(chatwin->barejid);
         free(chatwin->resource_override);
-        free(chatwin->state);
+        chat_state_free(chatwin->state);
     }
 
     if (window->type == WIN_MUC) {