# HG changeset patch # User Richard Laager # Date 1176579501 0 # Node ID fb4efe5ab1fafc8a817418c99ddcd58456850b67 # Parent f3559f8d2fc169ece855b9696f30e6f409dd3364# Parent 85cb31e3d4d862e4b108beeca267492cdb354c83 merge of '01e42cca23c49f916ae6e003641408af389cf912' and '65c6f99cb9d7e4af07707353e942056f8e318afc' diff -r f3559f8d2fc1 -r fb4efe5ab1fa .mtn-ignore --- a/.mtn-ignore Sat Apr 14 19:06:19 2007 +0000 +++ b/.mtn-ignore Sat Apr 14 19:38:21 2007 +0000 @@ -29,6 +29,7 @@ pidgin.desktop pidgin.spec pidgin-.*.tar.gz +pidgin-.*.tar.bz2 pidgin/pidgin pidgin/plugins/musicmessaging/music-messaging-bindings.c pidgin/plugins/perl/common/Makefile.PL diff -r f3559f8d2fc1 -r fb4efe5ab1fa ChangeLog --- a/ChangeLog Sat Apr 14 19:06:19 2007 +0000 +++ b/ChangeLog Sat Apr 14 19:38:21 2007 +0000 @@ -77,6 +77,7 @@ button on the toolbar.) * Performance while joining large chat rooms has been significantly improved (Aaron Sheldon, Google Summer of Code) + * Bi-Directional text support improvements for GtkIMHtml (Shlomi Loubaton) Sounds: * Beautiful new default sounds (Brad Turcotte) @@ -138,6 +139,7 @@ * Added support for sending (with the /nudge command) and receiving "nudges" (Julien Cegarra, Martin Bayard) * Added an account action to open your Hotmail inbox from MSN + * Bi-directional text is correctly handled now (Shlomi Loubaton) Yahoo Features: * Stealth Settings have been implemented @@ -192,6 +194,8 @@ * Removed the Napster and TOC protocols plugins Other Noteworthy Changes: + * The project has new names - libpurple for the core, Pidgin for the Gtk+ + UI and Finch for the ncurses based console UI (AOL LLC) * UPnP and NAT traversal support (Adam J. Warrington, Google Summer of Code) * The modify account dialog now contains two tabs, which should display @@ -217,6 +221,7 @@ time instead of X11 idle time (Michael Culbertson) * Autocomplete in the buddy pounce dialog (Sadrul Habib Chowdhury) * Non-blocking socket I/O is used in most protocol plugins + * All-new icons all over the place (Hylke Bons) Preference Changes: * Preferences have been substantially reorganized and cleaned up diff -r f3559f8d2fc1 -r fb4efe5ab1fa ChangeLog.API --- a/ChangeLog.API Sat Apr 14 19:06:19 2007 +0000 +++ b/ChangeLog.API Sat Apr 14 19:38:21 2007 +0000 @@ -1,6 +1,16 @@ Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul version 2.0.0: + Please note all functions, defines, and data structures have been + re-namespaced to match the new names of Pidgin, Finch, and libpurple. + All gaim_gtk_* functions are now pidgin_*, former libgaim functions are + now purple_*. Please consult our doxygen documentation for a complete + reference. + + The gaim-compat.h header exists to provide an API compatibility layer + for libpurple functions. As an API compatibility layer, it must be + included at compile time to be of use. + Changed: * All the status stuff. Yay! * gaim_prefs_connect_callback(), added handle parameter diff -r f3559f8d2fc1 -r fb4efe5ab1fa finch/gntblist.c --- a/finch/gntblist.c Sat Apr 14 19:06:19 2007 +0000 +++ b/finch/gntblist.c Sat Apr 14 19:38:21 2007 +0000 @@ -446,6 +446,8 @@ return; node->ui_data = gnt_tree_add_row_after(GNT_TREE(ggblist->tree), group, gnt_tree_create_row(GNT_TREE(ggblist->tree), get_display_name(node)), NULL, NULL); + gnt_tree_set_expanded(GNT_TREE(ggblist->tree), node, + !purple_blist_node_get_bool(node, "collapsed")); } static const char * @@ -2105,6 +2107,13 @@ } static void +group_collapsed(GntWidget *widget, PurpleBlistNode *node, gboolean collapsed, gpointer null) +{ + if (PURPLE_BLIST_NODE_IS_GROUP(node)) + purple_blist_node_set_bool(node, "collapsed", collapsed); +} + +static void blist_show(PurpleBuddyList *list) { if (ggblist == NULL) @@ -2171,6 +2180,7 @@ g_signal_connect(G_OBJECT(ggblist->tree), "selection_changed", G_CALLBACK(selection_changed), ggblist); g_signal_connect(G_OBJECT(ggblist->tree), "key_pressed", G_CALLBACK(key_pressed), ggblist); g_signal_connect(G_OBJECT(ggblist->tree), "context-menu", G_CALLBACK(context_menu), ggblist); + g_signal_connect(G_OBJECT(ggblist->tree), "collapse-toggled", G_CALLBACK(group_collapsed), NULL); g_signal_connect_after(G_OBJECT(ggblist->tree), "clicked", G_CALLBACK(blist_clicked), ggblist); g_signal_connect(G_OBJECT(ggblist->tree), "activate", G_CALLBACK(selection_activate), ggblist); g_signal_connect_data(G_OBJECT(ggblist->tree), "gained-focus", G_CALLBACK(draw_tooltip), diff -r f3559f8d2fc1 -r fb4efe5ab1fa finch/libgnt/genmarshal --- a/finch/libgnt/genmarshal Sat Apr 14 19:06:19 2007 +0000 +++ b/finch/libgnt/genmarshal Sat Apr 14 19:38:21 2007 +0000 @@ -8,3 +8,4 @@ BOOLEAN:POINTER,POINTER,POINTER BOOLEAN:INT,INT,INT,POINTER VOID:STRING,STRING +VOID:POINTER,BOOLEAN diff -r f3559f8d2fc1 -r fb4efe5ab1fa finch/libgnt/gnttree.c --- a/finch/libgnt/gnttree.c Sat Apr 14 19:06:19 2007 +0000 +++ b/finch/libgnt/gnttree.c Sat Apr 14 19:38:21 2007 +0000 @@ -13,6 +13,7 @@ SIG_SELECTION_CHANGED, SIG_SCROLLED, SIG_TOGGLED, + SIG_COLLAPSED, SIGS, }; @@ -702,6 +703,7 @@ { row->collapsed = !row->collapsed; redraw_tree(tree); + g_signal_emit(tree, signals[SIG_COLLAPSED], 0, row->key, row->collapsed); } else if (row && row->choice) { @@ -855,6 +857,14 @@ NULL, NULL, g_cclosure_marshal_VOID__POINTER, G_TYPE_NONE, 1, G_TYPE_POINTER); + signals[SIG_COLLAPSED] = + g_signal_new("collapse-toggled", + G_TYPE_FROM_CLASS(klass), + G_SIGNAL_RUN_LAST, + 0, + NULL, NULL, + gnt_closure_marshal_VOID__POINTER_BOOLEAN, + G_TYPE_NONE, 2, G_TYPE_POINTER, G_TYPE_BOOLEAN); gnt_bindable_class_register_action(bindable, "move-up", action_up, GNT_KEY_UP, NULL); diff -r f3559f8d2fc1 -r fb4efe5ab1fa libpurple/protocols/irc/irc.c --- a/libpurple/protocols/irc/irc.c Sat Apr 14 19:06:19 2007 +0000 +++ b/libpurple/protocols/irc/irc.c Sat Apr 14 19:38:21 2007 +0000 @@ -462,6 +462,8 @@ purple_circ_buffer_destroy(irc->outbuf); + g_free(irc->mode_chars); + g_free(irc); } @@ -476,7 +478,7 @@ else args[0] = who; - plain = purple_unescape_html(what); + purple_markup_html_to_xhtml(what, NULL, &plain); args[1] = plain; irc_cmd_privmsg(irc, "msg", NULL, args); @@ -688,7 +690,7 @@ return irc_parse_cmd(irc, convo->name, what + 1); } #endif - tmp = purple_unescape_html(what); + purple_markup_html_to_xhtml(what, NULL, &tmp); args[0] = convo->name; args[1] = tmp; diff -r f3559f8d2fc1 -r fb4efe5ab1fa libpurple/protocols/irc/irc.h --- a/libpurple/protocols/irc/irc.h Sat Apr 14 19:06:19 2007 +0000 +++ b/libpurple/protocols/irc/irc.h Sat Apr 14 19:38:21 2007 +0000 @@ -84,6 +84,8 @@ guint writeh; time_t recv_time; + + char *mode_chars; }; struct irc_buddy { diff -r f3559f8d2fc1 -r fb4efe5ab1fa libpurple/protocols/irc/msgs.c --- a/libpurple/protocols/irc/msgs.c Sat Apr 14 19:06:19 2007 +0000 +++ b/libpurple/protocols/irc/msgs.c Sat Apr 14 19:38:21 2007 +0000 @@ -40,8 +40,6 @@ const char *from, const char *to, const char *rawmsg, gboolean notice); -static char *mode_chars = NULL; - static char *irc_mask_nick(const char *mask) { char *end, *buf; @@ -90,7 +88,7 @@ char *val; if (!strncmp(features[i], "PREFIX=", 7)) { if ((val = strchr(features[i] + 7, ')')) != NULL) - mode_chars = g_strdup(val + 1); + irc->mode_chars = g_strdup(val + 1); } } } @@ -477,8 +475,8 @@ } else if(*cur == '+') { f = PURPLE_CBFLAGS_VOICE; cur++; - } else if(mode_chars - && strchr(mode_chars, *cur)) { + } else if(irc->mode_chars + && strchr(irc->mode_chars, *cur)) { cur++; } tmp = g_strndup(cur, end - cur); diff -r f3559f8d2fc1 -r fb4efe5ab1fa libpurple/protocols/yahoo/util.c --- a/libpurple/protocols/yahoo/util.c Sat Apr 14 19:06:19 2007 +0000 +++ b/libpurple/protocols/yahoo/util.c Sat Apr 14 19:38:21 2007 +0000 @@ -622,6 +622,18 @@ break; } } + } else if (!g_ascii_strncasecmp(&src[i+1], "SPAN", j - i - 1)) { /* drop span tags */ + while (1) { + if (++j >= len) { + g_string_append(dest, &src[i]); + i = len; + break; + } + if (src[j] == '>') { + i = j; + break; + } + } } else if (g_ascii_strncasecmp(&src[i+1], "FONT", j - i - 1)) { /* not interested! */ while (1) { if (++j >= len) { @@ -668,6 +680,8 @@ g_string_append_c(dest, '\n'); } else if (!g_ascii_strncasecmp(&src[i+1], "/BODY", sublen)) { /* mmm, tags. *BURP* */ + } else if (!g_ascii_strncasecmp(&src[i+1], "/SPAN", sublen)) { + /* tags. dangerously close to */ } else if (!g_ascii_strncasecmp(&src[i+1], "/FONT", sublen) && g_queue_peek_tail(tags)) { char *etag, *cl; diff -r f3559f8d2fc1 -r fb4efe5ab1fa pidgin.spec.in --- a/pidgin.spec.in Sat Apr 14 19:06:19 2007 +0000 +++ b/pidgin.spec.in Sat Apr 14 19:38:21 2007 +0000 @@ -460,6 +460,9 @@ %endif %changelog +* Thu Apr 12 2007 Stu Tomlinson +- Actually move libpurple.so.* to the libpurple RPM + * Wed Apr 11 2007 Stu Tomlinson - Separate out libpurple, libpurple-devel and finch-devel diff -r f3559f8d2fc1 -r fb4efe5ab1fa pidgin/plugins/musicmessaging/Makefile.am --- a/pidgin/plugins/musicmessaging/Makefile.am Sat Apr 14 19:06:19 2007 +0000 +++ b/pidgin/plugins/musicmessaging/Makefile.am Sat Apr 14 19:38:21 2007 +0000 @@ -1,14 +1,14 @@ EXTRA_DIST = \ music.png -musicmessagingdir = $(libdir)/gaim +musicmessagingdir = $(libdir)/pidgin musicmessaging_la_LDFLAGS = -module -avoid-version if PLUGINS if ENABLE_DBUS -musicmessagingpixdir = $(datadir)/pixmaps/gaim/buttons +musicmessagingpixdir = $(datadir)/pixmaps/pidgin/buttons musicmessagingpix_DATA = music.png musicmessaging_LTLIBRARIES = musicmessaging.la diff -r f3559f8d2fc1 -r fb4efe5ab1fa pidgin/plugins/musicmessaging/musicmessaging.c --- a/pidgin/plugins/musicmessaging/musicmessaging.c Sat Apr 14 19:06:19 2007 +0000 +++ b/pidgin/plugins/musicmessaging/musicmessaging.c Sat Apr 14 19:38:21 2007 +0000 @@ -683,7 +683,7 @@ static void init_plugin(PurplePlugin *plugin) { purple_prefs_add_none("/plugins/gtk/musicmessaging"); - purple_prefs_add_string("/plugins/gtk/musicmessaging/editor_path", "/usr/local/bin/gscore"); + purple_prefs_add_string("/plugins/gtk/musicmessaging/editor_path", "/usr/bin/gscore"); } PURPLE_INIT_PLUGIN(musicmessaging, init_plugin, info);