# HG changeset patch # User Luke Schierer # Date 1186946161 0 # Node ID b39aa44b9769b70c76f19d1d2aeb00e841091f02 # Parent 874b727d8fa0895bea50efb68cb01962cdd34431# Parent 5e297b409b3a0ef47adfb3200c9d591e6c9ce402 merge of '55f3685b603ec55dbf23d659e71d47f554142a3e' and '70db886740a69295ddaca615e5c0fc01fe9dc27c' diff -r 5e297b409b3a -r b39aa44b9769 ChangeLog.win32 --- a/ChangeLog.win32 Thu Jul 12 11:40:17 2007 +0000 +++ b/ChangeLog.win32 Sun Aug 12 19:16:01 2007 +0000 @@ -9,6 +9,9 @@ Apple Bonjour for Windows from: http://www.apple.com/support/downloads/bonjourforwindows.html +version 2.0.1 (5/24/2007): + * No changes + version 2.0.0 (5/3/2007): * URI Handler support added via `pidgin.exe --protocolhandler=` * Running a second instance will popup the Buddy List, if possible. diff -r 5e297b409b3a -r b39aa44b9769 Makefile.mingw --- a/Makefile.mingw Thu Jul 12 11:40:17 2007 +0000 +++ b/Makefile.mingw Sun Aug 12 19:16:01 2007 +0000 @@ -67,6 +67,7 @@ $(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE) install $(MAKE) -C $(PIDGIN_TOP) -f $(MINGW_MAKEFILE) install $(MAKE) -C $(PURPLE_PO_TOP) -f $(MINGW_MAKEFILE) install + $(MAKE) -C share -f $(MINGW_MAKEFILE) install create_release_install_dir: install rm -rf $(PIDGIN_INSTALL_DIR).release diff -r 5e297b409b3a -r b39aa44b9769 libpurple/account.c --- a/libpurple/account.c Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/account.c Sun Aug 12 19:16:01 2007 +0000 @@ -1130,8 +1130,8 @@ void * purple_account_request_authorization(PurpleAccount *account, const char *remote_user, - const char *id, const char *alias, const char *message, gboolean on_list, - GCallback auth_cb, GCallback deny_cb, void *user_data) + const char *id, const char *alias, const char *message, gboolean on_list, + PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data) { PurpleAccountUiOps *ui_ops; PurpleAccountRequestInfo *info; @@ -1146,8 +1146,8 @@ info->type = PURPLE_ACCOUNT_REQUEST_AUTHORIZATION; info->account = account; info->ui_handle = ui_ops->request_authorize(account, remote_user, id, alias, message, - on_list, auth_cb, deny_cb, user_data); - + on_list, auth_cb, deny_cb, user_data); + handles = g_list_append(handles, info); return info->ui_handle; } diff -r 5e297b409b3a -r b39aa44b9769 libpurple/account.h --- a/libpurple/account.h Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/account.h Sun Aug 12 19:16:01 2007 +0000 @@ -242,7 +242,7 @@ */ void *purple_account_request_authorization(PurpleAccount *account, const char *remote_user, const char *id, const char *alias, const char *message, gboolean on_list, - GCallback auth_cb, GCallback deny_cb, void *user_data); + PurpleAccountRequestAuthorizationCb auth_cb, PurpleAccountRequestAuthorizationCb deny_cb, void *user_data); /** * Close account requests registered for the given PurpleAccount diff -r 5e297b409b3a -r b39aa44b9769 libpurple/plugins/perl/perl-handlers.c --- a/libpurple/plugins/perl/perl-handlers.c Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/plugins/perl/perl-handlers.c Sun Aug 12 19:16:01 2007 +0000 @@ -22,6 +22,7 @@ gchar *hvname; PurplePlugin *plugin; PurplePerlScript *gps; + STRLEN na; dSP; plugin = action->plugin; @@ -45,9 +46,16 @@ XPUSHs(purple_perl_bless_object(gps->plugin, "Purple::Plugin")); PUTBACK; - call_sv(*callback, G_VOID | G_DISCARD); + call_sv(*callback, G_EVAL | G_VOID | G_DISCARD); + SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl plugin action function exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + PUTBACK; FREETMPS; LEAVE; @@ -59,6 +67,7 @@ GList *l = NULL; PurplePerlScript *gps; int i = 0, count = 0; + STRLEN na; dSP; gps = (PurplePerlScript *)plugin->info->extra_info; @@ -77,10 +86,16 @@ XPUSHs(&PL_sv_undef); PUTBACK; - count = call_pv(gps->plugin_action_sub, G_ARRAY); + count = call_pv(gps->plugin_action_sub, G_EVAL | G_ARRAY); SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl plugin actions lookup exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + if (count == 0) croak("The plugin_actions sub didn't return anything.\n"); @@ -113,6 +128,7 @@ MAGIC *mg; GtkWidget *ret; PurplePerlScript *gps; + STRLEN na; dSP; gps = (PurplePerlScript *)plugin->info->extra_info; @@ -120,13 +136,19 @@ ENTER; SAVETMPS; - count = call_pv(gps->gtk_prefs_sub, G_SCALAR | G_NOARGS); + count = call_pv(gps->gtk_prefs_sub, G_EVAL | G_SCALAR | G_NOARGS); if (count != 1) croak("call_pv: Did not return the correct number of values.\n"); /* the frame was created in a perl sub and is returned */ SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl gtk plugin frame init exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + /* We have a Gtk2::Frame on top of the stack */ sv = POPs; @@ -150,6 +172,7 @@ int count; PurplePerlScript *gps; PurplePluginPrefFrame *ret_frame; + STRLEN na; dSP; gps = (PurplePerlScript *)plugin->info->extra_info; @@ -161,10 +184,16 @@ PUSHMARK(SP); PUTBACK; - count = call_pv(gps->prefs_sub, G_SCALAR | G_NOARGS); + count = call_pv(gps->prefs_sub, G_EVAL | G_SCALAR | G_NOARGS); SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl plugin prefs frame init exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + if (count != 1) croak("call_pv: Did not return the correct number of values.\n"); /* the frame was created in a perl sub and is returned */ @@ -215,6 +244,7 @@ { PurplePerlTimeoutHandler *handler = (PurplePerlTimeoutHandler *)data; gboolean ret = FALSE; + STRLEN na; dSP; ENTER; @@ -225,6 +255,12 @@ call_sv(handler->callback, G_EVAL | G_SCALAR); SPAGAIN; + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl timeout function exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + ret = POPi; PUTBACK; @@ -285,7 +321,7 @@ else ret_val = purple_perl_data_from_sv(ret_value, POPs); } else { - call_sv(handler->callback, G_SCALAR); + call_sv(handler->callback, G_EVAL | G_SCALAR); SPAGAIN; } @@ -501,6 +537,7 @@ gchar **args, gchar **error, void *data) { int i = 0, count, ret_value = PURPLE_CMD_RET_OK; + STRLEN na; SV *cmdSV, *tmpSV, *convSV; PurplePerlCmdHandler *handler = (PurplePerlCmdHandler *)data; @@ -532,11 +569,17 @@ } PUTBACK; - count = call_sv(handler->callback, G_EVAL|G_SCALAR); + count = call_sv(handler->callback, G_EVAL | G_SCALAR); if (count != 1) croak("call_sv: Did not return the correct number of values.\n"); + if (SvTRUE(ERRSV)) { + purple_debug_error("perl", + "Perl plugin command function exited abnormally: %s\n", + SvPV(ERRSV, na)); + } + SPAGAIN; ret_value = POPi; diff -r 5e297b409b3a -r b39aa44b9769 libpurple/protocols/jabber/auth.c --- a/libpurple/protocols/jabber/auth.c Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/protocols/jabber/auth.c Sun Aug 12 19:16:01 2007 +0000 @@ -682,11 +682,11 @@ gchar *a1, *convnode=NULL, *convpasswd = NULL, *ha1, *ha2, *kd, *x, *z; - if((convnode = g_convert(jid->node, strlen(jid->node), "iso-8859-1", "utf-8", + if((convnode = g_convert(jid->node, -1, "iso-8859-1", "utf-8", NULL, NULL, NULL)) == NULL) { convnode = g_strdup(jid->node); } - if(passwd && ((convpasswd = g_convert(passwd, strlen(passwd), "iso-8859-1", + if(passwd && ((convpasswd = g_convert(passwd, -1, "iso-8859-1", "utf-8", NULL, NULL, NULL)) == NULL)) { convpasswd = g_strdup(passwd); } diff -r 5e297b409b3a -r b39aa44b9769 libpurple/protocols/jabber/presence.c --- a/libpurple/protocols/jabber/presence.c Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/protocols/jabber/presence.c Sun Aug 12 19:16:01 2007 +0000 @@ -193,16 +193,18 @@ char *who; }; -static void authorize_add_cb(struct _jabber_add_permit *jap) +static void authorize_add_cb(gpointer data) { + struct _jabber_add_permit *jap = data; jabber_presence_subscription_set(jap->gc->proto_data, jap->who, "subscribed"); g_free(jap->who); g_free(jap); } -static void deny_add_cb(struct _jabber_add_permit *jap) +static void deny_add_cb(gpointer data) { + struct _jabber_add_permit *jap = data; jabber_presence_subscription_set(jap->gc->proto_data, jap->who, "unsubscribed"); @@ -305,7 +307,7 @@ jap->js = js; purple_account_request_authorization(purple_connection_get_account(js->gc), from, NULL, NULL, NULL, onlist, - G_CALLBACK(authorize_add_cb), G_CALLBACK(deny_add_cb), jap); + authorize_add_cb, deny_add_cb, jap); jabber_id_free(jid); return; } else if(type && !strcmp(type, "subscribed")) { diff -r 5e297b409b3a -r b39aa44b9769 libpurple/protocols/msn/userlist.c --- a/libpurple/protocols/msn/userlist.c Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/protocols/msn/userlist.c Sun Aug 12 19:16:01 2007 +0000 @@ -38,8 +38,9 @@ * Callbacks **************************************************************************/ static void -msn_accept_add_cb(MsnPermitAdd *pa) +msn_accept_add_cb(gpointer data) { + MsnPermitAdd *pa = data; MsnSession *session = pa->gc->proto_data; MsnUserList *userlist = session->userlist; @@ -51,8 +52,9 @@ } static void -msn_cancel_add_cb(MsnPermitAdd *pa) +msn_cancel_add_cb(gpointer data) { + MsnPermitAdd *pa = data; MsnSession *session = pa->gc->proto_data; MsnUserList *userlist = session->userlist; @@ -75,7 +77,7 @@ purple_account_request_authorization(purple_connection_get_account(gc), passport, NULL, friendly, NULL, purple_find_buddy(purple_connection_get_account(gc), passport) != NULL, - G_CALLBACK(msn_accept_add_cb), G_CALLBACK(msn_cancel_add_cb), pa); + msn_accept_add_cb, msn_cancel_add_cb, pa); } /************************************************************************** diff -r 5e297b409b3a -r b39aa44b9769 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.c Sun Aug 12 19:16:01 2007 +0000 @@ -482,7 +482,7 @@ /* Attempt to send as ASCII */ if (oscar_charset_check(from) == AIM_CHARSET_ASCII) { - *msg = g_convert(from, strlen(from), "ASCII", "UTF-8", NULL, &msglen, NULL); + *msg = g_convert(from, -1, "ASCII", "UTF-8", NULL, &msglen, NULL); *charset = AIM_CHARSET_ASCII; *charsubset = 0x0000; *msglen_int = msglen; @@ -504,7 +504,7 @@ b = purple_find_buddy(account, destsn); if ((b != NULL) && (PURPLE_BUDDY_IS_ONLINE(b))) { - *msg = g_convert(from, strlen(from), "UCS-2BE", "UTF-8", NULL, &msglen, NULL); + *msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, NULL); if (*msg != NULL) { *charset = AIM_CHARSET_UNICODE; @@ -527,7 +527,7 @@ * XXX - We need a way to only attempt to convert if we KNOW "from" * can be converted to "charsetstr" */ - *msg = g_convert(from, strlen(from), charsetstr, "UTF-8", NULL, &msglen, NULL); + *msg = g_convert(from, -1, charsetstr, "UTF-8", NULL, &msglen, NULL); if (*msg != NULL) { *charset = AIM_CHARSET_CUSTOM; *charsubset = 0x0000; @@ -538,7 +538,7 @@ /* * Nothing else worked, so send as UCS-2BE. */ - *msg = g_convert(from, strlen(from), "UCS-2BE", "UTF-8", NULL, &msglen, &err); + *msg = g_convert(from, -1, "UCS-2BE", "UTF-8", NULL, &msglen, &err); if (*msg != NULL) { *charset = AIM_CHARSET_UNICODE; *charsubset = 0x0000; @@ -2261,8 +2261,9 @@ /* When other people ask you for authorization */ static void -purple_auth_grant(struct name_data *data) +purple_auth_grant(gpointer cbdata) { + struct name_data *data = cbdata; PurpleConnection *gc = data->gc; OscarData *od = gc->proto_data; @@ -2282,8 +2283,9 @@ } static void -purple_auth_dontgrant_msgprompt(struct name_data *data) +purple_auth_dontgrant_msgprompt(gpointer cbdata) { + struct name_data *data = cbdata; purple_request_input(data->gc, NULL, _("Authorization Denied Message:"), NULL, _("No reason given."), TRUE, FALSE, NULL, _("_OK"), G_CALLBACK(purple_auth_dontgrant), @@ -2404,8 +2406,8 @@ purple_account_request_authorization(account, sn, NULL, NULL, reason, purple_find_buddy(account, sn) != NULL, - G_CALLBACK(purple_auth_grant), - G_CALLBACK(purple_auth_dontgrant_msgprompt), data); + purple_auth_grant, + purple_auth_dontgrant_msgprompt, data); g_free(reason); } } break; @@ -4346,10 +4348,10 @@ charset = oscar_charset_check(str); if (charset == AIM_CHARSET_UNICODE) { - encoded = g_convert(str, strlen(str), "UCS-2BE", "UTF-8", NULL, ret_len, NULL); + encoded = g_convert(str, -1, "UCS-2BE", "UTF-8", NULL, ret_len, NULL); *encoding = "unicode-2-0"; } else if (charset == AIM_CHARSET_CUSTOM) { - encoded = g_convert(str, strlen(str), "ISO-8859-1", "UTF-8", NULL, ret_len, NULL); + encoded = g_convert(str, -1, "ISO-8859-1", "UTF-8", NULL, ret_len, NULL); *encoding = "iso-8859-1"; } else { encoded = g_strdup(str); @@ -5170,8 +5172,8 @@ purple_account_request_authorization(account, sn, NULL, (buddy ? purple_buddy_get_alias_only(buddy) : NULL), - reason, buddy != NULL, G_CALLBACK(purple_auth_grant), - G_CALLBACK(purple_auth_dontgrant_msgprompt), data); + reason, buddy != NULL, purple_auth_grant, + purple_auth_dontgrant_msgprompt, data); g_free(reason); return 1; diff -r 5e297b409b3a -r b39aa44b9769 libpurple/protocols/yahoo/util.c --- a/libpurple/protocols/yahoo/util.c Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/protocols/yahoo/util.c Sun Aug 12 19:16:01 2007 +0000 @@ -61,7 +61,7 @@ else to_codeset = purple_account_get_string(purple_connection_get_account(gc), "local_charset", "ISO-8859-1"); - ret = g_convert_with_fallback(str, strlen(str), to_codeset, "UTF-8", "?", NULL, NULL, NULL); + ret = g_convert_with_fallback(str, -1, to_codeset, "UTF-8", "?", NULL, NULL, NULL); if (ret) return ret; else @@ -92,7 +92,7 @@ else from_codeset = purple_account_get_string(purple_connection_get_account(gc), "local_charset", "ISO-8859-1"); - ret = g_convert_with_fallback(str, strlen(str), "UTF-8", from_codeset, NULL, NULL, NULL, NULL); + ret = g_convert_with_fallback(str, -1, "UTF-8", from_codeset, NULL, NULL, NULL, NULL); if (ret) return ret; diff -r 5e297b409b3a -r b39aa44b9769 libpurple/protocols/yahoo/yahoo.c --- a/libpurple/protocols/yahoo/yahoo.c Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Sun Aug 12 19:16:01 2007 +0000 @@ -953,7 +953,8 @@ }; static void -yahoo_buddy_add_authorize_cb(struct yahoo_add_request *add_req) { +yahoo_buddy_add_authorize_cb(gpointer data) { + struct yahoo_add_request *add_req = data; g_free(add_req->id); g_free(add_req->who); g_free(add_req->msg); @@ -997,7 +998,8 @@ } static void -yahoo_buddy_add_deny_reason_cb(struct yahoo_add_request *add_req) { +yahoo_buddy_add_deny_reason_cb(gpointer data) { + struct yahoo_add_request *add_req = data; purple_request_input(add_req->gc, NULL, _("Authorization denied message:"), NULL, _("No reason given."), TRUE, FALSE, NULL, _("OK"), G_CALLBACK(yahoo_buddy_add_deny_cb), @@ -1042,8 +1044,8 @@ */ purple_account_request_authorization(purple_connection_get_account(gc), add_req->who, add_req->id, NULL, add_req->msg, purple_find_buddy(purple_connection_get_account(gc),add_req->who) != NULL, - G_CALLBACK(yahoo_buddy_add_authorize_cb), - G_CALLBACK(yahoo_buddy_add_deny_reason_cb), + yahoo_buddy_add_authorize_cb, + yahoo_buddy_add_deny_reason_cb, add_req); } else { g_free(add_req->id); diff -r 5e297b409b3a -r b39aa44b9769 libpurple/win32/global.mak --- a/libpurple/win32/global.mak Thu Jul 12 11:40:17 2007 +0000 +++ b/libpurple/win32/global.mak Sun Aug 12 19:16:01 2007 +0000 @@ -40,7 +40,6 @@ PIDGIN_IDLETRACK_TOP := $(PIDGIN_TOP)/win32/IdleTracker PIDGIN_PIXMAPS_TOP := $(PIDGIN_TOP)/pixmaps PIDGIN_PLUGINS_TOP := $(PIDGIN_TOP)/plugins -PIDGIN_SOUNDS_TOP := $(PIDGIN_TOP)/sounds PURPLE_PO_TOP := $(PIDGIN_TREE_TOP)/po PURPLE_PROTOS_TOP := $(PURPLE_TOP)/protocols diff -r 5e297b409b3a -r b39aa44b9769 pidgin/Makefile.mingw --- a/pidgin/Makefile.mingw Thu Jul 12 11:40:17 2007 +0000 +++ b/pidgin/Makefile.mingw Sun Aug 12 19:16:01 2007 +0000 @@ -146,7 +146,6 @@ install: install_shallow all $(MAKE) -C $(PIDGIN_PLUGINS_TOP) -f $(MINGW_MAKEFILE) install $(MAKE) -C $(PIDGIN_PIXMAPS_TOP) -f $(MINGW_MAKEFILE) install - $(MAKE) -C $(PIDGIN_SOUNDS_TOP) -f $(MINGW_MAKEFILE) install $(MAKE) -C $(PIDGIN_IDLETRACK_TOP) -f $(MINGW_MAKEFILE) install win32/pidgin_dll_rc.rc: win32/pidgin_dll_rc.rc.in $(PIDGIN_TREE_TOP)/VERSION diff -r 5e297b409b3a -r b39aa44b9769 pidgin/gtkimhtml.c --- a/pidgin/gtkimhtml.c Thu Jul 12 11:40:17 2007 +0000 +++ b/pidgin/gtkimhtml.c Sun Aug 12 19:16:01 2007 +0000 @@ -1037,7 +1037,7 @@ { char *tmp; - if (text == NULL) + if (text == NULL || !(*text)) return; tmp = g_markup_escape_text(text, -1); @@ -1053,7 +1053,7 @@ if (!gtk_text_view_get_editable(GTK_TEXT_VIEW(imhtml))) return; - if (imhtml->wbfo || selection_data->length < 0) { + if (imhtml->wbfo || selection_data->length <= 0) { gtk_clipboard_request_text(clipboard, paste_plaintext_received_cb, imhtml); return; } else { diff -r 5e297b409b3a -r b39aa44b9769 pidgin/plugins/win32/transparency/win2ktrans.c --- a/pidgin/plugins/win32/transparency/win2ktrans.c Thu Jul 12 11:40:17 2007 +0000 +++ b/pidgin/plugins/win32/transparency/win2ktrans.c Sun Aug 12 19:16:01 2007 +0000 @@ -274,9 +274,11 @@ gtk_window_get_size(GTK_WINDOW(win), &width, &height); gtk_box_pack_start(GTK_BOX(vbox), slider_box, FALSE, FALSE, 0); +#if 0 /*Now that we save window sizes, don't resize it or else it causes windows to grow*/ /* Make window taller so we don't slowly collapse its message area */ gtk_window_resize(GTK_WINDOW(win), width, (height + slidereq.height)); +#endif /* Add window to list, to track that it has a slider */ slidwin = g_new0(slider_win, 1); slidwin->win = win; @@ -292,6 +294,7 @@ slider_win *slidwin = (slider_win*) tmp->data; if (slidwin != NULL && GTK_IS_WINDOW(slidwin->win)) { +#if 0 GtkRequisition slidereq; gint width, height; /* Figure out how tall the slider was */ @@ -300,12 +303,13 @@ gtk_window_get_size( GTK_WINDOW(slidwin->win), &width, &height); - +#endif gtk_widget_destroy(slidwin->slider); - +#if 0 gtk_window_resize( GTK_WINDOW(slidwin->win), width, (height - slidereq.height)); +#endif } g_free(slidwin); tmp = tmp->next; diff -r 5e297b409b3a -r b39aa44b9769 share/Makefile.am --- a/share/Makefile.am Thu Jul 12 11:40:17 2007 +0000 +++ b/share/Makefile.am Sun Aug 12 19:16:01 2007 +0000 @@ -1,2 +1,4 @@ SUBDIRS = sounds + +EXTRA_DIST = Makefile.mingw diff -r 5e297b409b3a -r b39aa44b9769 share/Makefile.mingw --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/share/Makefile.mingw Sun Aug 12 19:16:01 2007 +0000 @@ -0,0 +1,19 @@ +# +# Makefile.mingw +# +# Description: Makefile for win32 (mingw) version +# + +PIDGIN_TREE_TOP := .. +include $(PIDGIN_TREE_TOP)/libpurple/win32/global.mak + +include ./Makefile.am + +.PHONY: install clean + +install: + if test '$(SUBDIRS)'; then \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + $(MAKE) -C $$subdir -f $(MINGW_MAKEFILE) install || exit 1 ;\ + done; \ + fi;