# HG changeset patch # User Sean Egan # Date 1015373882 0 # Node ID 08327a2f25aa68e0e7e7469a374960d024f29c41 # Parent c809f2ed3d92aac1e42781b42a3c3e0b4b97e503 [gaim-migrate @ 3025] Lots of people have a problem with people who were added to their MSN reverse list while they were offline, not being prompted to add them to their allow list. Jason Willis fixed that. Also added a global buddy icon animation preference by Luke Schierer. committer: Tailor Script diff -r c809f2ed3d92 -r 08327a2f25aa ChangeLog --- a/ChangeLog Tue Mar 05 23:20:51 2002 +0000 +++ b/ChangeLog Wed Mar 06 00:18:02 2002 +0000 @@ -4,6 +4,10 @@ * Compiles without GdkPixbuf again * GtkIMHtml will refresh when you set a new GTK+ theme * Improved Yahoo! typing notification (thanks Brian Macke) + * Prompt to authorize MSN buddies who added you while you + were offline (Thanks Jason Willis) + * Option to globally disable Buddy Icon animation (Thanks + Luke Schierer) version 0.53 (02/28/2002): * Updated Polish Translation (thanks Przemyslaw Sulek) diff -r c809f2ed3d92 -r 08327a2f25aa src/conversation.c --- a/src/conversation.c Tue Mar 05 23:20:51 2002 +0000 +++ b/src/conversation.c Wed Mar 06 00:18:02 2002 +0000 @@ -3287,6 +3287,8 @@ gtk_widget_set_usize(c->icon, sf, sf); gtk_container_add(GTK_CONTAINER(event), c->icon); gtk_widget_show(c->icon); + if(im_options & OPT_IM_NO_ANIMATION) + stop_anim(c->icon, c); gdk_pixmap_unref(pm); if (bm) gdk_bitmap_unref(bm); diff -r c809f2ed3d92 -r 08327a2f25aa src/gaim.h --- a/src/gaim.h Tue Mar 05 23:20:51 2002 +0000 +++ b/src/gaim.h Wed Mar 06 00:18:02 2002 +0000 @@ -233,6 +233,7 @@ #define OPT_IM_SIDE_TAB 0x00000020 #define OPT_IM_BR_TAB 0x00000040 #define OPT_IM_HIDE_ICONS 0x00000080 +#define OPT_IM_NO_ANIMATION 0x00000100 #define OPT_IM_ALIAS_TAB 0x00002000 #define OPT_IM_POPDOWN 0x00004000 diff -r c809f2ed3d92 -r 08327a2f25aa src/prefs.c --- a/src/prefs.c Tue Mar 05 23:20:51 2002 +0000 +++ b/src/prefs.c Wed Mar 06 00:18:02 2002 +0000 @@ -1009,7 +1009,12 @@ gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); gtk_widget_show(vbox); - gaim_button(_("Hide Buddy Icons"), &im_options, OPT_IM_HIDE_ICONS, vbox); + hbox = gtk_hbox_new(FALSE, 5); + gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 5); + gtk_widget_show(hbox); + gaim_button(_("Hide Buddy Icons"), &im_options, OPT_IM_HIDE_ICONS, hbox); + + gaim_button(_("Disable Buddy Icon Animation"), &im_options, OPT_IM_NO_ANIMATION, hbox); #endif gtk_widget_show(prefdialog); diff -r c809f2ed3d92 -r 08327a2f25aa src/protocols/msn/msn.c --- a/src/protocols/msn/msn.c Tue Mar 05 23:20:51 2002 +0000 +++ b/src/protocols/msn/msn.c Wed Mar 06 00:18:02 2002 +0000 @@ -699,7 +699,6 @@ return; } build_allow_list(); /* er. right. we'll need to have a thing for this in CUI too */ - show_got_added(map->gc, NULL, map->user, map->friend, NULL); } @@ -847,6 +846,10 @@ serv_got_update(gc, user, 1, 0, 0, 0, status, 0); } else if (!g_strncasecmp(buf, "LST", 3)) { char *which, *who, *friend, *tmp = buf; + struct msn_add_permit *ap; /* for any as yet undealt with buddies who've added you to their buddy list when you were off-line. How dare they! */ + GSList *perm = gc->permit; /* current permit list */ + char msg[MSN_BUF_LEN]; + int new = 1; int pos, tot; GET_NEXT(tmp); @@ -874,8 +877,25 @@ } else if (!g_strcasecmp(which, "BL") && pos) { gc->deny = g_slist_append(gc->deny, g_strdup(who)); } else if (!g_strcasecmp(which, "RL")) { - if (pos != tot) - return 1; + while(perm) { + if(!g_strcasecmp(perm->data, who)) + new = 0; + perm = perm->next; + } + + if(new) { + debug_printf("Unresolved MSN RL entry"); + ap = g_new0(struct msn_add_permit, 1); + ap->user = g_strdup(who); + ap->friend = g_strdup(friend); + ap->gc = gc; + + g_snprintf(msg, sizeof(msg), "The user %s (%s) wants to add you to their buddy list",ap->user, url_decode(ap->friend)); + do_ask_dialog(msg, ap, msn_accept_add, msn_cancel_add); + } + + if (pos != tot) + return 1; /* this isn't the last one in the RL, so return. */ g_snprintf(sendbuf, sizeof(sendbuf), "CHG %d NLN\r\n", ++md->trId); if (msn_write(md->fd, sendbuf, strlen(sendbuf)) < 0) { diff -r c809f2ed3d92 -r 08327a2f25aa src/protocols/oscar/ft.c --- a/src/protocols/oscar/ft.c Tue Mar 05 23:20:51 2002 +0000 +++ b/src/protocols/oscar/ft.c Wed Mar 06 00:18:02 2002 +0000 @@ -1115,7 +1115,7 @@ i = aim_recv(conn->fd, msg2, 1024); else i = aim_recv(conn->fd, msg2, payloadlength - recvd); - if (i == 0) { + if (i <= 0) { free(msg); return -1; }