about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorJames Booth <boothj5@gmail.com>2013-09-01 03:31:32 +0100
committerJames Booth <boothj5@gmail.com>2013-09-01 03:31:32 +0100
commit00f216ac95fd8f096eb57b7aebb315ac6f1da75d (patch)
tree648259f524c447ddd3384a5fa303784b2926fe7f
parent6b1c7da11fce79c666c1aa9e8bb3be6eda132c51 (diff)
parent343cc0a64ce0ddd5ee20cb5d63f5416a94b592a6 (diff)
downloadprofani-tty-00f216ac95fd8f096eb57b7aebb315ac6f1da75d.tar.gz
Merge branch 'master' into otr
-rw-r--r--src/contact.c10
-rw-r--r--src/contact.h1
-rw-r--r--src/ui/core.c20
-rw-r--r--src/ui/windows.c15
4 files changed, 27 insertions, 19 deletions
diff --git a/src/contact.c b/src/contact.c
index 1b566d40..9cc992b2 100644
--- a/src/contact.c
+++ b/src/contact.c
@@ -156,6 +156,16 @@ p_contact_name(const PContact contact)
     return contact->name;
 }
 
+const char *
+p_contact_name_or_jid(const PContact contact)
+{
+    if (contact->name != NULL) {
+        return contact->name;
+    } else {
+        return contact->barejid;
+    }
+}
+
 static Resource *
 _highest_presence(Resource *first, Resource *second)
 {
diff --git a/src/contact.h b/src/contact.h
index 141587a0..e71e0f7d 100644
--- a/src/contact.h
+++ b/src/contact.h
@@ -35,6 +35,7 @@ gboolean p_contact_remove_resource(PContact contact, const char * const resource
 void p_contact_free(PContact contact);
 const char* p_contact_barejid(PContact contact);
 const char* p_contact_name(PContact contact);
+const char * p_contact_name_or_jid(const PContact contact);
 const char* p_contact_presence(PContact contact);
 const char* p_contact_status(PContact contact);
 const char* p_contact_subscription(const PContact contact);
diff --git a/src/ui/core.c b/src/ui/core.c
index 2229d37c..16c1d2ff 100644
--- a/src/ui/core.c
+++ b/src/ui/core.c
@@ -1525,25 +1525,25 @@ static void
 _win_handle_switch(const wint_t * const ch)
 {
     if (*ch == KEY_F(1)) {
-        ui_switch_win(0);
-    } else if (*ch == KEY_F(2)) {
         ui_switch_win(1);
-    } else if (*ch == KEY_F(3)) {
+    } else if (*ch == KEY_F(2)) {
         ui_switch_win(2);
-    } else if (*ch == KEY_F(4)) {
+    } else if (*ch == KEY_F(3)) {
         ui_switch_win(3);
-    } else if (*ch == KEY_F(5)) {
+    } else if (*ch == KEY_F(4)) {
         ui_switch_win(4);
-    } else if (*ch == KEY_F(6)) {
+    } else if (*ch == KEY_F(5)) {
         ui_switch_win(5);
-    } else if (*ch == KEY_F(7)) {
+    } else if (*ch == KEY_F(6)) {
         ui_switch_win(6);
-    } else if (*ch == KEY_F(8)) {
+    } else if (*ch == KEY_F(7)) {
         ui_switch_win(7);
-    } else if (*ch == KEY_F(9)) {
+    } else if (*ch == KEY_F(8)) {
         ui_switch_win(8);
-    } else if (*ch == KEY_F(10)) {
+    } else if (*ch == KEY_F(9)) {
         ui_switch_win(9);
+    } else if (*ch == KEY_F(10)) {
+        ui_switch_win(0);
     }
 }
 
diff --git a/src/ui/windows.c b/src/ui/windows.c
index e956068c..e69b2433 100644
--- a/src/ui/windows.c
+++ b/src/ui/windows.c
@@ -391,16 +391,13 @@ wins_create_summary(void)
                 break;
             case WIN_CHAT:
                 chat_string = g_string_new("");
-                g_string_printf(chat_string, "%d: Chat %s", ui_index, window->from);
-                PContact contact = roster_get_contact(window->from);
 
-                if (contact != NULL) {
-                    if (p_contact_name(contact) != NULL) {
-                        GString *chat_name = g_string_new("");
-                        g_string_printf(chat_name, " (%s)", p_contact_name(contact));
-                        g_string_append(chat_string, chat_name->str);
-                        g_string_free(chat_name, TRUE);
-                    }
+                PContact contact = roster_get_contact(window->from);
+                if (contact == NULL) {
+                    g_string_printf(chat_string, "%d: Chat %s", ui_index, window->from);
+                } else {
+                    const char *display_name = p_contact_name_or_jid(contact);
+                    g_string_printf(chat_string, "%d: Chat %s", ui_index, display_name);
                     GString *chat_presence = g_string_new("");
                     g_string_printf(chat_presence, " - %s", p_contact_presence(contact));
                     g_string_append(chat_string, chat_presence->str);