Mercurial > pidgin
diff libpurple/protocols/msn/user.c @ 30692:1830fa548302
propagate from branch 'im.pidgin.pidgin' (head b0098e2250f135d121960d8152e144e7e344125e)
to branch 'im.pidgin.cpw.qulogic.msnp16' (head 03b7207e3af73e90ff9aea7c633dec9dd9d3ed1a)
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sat, 06 Feb 2010 05:15:35 +0000 |
parents | f56126c5aa44 746bf7d8b34e |
children | 6376fc7a092e |
line wrap: on
line diff
--- a/libpurple/protocols/msn/user.c Thu Feb 04 20:57:01 2010 +0000 +++ b/libpurple/protocols/msn/user.c Sat Feb 06 05:15:35 2010 +0000 @@ -75,12 +75,15 @@ g_free(user->passport); g_free(user->friendly_name); g_free(user->uid); - g_free(user->phone.home); - g_free(user->phone.work); - g_free(user->phone.mobile); - g_free(user->media.artist); - g_free(user->media.title); - g_free(user->media.album); + if (user->extinfo) { + g_free(user->extinfo->media_album); + g_free(user->extinfo->media_artist); + g_free(user->extinfo->media_title); + g_free(user->extinfo->phone_home); + g_free(user->extinfo->phone_mobile); + g_free(user->extinfo->phone_work); + g_free(user->extinfo); + } g_free(user->statusline); g_free(user->invite_message); @@ -115,24 +118,24 @@ purple_prpl_got_user_status_deactive(account, user->passport, "mobile"); } - if (!offline && user->media.type != CURRENT_MEDIA_UNKNOWN) { - if (user->media.type == CURRENT_MEDIA_MUSIC) { + if (!offline && user->extinfo && user->extinfo->media_type != CURRENT_MEDIA_UNKNOWN) { + if (user->extinfo->media_type == CURRENT_MEDIA_MUSIC) { purple_prpl_got_user_status(account, user->passport, "tune", - PURPLE_TUNE_ARTIST, user->media.artist, - PURPLE_TUNE_ALBUM, user->media.album, - PURPLE_TUNE_TITLE, user->media.title, + PURPLE_TUNE_ARTIST, user->extinfo->media_artist, + PURPLE_TUNE_ALBUM, user->extinfo->media_album, + PURPLE_TUNE_TITLE, user->extinfo->media_title, NULL); - } else if (user->media.type == CURRENT_MEDIA_GAMES) { + } else if (user->extinfo->media_type == CURRENT_MEDIA_GAMES) { purple_prpl_got_user_status(account, user->passport, "tune", - "game", user->media.title, + "game", user->extinfo->media_title, NULL); - } else if (user->media.type == CURRENT_MEDIA_OFFICE) { + } else if (user->extinfo->media_type == CURRENT_MEDIA_OFFICE) { purple_prpl_got_user_status(account, user->passport, "tune", - "office", user->media.title, + "office", user->extinfo->media_title, NULL); } else { purple_debug_warning("msn", "Got CurrentMedia with unknown type %d.\n", - user->media.type); + user->extinfo->media_type); } } else { purple_prpl_got_user_status_deactive(account, user->passport, "tune"); @@ -216,21 +219,6 @@ } void -msn_user_set_currentmedia(MsnUser *user, const CurrentMedia *media) -{ - g_return_if_fail(user != NULL); - - g_free(user->media.title); - g_free(user->media.album); - g_free(user->media.artist); - - user->media.type = media ? media->type : CURRENT_MEDIA_UNKNOWN; - user->media.title = media ? g_strdup(media->title) : NULL; - user->media.artist = media ? g_strdup(media->artist) : NULL; - user->media.album = media ? g_strdup(media->album) : NULL; -} - -void msn_user_set_uid(MsnUser *user, const char *uid) { g_return_if_fail(user != NULL); @@ -415,8 +403,15 @@ { g_return_if_fail(user != NULL); - g_free(user->phone.home); - user->phone.home = g_strdup(number); + if (!number && !user->extinfo) + return; + + if (user->extinfo) + g_free(user->extinfo->phone_home); + else + user->extinfo = g_new0(MsnUserExtendedInfo, 1); + + user->extinfo->phone_home = g_strdup(number); } void @@ -424,8 +419,15 @@ { g_return_if_fail(user != NULL); - g_free(user->phone.work); - user->phone.work = g_strdup(number); + if (!number && !user->extinfo) + return; + + if (user->extinfo) + g_free(user->extinfo->phone_work); + else + user->extinfo = g_new0(MsnUserExtendedInfo, 1); + + user->extinfo->phone_work = g_strdup(number); } void @@ -433,8 +435,15 @@ { g_return_if_fail(user != NULL); - g_free(user->phone.mobile); - user->phone.mobile = g_strdup(number); + if (!number && !user->extinfo) + return; + + if (user->extinfo) + g_free(user->extinfo->phone_mobile); + else + user->extinfo = g_new0(MsnUserExtendedInfo, 1); + + user->extinfo->phone_mobile = g_strdup(number); } void @@ -517,7 +526,7 @@ { g_return_val_if_fail(user != NULL, NULL); - return user->phone.home; + return user->extinfo ? user->extinfo->phone_home : NULL; } const char * @@ -525,7 +534,7 @@ { g_return_val_if_fail(user != NULL, NULL); - return user->phone.work; + return user->extinfo ? user->extinfo->phone_work : NULL; } const char * @@ -533,7 +542,7 @@ { g_return_val_if_fail(user != NULL, NULL); - return user->phone.mobile; + return user->extinfo ? user->extinfo->phone_mobile : NULL; } guint