diff libpurple/protocols/msn/user.c @ 22553:1168dc635ac1

some other mobile stuff that Maiku fixed, fixes #2359
author Ka-Hing Cheung <khc@hxbc.us>
date Fri, 28 Mar 2008 07:58:20 +0000
parents c80d0732fa40
children b30f54a72031
line wrap: on
line diff
--- a/libpurple/protocols/msn/user.c	Thu Mar 27 06:32:31 2008 +0000
+++ b/libpurple/protocols/msn/user.c	Fri Mar 28 07:58:20 2008 +0000
@@ -97,8 +97,22 @@
 
 	if (user->status != NULL) {
 		gboolean offline = (strcmp(user->status, "offline") == 0);
-		purple_prpl_got_user_status(account, user->passport, user->status,
-				"message", user->statusline, NULL);
+
+		if (!offline) {
+			purple_prpl_got_user_status(account, user->passport, user->status,
+					"message", user->statusline, NULL);
+		} else {
+			if (user->mobile) {
+				purple_prpl_got_user_status(account, user->passport, "mobile", NULL);
+				purple_prpl_got_user_status(account, user->passport, "available", NULL);
+			} else {
+				purple_prpl_got_user_status(account, user->passport, user->status, NULL);
+			}
+		}
+
+		if (!offline || !user->mobile) {
+			purple_prpl_got_user_status_deactive(account, user->passport, "mobile");
+		}
 
 		if (!offline && user->media.title) {
 			purple_prpl_got_user_status(account, user->passport, "tune",
@@ -108,13 +122,7 @@
 					NULL);
 		} else {
 			purple_prpl_got_user_status_deactive(account, user->passport, "tune");
-		}
-
-		if (!offline && user->mobile) {
-			purple_prpl_got_user_status(account, user->passport, "mobile", NULL);
-		} else {
-			purple_prpl_got_user_status_deactive(account, user->passport, "mobile");
-		}
+		}			
 	}
 
 	if (user->idle)