comparison libpurple/protocols/myspace/user.c @ 25243:ae544623840b

propagate from branch 'im.pidgin.pidgin' (head f018e11a7ea08e07f22667e6daca2ec7e64f9710) to branch 'org.darkrain42.pidgin.buddy-add' (head e4fae922272cfd510a1f55595c374c2b9f665767)
author Paul Aurich <paul@darkrain42.org>
date Fri, 02 Jan 2009 19:27:02 +0000
parents 401f548e3544 c6cadb7bdcf7
children 9ea3474065dc
comparison
equal deleted inserted replaced
25242:6eecd6ba2862 25243:ae544623840b
53 } 53 }
54 54
55 if (create && !buddy->proto_data) { 55 if (create && !buddy->proto_data) {
56 /* No MsimUser for this buddy; make one. */ 56 /* No MsimUser for this buddy; make one. */
57 57
58 /* TODO: where is this freed? */
59 user = g_new0(MsimUser, 1); 58 user = g_new0(MsimUser, 1);
60 user->buddy = buddy; 59 user->buddy = buddy;
61 user->id = purple_blist_node_get_int(&buddy->node, "UserID"); 60 user->id = purple_blist_node_get_int((PurpleBlistNode*)buddy, "UserID");
62 buddy->proto_data = (gpointer)user; 61 buddy->proto_data = (gpointer)user;
63 } else { 62 } else {
64 user = (MsimUser *)(buddy->proto_data); 63 user = (MsimUser *)(buddy->proto_data);
65 } 64 }
66 65
67 return user; 66 return user;
67 }
68
69 void msim_user_free(MsimUser *user)
70 {
71 if (!user)
72 return;
73
74 g_free(user->client_info);
75 g_free(user->gender);
76 g_free(user->location);
77 g_free(user->headline);
78 g_free(user->display_name);
79 g_free(user->username);
80 g_free(user->band_name);
81 g_free(user->song_name);
82 g_free(user->image_url);
83 g_free(user);
68 } 84 }
69 85
70 /** 86 /**
71 * Find and return an MsimUser * representing a user on the buddy list, or NULL. 87 * Find and return an MsimUser * representing a user on the buddy list, or NULL.
72 */ 88 */
404 if (!body) { 420 if (!body) {
405 return FALSE; 421 return FALSE;
406 } 422 }
407 423
408 if (msim_msg_get_integer(msg, "dsn") == MG_OWN_IM_INFO_DSN && 424 if (msim_msg_get_integer(msg, "dsn") == MG_OWN_IM_INFO_DSN &&
409 msim_msg_get_integer(msg, "lid") == MG_OWN_IM_INFO_LID) { 425 msim_msg_get_integer(msg, "lid") == MG_OWN_IM_INFO_LID)
426 {
410 /* 427 /*
411 * Some of this info will be available on the buddy list if the 428 * Some of this info will be available on the buddy list if the
412 * has themselves as their own buddy. 429 * user has themselves as their own buddy.
413 * 430 *
414 * Much of the info is already available in MsimSession, 431 * Much of the info is already available in MsimSession,
415 * stored in msim_we_are_logged_on(). 432 * stored in msim_we_are_logged_on().
416 */ 433 */
417 gchar *tmpstr; 434 gchar *tmpstr;
429 "blocklist", MSIM_TYPE_BOOLEAN, TRUE, 446 "blocklist", MSIM_TYPE_BOOLEAN, TRUE,
430 "sesskey", MSIM_TYPE_INTEGER, session->sesskey, 447 "sesskey", MSIM_TYPE_INTEGER, session->sesskey,
431 "idlist", MSIM_TYPE_STRING, 448 "idlist", MSIM_TYPE_STRING,
432 g_strdup_printf("w%d|c%d", 449 g_strdup_printf("w%d|c%d",
433 session->show_only_to_list ? 1 : 0, 450 session->show_only_to_list ? 1 : 0,
434 session->privacy_mode), 451 session->privacy_mode & 1),
435 NULL); 452 NULL);
436 } else if (msim_msg_get_integer(msg, "dsn") == MG_OWN_MYSPACE_INFO_DSN && 453 } else if (msim_msg_get_integer(msg, "dsn") == MG_OWN_MYSPACE_INFO_DSN &&
437 msim_msg_get_integer(msg, "lid") == MG_OWN_MYSPACE_INFO_LID) { 454 msim_msg_get_integer(msg, "lid") == MG_OWN_MYSPACE_INFO_LID) {
438 /* TODO: same as above, but for MySpace info. */ 455 /* TODO: same as above, but for MySpace info. */
439 } 456 }