about summary refs log tree commit diff stats
path: root/src/ui/core.c
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2014-01-11 18:06:46 +0000
committerJames Booth <boothj5@gmail.com>2014-01-11 18:06:46 +0000
commitbf494b1b07654103cd0c0867e37326e618b58f4d (patch)
treec6c93f1838936d2140afb637cc13ee28668a7422 /src/ui/core.c
parentd189f7ea43e0978b33ad0d4ed3dbcf95774c4598 (diff)
downloadprofani-tty-bf494b1b07654103cd0c0867e37326e618b58f4d.tar.gz
Refactored setting window recipient
Diffstat (limited to 'src/ui/core.c')
-rw-r--r--src/ui/core.c57
1 files changed, 27 insertions, 30 deletions
diff --git a/src/ui/core.c b/src/ui/core.c
index 4ff43ff1..622261b6 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -501,6 +501,24 @@ _ui_close_read_wins(void)
     return count;
 }
 
+GString *
+_get_recipient_string(ProfWin *window)
+{
+    GString *result = g_string_new("");
+    PContact contact = roster_get_contact(window->from);
+    if (contact != NULL) {
+        if (p_contact_name(contact) != NULL) {
+            g_string_append(result, p_contact_name(contact));
+        } else {
+            g_string_append(result, window->from);
+        }
+    } else {
+        g_string_append(result, window->from);
+    }
+
+    return result;
+}
+
 static void
 _ui_switch_win(const int i)
 {
@@ -517,16 +535,9 @@ _ui_switch_win(const int i)
             status_bar_current(1);
             status_bar_active(1);
         } else {
-            PContact contact = roster_get_contact(new_current->from);
-            if (contact != NULL) {
-                if (p_contact_name(contact) != NULL) {
-                    title_bar_set_recipient(p_contact_name(contact));
-                } else {
-                    title_bar_set_recipient(new_current->from);
-                }
-            } else {
-                title_bar_set_recipient(new_current->from);
-            }
+            GString *recipient_str = _get_recipient_string(new_current);
+            title_bar_set_recipient(recipient_str->str);
+            g_string_free(recipient_str, TRUE);
             title_bar_draw();
             status_bar_current(i);
             status_bar_active(i);
@@ -551,16 +562,9 @@ _ui_next_win(void)
         status_bar_current(1);
         status_bar_active(1);
     } else {
-        PContact contact = roster_get_contact(new_current->from);
-        if (contact != NULL) {
-            if (p_contact_name(contact) != NULL) {
-                title_bar_set_recipient(p_contact_name(contact));
-            } else {
-                title_bar_set_recipient(new_current->from);
-            }
-        } else {
-            title_bar_set_recipient(new_current->from);
-        }
+        GString *recipient_str = _get_recipient_string(new_current);
+        title_bar_set_recipient(recipient_str->str);
+        g_string_free(recipient_str, TRUE);
         title_bar_draw();
         status_bar_current(i);
         status_bar_active(i);
@@ -584,16 +588,9 @@ _ui_previous_win(void)
         status_bar_current(1);
         status_bar_active(1);
     } else {
-        PContact contact = roster_get_contact(new_current->from);
-        if (contact != NULL) {
-            if (p_contact_name(contact) != NULL) {
-                title_bar_set_recipient(p_contact_name(contact));
-            } else {
-                title_bar_set_recipient(new_current->from);
-            }
-        } else {
-            title_bar_set_recipient(new_current->from);
-        }
+        GString *recipient_str = _get_recipient_string(new_current);
+        title_bar_set_recipient(recipient_str->str);
+        g_string_free(recipient_str, TRUE);
         title_bar_draw();
         status_bar_current(i);
         status_bar_active(i);