Mercurial > pidgin.yaz
diff libpurple/protocols/myspace/myspace.c @ 24632:128a77f3b3c4
Keep track of the user ID in the MsimUser struct so that we have a copy
even for people who aren't in our buddy list. This fixes the "View web
profile" link when getting info for people not in our buddy list.
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Fri, 12 Dec 2008 04:01:39 +0000 |
parents | 1af3baa61c9f |
children | c1c464583f8c 1260a3fb60f4 68f4edb42f39 |
line wrap: on
line diff
--- a/libpurple/protocols/myspace/myspace.c Fri Dec 12 03:46:36 2008 +0000 +++ b/libpurple/protocols/myspace/myspace.c Fri Dec 12 04:01:39 2008 +0000 @@ -1018,7 +1018,6 @@ { MsimSession *session; MsimUser *user; - guint uid; gchar *user_to_lookup; MsimMessage *user_msg; @@ -1033,8 +1032,8 @@ user = msim_find_user(session, username); /* If is on buddy list, lookup by uid since it is faster. */ - if (user && (uid = purple_blist_node_get_int(&user->buddy->node, "UserID"))) { - user_to_lookup = g_strdup_printf("%d", uid); + if (user && user->id) { + user_to_lookup = g_strdup_printf("%d", user->id); } else { /* Looking up buddy not on blist. Lookup by whatever user entered. */ user_to_lookup = g_strdup(username); @@ -1970,10 +1969,11 @@ purple_blist_add_buddy(buddy, NULL, NULL, NULL); user = msim_get_user_from_buddy(buddy); - - /* All buddies on list should have a UserID integer associated with them. */ - purple_blist_node_set_int(&buddy->node, "UserID", msim_msg_get_integer(msg, "f")); - + user->id = msim_msg_get_integer(msg, "f"); + + /* Keep track of the user ID across sessions */ + purple_blist_node_set_int(&buddy->node, "UserID", user->id); + msim_store_user_info(session, msg, NULL); } else { purple_debug_info("msim", "msim_status: found buddy %s\n", username); @@ -2866,7 +2866,8 @@ /* 3. Update buddy information */ user = msim_get_user_from_buddy(buddy); - /* All buddies on list should have 'uid' integer associated with them. */ + user->id = uid; + /* Keep track of the user ID across sessions */ purple_blist_node_set_int(&buddy->node, "UserID", uid); /* Stores a few fields in the MsimUser, relevant to the buddy itself.