diff src/protocols/jabber/buddy.c @ 12683:41cf9be29754

[gaim-migrate @ 15026] fix xa and chatty states for jabber committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Sun, 01 Jan 2006 16:25:17 +0000
parents b4d2bba86f65
children 248b8b39c671
line wrap: on
line diff
--- a/src/protocols/jabber/buddy.c	Fri Dec 30 19:33:48 2005 +0000
+++ b/src/protocols/jabber/buddy.c	Sun Jan 01 16:25:17 2006 +0000
@@ -1102,6 +1102,27 @@
 		return JABBER_BUDDY_STATE_UNKNOWN;
 	if(!strcmp(id, "available"))
 		return JABBER_BUDDY_STATE_ONLINE;
+	if(!strcmp(id, "freeforchat"))
+		return JABBER_BUDDY_STATE_CHAT;
+	if(!strcmp(id, "away"))
+		return JABBER_BUDDY_STATE_AWAY;
+	if(!strcmp(id, "extended_away"))
+		return JABBER_BUDDY_STATE_XA;
+	if(!strcmp(id, "dnd"))
+		return JABBER_BUDDY_STATE_DND;
+	if(!strcmp(id, "offline"))
+		return JABBER_BUDDY_STATE_UNAVAILABLE;
+	if(!strcmp(id, "error"))
+		return JABBER_BUDDY_STATE_ERROR;
+
+	return JABBER_BUDDY_STATE_UNKNOWN;
+}
+
+JabberBuddyState jabber_buddy_show_get_state(const char *id) {
+	if(!id)
+		return JABBER_BUDDY_STATE_UNKNOWN;
+	if(!strcmp(id, "available"))
+		return JABBER_BUDDY_STATE_ONLINE;
 	if(!strcmp(id, "chat"))
 		return JABBER_BUDDY_STATE_CHAT;
 	if(!strcmp(id, "away"))
@@ -1118,7 +1139,7 @@
 	return JABBER_BUDDY_STATE_UNKNOWN;
 }
 
-const char *jabber_buddy_state_get_status_id(JabberBuddyState state) {
+const char *jabber_buddy_state_get_show(JabberBuddyState state) {
 	switch(state) {
 		case JABBER_BUDDY_STATE_CHAT:
 			return "chat";
@@ -1139,6 +1160,27 @@
 	return NULL;
 }
 
+const char *jabber_buddy_state_get_status_id(JabberBuddyState state) {
+	switch(state) {
+		case JABBER_BUDDY_STATE_CHAT:
+			return "freeforchat";
+		case JABBER_BUDDY_STATE_AWAY:
+			return "away";
+		case JABBER_BUDDY_STATE_XA:
+			return "extended_away";
+		case JABBER_BUDDY_STATE_DND:
+			return "dnd";
+		case JABBER_BUDDY_STATE_ONLINE:
+			return "available";
+		case JABBER_BUDDY_STATE_UNKNOWN:
+		case JABBER_BUDDY_STATE_ERROR:
+			return NULL;
+		case JABBER_BUDDY_STATE_UNAVAILABLE:
+			return "offline";
+	}
+	return NULL;
+}
+
 static void user_search_result_add_buddy_cb(GaimConnection *gc, GList *row)
 {
 	/* XXX find out the jid */