# HG changeset patch # User Sadrul Habib Chowdhury # Date 1208451663 0 # Node ID 9fa57410e7439d6e324be710661e50b0c7dbafbb # Parent 0723826f922983bf6c14bd0816d606e5164b8101# Parent 6827600df4fc5a91d10acc80f1f5052e7f61bcb2 merge of '61d502ea8377846692aea9189056d7c134660277' and 'a6270c0093cc57b6059401e4023a0ae6e7d8627f' diff -r 6827600df4fc -r 9fa57410e743 configure.ac --- a/configure.ac Thu Apr 17 16:59:31 2008 +0000 +++ b/configure.ac Thu Apr 17 17:01:03 2008 +0000 @@ -2248,7 +2248,7 @@ dnl ####################################################################### dnl # Disable pixmap installation dnl ####################################################################### -AC_ARG_ENABLE(pixmaps-install, AC_HELP_STRING([--disable-pixmaps-install], [disable installation of pixmap files]), enable_pixmaps="$enableval", enable_pixmaps=yes) +AC_ARG_ENABLE(pixmaps-install, AC_HELP_STRING([--disable-pixmaps-install], [disable installation of pixmap files - Pidgin still needs them!]), enable_pixmaps="$enableval", enable_pixmaps=yes) AM_CONDITIONAL(INSTALL_PIXMAPS, test "x$enable_pixmaps" = "xyes") @@ -2437,6 +2437,12 @@ if test "x$pidginpath" != "x" ; then echo Warning: You have an old copy of Pidgin at $pidginpath. fi +if test "x$enable_pixmaps" = "xno" ; then + echo + echo Warning: You have disabled the installation of pixmap data, but Pidgin + echo still requires installed pixmaps. Be sure you know what you\'re doing. +fi echo echo configure complete, now type \'make\' echo + diff -r 6827600df4fc -r 9fa57410e743 libpurple/blist.h --- a/libpurple/blist.h Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/blist.h Thu Apr 17 17:01:03 2008 +0000 @@ -475,7 +475,8 @@ * @param buddy The new buddy who gets added * @param contact The optional contact to place the buddy in. * @param group The group to add the new buddy to. - * @param node The insertion point + * @param node The insertion point. Pass in NULL to add the node as + * the last child in the given group. */ void purple_blist_add_buddy(PurpleBuddy *buddy, PurpleContact *contact, PurpleGroup *group, PurpleBlistNode *node); diff -r 6827600df4fc -r 9fa57410e743 libpurple/protocols/bonjour/jabber.c --- a/libpurple/protocols/bonjour/jabber.c Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/protocols/bonjour/jabber.c Thu Apr 17 17:01:03 2008 +0000 @@ -114,6 +114,28 @@ return "1"; } +static gchar * +get_xmlnode_contents(xmlnode *node) +{ + gchar *contents; + + contents = xmlnode_to_str(node, NULL); + + /* we just want the stuff inside + * There isn't stuff exposed in xmlnode.c to do this more cleanly. */ + + if (contents) { + char *bodystart = strchr(contents, '>'); + char *bodyend = strrchr(bodystart, '<'); + if (bodystart && bodyend && (bodystart + 1) != bodyend) { + *bodyend = '\0'; + memmove(contents, bodystart + 1, (bodyend - bodystart)); + } + } + + return contents; +} + static void _jabber_parse_and_write_message_to_ui(xmlnode *message_node, PurpleBuddy *pb) { @@ -167,7 +189,7 @@ if (font_size != NULL) font_size = _font_size_ichat_to_purple(atoi(font_size)); font_color = xmlnode_get_attrib(html_body_font_node, "color"); - html_body = xmlnode_get_data(html_body_font_node); + html_body = get_xmlnode_contents(html_body_font_node); if (html_body == NULL) /* This is the kind of formated messages that Purple creates */ diff -r 6827600df4fc -r 9fa57410e743 libpurple/protocols/jabber/auth.c --- a/libpurple/protocols/jabber/auth.c Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/protocols/jabber/auth.c Thu Apr 17 17:01:03 2008 +0000 @@ -490,12 +490,6 @@ { char *mech_name = xmlnode_get_data(mechnode); #ifdef HAVE_CYRUS_SASL - /* Skip the GSSAPI mechanism unless it's enabled for this account */ - if (mech_name && !strcmp(mech_name, "GSSAPI") && - !purple_account_get_bool(js->gc->account, "auth_gssapi", TRUE)) { - continue; - } - g_string_append(js->sasl_mechs, mech_name); g_string_append_c(js->sasl_mechs, ' '); #else @@ -723,13 +717,16 @@ } else if(xmlnode_get_child(query, "password")) { if(js->gsc == NULL && !purple_account_get_bool(js->gc->account, "auth_plain_in_clear", FALSE)) { + char *msg = g_strdup_printf(_("%s requires plaintext authentication over an unencrypted connection. Allow this and continue authentication?"), + js->gc->account->username); purple_request_yes_no(js->gc, _("Plaintext Authentication"), _("Plaintext Authentication"), - _("This server requires plaintext authentication over an unencrypted connection. Allow this and continue authentication?"), + msg, 1, purple_connection_get_account(js->gc), NULL, NULL, purple_connection_get_account(js->gc), allow_plaintext_auth, disallow_plaintext_auth); + g_free(msg); return; } finish_plaintext_authentication(js); diff -r 6827600df4fc -r 9fa57410e743 libpurple/protocols/jabber/libxmpp.c --- a/libpurple/protocols/jabber/libxmpp.c Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/protocols/jabber/libxmpp.c Thu Apr 17 17:01:03 2008 +0000 @@ -223,14 +223,6 @@ "auth_plain_in_clear", FALSE); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, option); - -#ifdef HAVE_CYRUS_SASL - option = purple_account_option_bool_new( - _("Use GSSAPI (Kerberos v5) for authentication"), - "auth_gssapi", TRUE); - prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, - option); -#endif option = purple_account_option_int_new(_("Connect port"), "port", 5222); prpl_info.protocol_options = g_list_append(prpl_info.protocol_options, diff -r 6827600df4fc -r 9fa57410e743 libpurple/protocols/jabber/si.c --- a/libpurple/protocols/jabber/si.c Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/protocols/jabber/si.c Thu Apr 17 17:01:03 2008 +0000 @@ -664,6 +664,9 @@ if(!(jid = xmlnode_get_attrib(streamhost_used, "jid"))) return; + purple_debug_info("jabber", "jabber_si_connect_proxy_cb() will be looking at jsx %p: jsx->streamhosts is %p and jid is %p", + jsx, jsx->streamhosts, jid); + if(!(matched = g_list_find_custom(jsx->streamhosts, jid, jabber_si_compare_jid))) { gchar *my_jid = g_strdup_printf("%s@%s/%s", jsx->js->user->node, @@ -780,6 +783,8 @@ g_snprintf(port, sizeof(port), "%hu", portnum); + purple_debug_info("jabber", "jabber_si_xfer_bytestreams_listen_cb() will be looking at jsx %p: jsx->streamhosts %p and ft_proxy_list[%i] %p", + jsx, jsx->streamhosts, i, ft_proxy_list[i]); if(g_list_find_custom(jsx->streamhosts, ft_proxy_list[i], jabber_si_compare_jid) != NULL) continue; @@ -807,6 +812,8 @@ if (!(sh->jid && sh->host && sh->port > 0)) continue; + purple_debug_info("jabber", "jabber_si_xfer_bytestreams_listen_cb() will be looking at jsx %p: jsx->streamhosts %p and sh->jid %p", + jsx, jsx->streamhosts, sh->jid); if(g_list_find_custom(jsx->streamhosts, sh->jid, jabber_si_compare_jid) != NULL) continue; @@ -969,6 +976,8 @@ g_free(jsx->rxqueue); g_free(jsx); xfer->data = NULL; + + purple_debug_info("jabber", "jabber_si_xfer_free(): freeing jsx %p", jsx); } static void jabber_si_xfer_cancel_send(PurpleXfer *xfer) diff -r 6827600df4fc -r 9fa57410e743 libpurple/protocols/msnp9/userlist.c --- a/libpurple/protocols/msnp9/userlist.c Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/protocols/msnp9/userlist.c Thu Apr 17 17:01:03 2008 +0000 @@ -362,6 +362,20 @@ passport = msn_user_get_passport(user); store = msn_user_get_friendly_name(user); + if (list_op & MSN_LIST_AL_OP) + { + /* These are users who are allowed to see our status. */ + purple_privacy_deny_remove(account, passport, TRUE); + purple_privacy_permit_add(account, passport, TRUE); + } + + if (list_op & MSN_LIST_BL_OP) + { + /* These are users who are not allowed to see our status. */ + purple_privacy_permit_remove(account, passport, TRUE); + purple_privacy_deny_add(account, passport, TRUE); + } + if (list_op & MSN_LIST_FL_OP) { GSList *c; @@ -377,20 +391,6 @@ serv_got_alias(gc, passport, store); } - if (list_op & MSN_LIST_AL_OP) - { - /* These are users who are allowed to see our status. */ - purple_privacy_deny_remove(account, passport, TRUE); - purple_privacy_permit_add(account, passport, TRUE); - } - - if (list_op & MSN_LIST_BL_OP) - { - /* These are users who are not allowed to see our status. */ - purple_privacy_permit_remove(account, passport, TRUE); - purple_privacy_deny_add(account, passport, TRUE); - } - if (list_op & MSN_LIST_RL_OP) { /* These are users who have us on their buddy list. */ diff -r 6827600df4fc -r 9fa57410e743 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/protocols/oscar/oscar.c Thu Apr 17 17:01:03 2008 +0000 @@ -2274,19 +2274,6 @@ } static void -purple_auth_dontrequest(struct name_data *data) -{ - PurpleConnection *gc = data->gc; - PurpleBuddy *b = purple_find_buddy(purple_connection_get_account(gc), data->name); - - /* Remove from local list */ - purple_blist_remove_buddy(b); - - oscar_free_name_data(data); -} - - -static void purple_auth_sendrequest(PurpleConnection *gc, const char *name) { struct name_data *data; @@ -2298,12 +2285,11 @@ purple_request_input(data->gc, NULL, _("Authorization Request Message:"), NULL, _("Please authorize me!"), TRUE, FALSE, NULL, _("_OK"), G_CALLBACK(purple_auth_request), - _("_Cancel"), G_CALLBACK(purple_auth_dontrequest), + _("_Cancel"), G_CALLBACK(oscar_free_name_data), purple_connection_get_account(gc), name, NULL, data); } - static void purple_auth_sendrequest_menu(PurpleBlistNode *node, gpointer ignored) { @@ -4804,12 +4790,6 @@ oscar_set_extendedstatus(gc); - /* Activate SSI */ - /* Sending the enable causes other people to be able to see you, and you to see them */ - /* Make sure your privacy setting/invisibility is set how you want it before this! */ - purple_debug_info("oscar", "ssi: activating server-stored buddy list\n"); - aim_ssi_enable(od); - return 1; } diff -r 6827600df4fc -r 9fa57410e743 libpurple/protocols/yahoo/yahoo.c --- a/libpurple/protocols/yahoo/yahoo.c Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/protocols/yahoo/yahoo.c Thu Apr 17 17:01:03 2008 +0000 @@ -346,7 +346,7 @@ break; default: - purple_debug(PURPLE_DEBUG_ERROR, "yahoo", + purple_debug_warning("yahoo", "Unknown status key %d\n", pair->key); break; } @@ -518,7 +518,7 @@ } else { /* This buddy is on the ignore list (and therefore in no group) */ - purple_debug_info("yahoo", "%s adding %s to the deny list because of the ignore list / no group was found", + purple_debug_info("yahoo", "%s adding %s to the deny list because of the ignore list / no group was found\n", account->username, norm_bud); purple_privacy_deny_add(account, norm_bud, 1); } diff -r 6827600df4fc -r 9fa57410e743 libpurple/util.h --- a/libpurple/util.h Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/util.h Thu Apr 17 17:01:03 2008 +0000 @@ -476,7 +476,8 @@ * * @param str The string to strip HTML from. * - * @return The new string without HTML. This must be freed. + * @return The new string without HTML. You must g_free this string + * when finished with it. */ char *purple_markup_strip_html(const char *str); @@ -485,7 +486,9 @@ * * @param str The string to linkify. * - * @return The linkified text. + * @return The new string with all URIs surrounded in standard + * HTML tags. You must g_free this + * string when finished with it. */ char *purple_markup_linkify(const char *str); @@ -497,7 +500,8 @@ * * @param html The string in which to unescape any HTML entities * - * @return the text with HTML entities literalized + * @return The text with HTML entities literalized. You must g_free + * this string when finished with it. */ char *purple_unescape_html(const char *html); diff -r 6827600df4fc -r 9fa57410e743 libpurple/win32/libc_interface.h --- a/libpurple/win32/libc_interface.h Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/win32/libc_interface.h Thu Apr 17 17:01:03 2008 +0000 @@ -44,8 +44,8 @@ #endif /* sys/socket.h */ -#define socket( namespace, style, protocol ) \ -wpurple_socket( namespace, style, protocol ) +#define socket( domain, style, protocol ) \ +wpurple_socket( domain, style, protocol ) #define connect( socket, addr, length ) \ wpurple_connect( socket, addr, length ) diff -r 6827600df4fc -r 9fa57410e743 libpurple/win32/libc_internal.h --- a/libpurple/win32/libc_internal.h Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/win32/libc_internal.h Thu Apr 17 17:01:03 2008 +0000 @@ -30,7 +30,7 @@ #endif /* __cplusplus */ /* sys/socket.h */ -int wpurple_socket(int namespace, int style, int protocol); +int wpurple_socket(int domain, int style, int protocol); int wpurple_connect(int socket, struct sockaddr *addr, u_long length); int wpurple_getsockopt(int socket, int level, int optname, void *optval, socklen_t *optlenptr); int wpurple_setsockopt(int socket, int level, int optname, const void *optval, socklen_t optlen); diff -r 6827600df4fc -r 9fa57410e743 libpurple/win32/targets.mak --- a/libpurple/win32/targets.mak Thu Apr 17 16:59:31 2008 +0000 +++ b/libpurple/win32/targets.mak Thu Apr 17 17:01:03 2008 +0000 @@ -12,11 +12,10 @@ sed -e 's/@PLUGINS_DEFINE@/#define PURPLE_PLUGINS 1/' $@.in > $@ $(PURPLE_VERSION_H): $(PURPLE_VERSION_H).in $(PIDGIN_TREE_TOP)/configure.ac - cp $@.in $@ awk 'BEGIN {FS="[\\(\\)\\[\\]]"} \ - /^m4_define..purple_major_version/ {system("sed -i -e s/@PURPLE_MAJOR_VERSION@/"$$5"/ $@");} \ - /^m4_define..purple_minor_version/ {system("sed -i -e s/@PURPLE_MINOR_VERSION@/"$$5"/ $@");} \ - /^m4_define..purple_micro_version/ {system("sed -i -e s/@PURPLE_MICRO_VERSION@/"$$5"/ $@"); exit}' $(PIDGIN_TREE_TOP)/configure.ac + /^m4_define..purple_major_version/ {system("sed -e s/@PURPLE_MAJOR_VERSION@/"$$5"/ $@.in > $@");} \ + /^m4_define..purple_minor_version/ {system("sed -e s/@PURPLE_MINOR_VERSION@/"$$5"/ $@ > $@.tmp & mv $@.tmp $@");} \ + /^m4_define..purple_micro_version/ {system("sed -e s/@PURPLE_MICRO_VERSION@/"$$5"/ $@ > $@.tmp & mv $@.tmp $@"); exit}' $(PIDGIN_TREE_TOP)/configure.ac $(PURPLE_DLL) $(PURPLE_DLL).a: $(PURPLE_VERSION_H) $(MAKE) -C $(PURPLE_TOP) -f $(MINGW_MAKEFILE) libpurple.dll diff -r 6827600df4fc -r 9fa57410e743 pidgin/gtkblist.c --- a/pidgin/gtkblist.c Thu Apr 17 16:59:31 2008 +0000 +++ b/pidgin/gtkblist.c Thu Apr 17 17:01:03 2008 +0000 @@ -4436,9 +4436,10 @@ } static gboolean -headline_click_callback(gpointer data) -{ - ((GSourceFunc)gtkblist->headline_callback)(gtkblist->headline_data); +headline_click_callback(gpointer unused) +{ + if (gtkblist->headline_callback) + ((GSourceFunc) gtkblist->headline_callback)(gtkblist->headline_data); reset_headline(gtkblist); return FALSE; } @@ -4448,7 +4449,7 @@ { gtk_widget_hide(gtkblist->headline_hbox); if (gtkblist->headline_callback && !headline_hover_close((int)event->x, (int)event->y)) - g_idle_add((GSourceFunc)headline_click_callback, gtkblist->headline_data); + g_idle_add(headline_click_callback, NULL); else { if (gtkblist->headline_destroy) gtkblist->headline_destroy(gtkblist->headline_data);