| 151 { |
151 { |
| 152 const char *store_name; |
152 const char *store_name; |
| 153 |
153 |
| 154 g_return_val_if_fail(user != NULL, NULL); |
154 g_return_val_if_fail(user != NULL, NULL); |
| 155 |
155 |
| 156 if ((store_name = msn_user_get_store_name(user)) != NULL) |
156 store_name = msn_user_get_store_name(user); |
| 157 return gaim_url_encode(store_name); |
157 |
| 158 |
158 if (store_name != NULL) |
| 159 return msn_user_get_passport(user); |
159 store_name = gaim_url_encode(store_name); |
| |
160 else |
| |
161 store_name = msn_user_get_passport(user); |
| |
162 |
| |
163 /* this might be a bit of a hack, but it should prevent notification server |
| |
164 * disconnections for people who have buddies with insane friendly names |
| |
165 * who added you to their buddy list from being disconnected. Stu. */ |
| |
166 /* Shx: What? Isn't the store_name obtained from the server, and hence it's |
| |
167 * below the BUDDY_ALIAS_MAXLEN ? */ |
| |
168 /* Stu: yeah, that's why it's a bit of a hack, as you pointed out, we're |
| |
169 * probably decoding the incoming store_name wrong, or something. bleh. */ |
| |
170 |
| |
171 if (strlen(store_name) > BUDDY_ALIAS_MAXLEN) |
| |
172 store_name = msn_user_get_passport(user); |
| |
173 |
| |
174 return store_name; |
| 160 } |
175 } |
| 161 |
176 |
| 162 static void |
177 static void |
| 163 msn_request_add_group(MsnUserList *userlist, const char *who, |
178 msn_request_add_group(MsnUserList *userlist, const char *who, |
| 164 const char *old_group_name, const char *new_group_name) |
179 const char *old_group_name, const char *new_group_name) |
| 464 |
479 |
| 465 void |
480 void |
| 466 msn_userlist_remove_group(MsnUserList *userlist, MsnGroup *group) |
481 msn_userlist_remove_group(MsnUserList *userlist, MsnGroup *group) |
| 467 { |
482 { |
| 468 userlist->groups = g_list_remove(userlist->groups, group); |
483 userlist->groups = g_list_remove(userlist->groups, group); |
| 469 msn_group_destroy(group); |
|
| 470 } |
484 } |
| 471 |
485 |
| 472 MsnGroup * |
486 MsnGroup * |
| 473 msn_userlist_find_group_with_id(MsnUserList *userlist, int id) |
487 msn_userlist_find_group_with_id(MsnUserList *userlist, int id) |
| 474 { |
488 { |
| 551 MsnGroup *group; |
565 MsnGroup *group; |
| 552 |
566 |
| 553 group = msn_userlist_find_group_with_id(userlist, group_id); |
567 group = msn_userlist_find_group_with_id(userlist, group_id); |
| 554 |
568 |
| 555 if (group != NULL) |
569 if (group != NULL) |
| |
570 { |
| 556 msn_userlist_remove_group(userlist, group); |
571 msn_userlist_remove_group(userlist, group); |
| |
572 msn_group_destroy(group); |
| |
573 } |
| 557 } |
574 } |
| 558 |
575 |
| 559 void |
576 void |
| 560 msn_userlist_rem_buddy(MsnUserList *userlist, |
577 msn_userlist_rem_buddy(MsnUserList *userlist, |
| 561 const char *who, int list_id, const char *group_name) |
578 const char *who, int list_id, const char *group_name) |
| 628 return; |
645 return; |
| 629 } |
646 } |
| 630 |
647 |
| 631 store_name = (user != NULL) ? get_store_name(user) : who; |
648 store_name = (user != NULL) ? get_store_name(user) : who; |
| 632 |
649 |
| 633 /* this might be a bit of a hack, but it should prevent notification server |
|
| 634 * disconnections for people who have buddies with insane friendly names |
|
| 635 * who added you to their buddy list from being disconnected. Stu. */ |
|
| 636 /* ... No, that sentence didn't parse for me either. Stu. */ |
|
| 637 if (strlen(store_name) > BUDDY_ALIAS_MAXLEN) |
|
| 638 store_name = who; |
|
| 639 |
|
| 640 /* Then request the add to the server. */ |
650 /* Then request the add to the server. */ |
| 641 list = lists[list_id]; |
651 list = lists[list_id]; |
| 642 |
652 |
| 643 msn_notification_add_buddy(userlist->session->notification, list, who, |
653 msn_notification_add_buddy(userlist->session->notification, list, who, |
| 644 store_name, group_id); |
654 store_name, group_id); |