Revision f894448f712134780a75dba19622a78626a98231

sadrul at pidgin.im sadrul at pidgin.im
Mon Mar 26 21:38:57 EDT 2007


o     -----------------------------------------------------------------
|\    Revision: f894448f712134780a75dba19622a78626a98231
| |   Ancestor: 7e96b2a5202c1dd624ba497a2713aec816233996
| |   Ancestor: ac156097f694ba8977900a053e669e480c15e274
| |   Author: sadrul at pidgin.im
| |   Date: 2007-03-27T01:38:37
| |   Branch: im.pidgin.pidgin
| |   
| |   Modified files:
| |           AUTHORS COPYRIGHT ChangeLog ChangeLog.API Doxyfile.in NEWS
| |           PLUGIN_HOWTO README config.h.mingw doc/PERL-HOWTO.dox
| |           finch/gntft.c finch/gntrequest.c finch/libgnt/gntfilesel.c
| |           finch/libgnt/gntfilesel.h finch/libgnt/gntwidget.c
| |           libpurple/account.h libpurple/buddyicon.h
| |           libpurple/eventloop.h libpurple/notify.h
| |           libpurple/protocols/bonjour/bonjour.c
| |           libpurple/protocols/bonjour/issues.txt
| |           libpurple/protocols/silc/README
| |           libpurple/protocols/silc/TODO libpurple/savedstatuses.h
| |           libpurple/server.h libpurple/win32/libpurplerc.rc.in
| |           pidgin/gtkaccount.c pidgin/gtkstatusbox.c pidgin/gtkutils.h
| |           pidgin/pidginstock.h pidgin/pixmaps/Makefile.mingw
| |           pidgin/win32/nsis/pidgin-installer.nsi
| |           pidgin/win32/pidgin_exe_rc.rc.in pidgin.spec.in
| |   
| |   ChangeLog: 
| |   
| |   merge of '7e96b2a5202c1dd624ba497a2713aec816233996'
| |        and 'ac156097f694ba8977900a053e669e480c15e274'
| |   
| |   ============================================================
| |   --- AUTHORS	13ec2e87ea5799fa3c2bcaae3be1880ccb5c80aa
| |   +++ AUTHORS	3a281d96f2f752c2682fbe116b92a6443af94ab7
| |   @@ -1,10 +1,10 @@
| |   -gaim - the Pimpin' Penguin IM Clone that's Good for the Soul
| |   -============================================================
| |   +Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
| |   +==========================================================================
| |    
| |    For a complete list of all contributors, see the COPYRIGHT file.
| |    
| |   -We've got an IRC room now too, #gaim on irc.freenode.net (#wingaim for
| |   -Windows users). Come check us out.
| |   +We've got an IRC room now too, #pidgin on irc.freenode.net
| |   +(#winpidgin for Windows users). Come check us out.
| |    
| |    Current Developers:
| |    ------------------
| |   ============================================================
| |   --- COPYRIGHT	ac96d128049bd03585402ecf438999ec2e2a9d25
| |   +++ COPYRIGHT	d117afd99593c6ba2b77cb7d4acd30cf332ca6ef
| |   @@ -1,8 +1,8 @@
| |   -Gaim
| |   +Purple, Pidgin and Finch
| |    Copyright (C) 1998-2007 by the following:
| |    
| |   -If you have contributed to Gaim, you deserve to be on this list.
| |   -Contact us (see: AUTHORS) and we'll add you.
| |   +If you have contributed to this project then you deserve to be on this
| |   +list.  Contact us (see: AUTHORS) and we'll add you.
| |    
| |    Saleem Abdulrasool
| |    Dave Ahlswede
| |   ============================================================
| |   --- ChangeLog	4181ea27e18226f1fe89ee612111b38b8a7bda23
| |   +++ ChangeLog	64a10369b8940319e6e4539f3ffdee1a0f3eb22f
| |   @@ -1,10 +1,5 @@
| |   -2007-01-24  gettextize  <bug-gnu-gettext at gnu.org>
| |   +Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
| |    
| |   -	* Makefile.am (ACLOCAL_AMFLAGS): New variable.
| |   -	(EXTRA_DIST): Add config.rpath, m4/ChangeLog.
| |   -
| |   -Gaim: The Pimpin' Penguin IM Client that's good for the soul!
| |   -
| |    version 2.0.0:
| |    	Build Changes:
| |    	* With the Core/UI split completed, it is now possible to build Gaim
| |   ============================================================
| |   --- ChangeLog.API	e8a7ac5a65d16bdc3aa8e78c9845955d124d6067
| |   +++ ChangeLog.API	7d5b4a3e76e446081d5930f73284b1973e3a7a45
| |   @@ -1,4 +1,4 @@
| |   -Gaim: The Pimpin' Penguin IM Client that's good for the soul!
| |   +Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
| |    
| |    version 2.0.0:
| |    	Changed:
| |   ============================================================
| |   --- Doxyfile.in	d44f735b442bf91d45745775de9f1aa12751d06f
| |   +++ Doxyfile.in	5c9c6db3416643d223092f4fbeab8a0e4c8c5236
| |   @@ -431,9 +431,9 @@ WARN_LOGFILE           = 
| |    # directories like "/usr/src/myproject". Separate the files or directories 
| |    # with spaces.
| |    
| |   -INPUT                  = libgaim \
| |   -						 gtk \
| |   -						 console \
| |   +INPUT                  = libpurple \
| |   +						 finch \
| |   +						 pidgin \
| |                             doc
| |    
| |    # If the value of the INPUT tag contains directories, you can use the 
| |   @@ -586,9 +586,9 @@ COLS_IN_ALPHA_INDEX    = 3
| |    # The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
| |    # should be ignored while generating the index headers.
| |    
| |   -IGNORE_PREFIX          = Gaim \
| |   -                         _Gaim \
| |   -                         gaim
| |   +IGNORE_PREFIX          = Purple \
| |   +                         _Purple \
| |   +                         purple
| |    
| |    #---------------------------------------------------------------------------
| |    # configuration options related to the HTML output
| |   ============================================================
| |   --- NEWS	4347ab770910e128dd3255cb40025b82faa95040
| |   +++ NEWS	3fc14e6e9d6ac3edbb36b97dfc19b2b8cbb86f18
| |   @@ -1,4 +1,4 @@
| |   --=[ Gaim ]=-  The Pimpin' Penguin IM Client That's Good For The Soul!
| |   +Pidgin and Finch: The Pimpin' Penguin IM Clients That're Good for the Soul
| |    
| |    2.0.0beta6 (1/17/2006):
| |    	Sean: Barring any seriously major new issues, we expect this to be
| |   ============================================================
| |   --- PLUGIN_HOWTO	775a12e04637fd821a4cc61d227296b533ea5ceb
| |   +++ PLUGIN_HOWTO	3edd148e712e9aba0e776c1984c04d9e32fb40c4
| |   @@ -1,20 +1,7 @@
| |   -For information on writing a plugin for Gaim, go
| |   -http://gaim.sourceforge.net/api/ and see the HOWTOs in the
| |   -"Related Pages" section.
| |   +For information on writing a plugin for Purple, Pidgin or Finch, go
| |   +http://pidgin.im/api/ and see the HOWTOs in the "Related Pages"
| |   +section.
| |    
| |    You can also generate this documentation locally by installing
| |   -doxygen and graphviz dot, then running "make docs" in the Gaim
| |   +doxygen and graphviz dot, then running "make docs" in the
| |    source tree.  The documentation will be in the docs/html directory.
| |   -
| |   -This next paragraph is old and possibly out of date:
| |   -Compilation of the plugins is fairly straight-forward; there is a
| |   -Makefile in this directory that has a rule for making the .so file
| |   -from a .c file. No modification of the Makefile should be necessary,
| |   -unless if you simply want to type 'make' to have it made; otherwise,
| |   -'make filename.so' will take filename.c and make the .so plugin from
| |   -it. If you need to link in with extra libraries, you can set the
| |   -environment variable PLUGIN_LIBS to be the libraries you want to link
| |   -with.
| |   -
| |   -It should be possible to compile plugins outside of the Gaim source
| |   -tree, which is a much cleaner solution.
| |   ============================================================
| |   --- README	ee1a1b03fdf222fdbdc2903c16bb01e22d872bce
| |   +++ README	baebe0934c47365d641ced3bf592993e15233906
| |   @@ -1,28 +1,33 @@
| |   -gaim
| |   +Purple, Pidgin and Finch
| |    ========================
| |   -Rob Flynn <gaim at robflynn.com> IM: RobFlynn (current maintainer)
| |   -Syd Logan - Super Hacker and Resident Designated Driver
| |   -Jim Duchek <jimduchek at ou.edu> IM: Zilding (former maintainer)
| |   -Eric Warmenhoven <eric at warmenhoven.org> (retired)
| |   -Mark Spencer <markster at marko.net>
| |   +See AUTHORS and COPYRIGHT for the list of contributors.
| |    
| |   -Gaim is an IM client that supports many protocols, including AIM, ICQ,
| |   -MSN, IRC, and Jabber. Gaim is NOT endorsed by, nor affiliated with,
| |   -AOL nor any other company in ANY way.
| |   +libpurple is a library intended to be used by programmers seeking
| |   +to write an IM client that connects to many IM networks.  It supports
| |   +AIM, ICQ, Jabber, MSN and Yahoo!, among others.
| |    
| |   +Pidgin is an graphical IM client written in C which uses the GTK+
| |   +toolkit.
| |    
| |   +Finch is a text-based IM client written in C which uses the ncurses
| |   +toolkit.
| |   +
| |   +These programs are not endorsed by, nor affiliated with, AOL nor any
| |   +other company in any way.
| |   +
| |    BUILD
| |    =====
| |    
| |    Read the 'INSTALL' file for more detailed directions.
| |    
| |   -Gaim uses the standard ./configure ; make. You need to use gmake, BSD
| |   -make probably won't work. Remember, run ./configure --help to see what
| |   -build options are available.
| |   +These programs use the standard ./configure ; make. You need to use
| |   +gmake, BSD make probably won't work. Remember, run ./configure --help
| |   +to see what build options are available.
| |    
| |   -In order to compile Gaim, you need to have GTK+ 2.0 installed (as
| |   +In order to compile Pidgin you need to have GTK+ 2.0 installed (as
| |    well as the development files!). The configure script will fail if you
| |   -don't. You can get it from http://www.gtk.org/.
| |   +don't.  If you don't have GTK+ 2.0 installed, you should install it
| |   +using your distribution's package management tools.
| |    
| |    For sound support, you also need gstreamer 0.10 or higher. For
| |    spellchecking support, you need libgtkspell (http://gtkspell.sf.net/).
| |   @@ -34,9 +39,9 @@
| |    
| |    You should run 'make install' as root to make sure plugins and other files
| |    get installed into locations they want to be in. Once you've done that,
| |   -you only need to run 'gaim'.
| |   +you only need to run 'pidgin' or 'finch'.
| |    
| |   -Protocol plugins (prpls) are now automatically loaded. Simply go to the
| |   +Protocol plugins (PRPLs) are now automatically loaded. Simply go to the
| |    account editor, add a new account, and all supported protocols will be
| |    there. Be sure to use OSCAR (AIM/ICQ) and not the old TOC or ICQ plugins.
| |    
| |   @@ -46,12 +51,12 @@
| |    PLUGINS
| |    =======
| |    
| |   -If you do not wish to enable the plugin support within Gaim, run the
| |   +If you do not wish to enable the plugin support within Purple, run the
| |    ./configure script with the --disable-plugins option and recompile your
| |    source code.  This will prevent the ability to load plugins.
| |    
| |   -'make install' puts the plugins in $PREFIX/lib/gaim (PREFIX being what
| |   -you specified when you ./configure'd - it defaults to /usr/local). Gaim
| |   +'make install' puts the plugins in $PREFIX/lib/purple (PREFIX being what
| |   +you specified when you ./configure'd - it defaults to /usr/local). Purple
| |    looks for the plugins in that directory by default, but they do not have
| |    to be there to use them. Also, plugins have a .so extension by default,
| |    though they do not have to.
| |   @@ -69,13 +74,9 @@
| |    make sure to put double-quotes around the "%s", otherwise bad things may
| |    happen.
| |    
| |   -If you come across a bug, please report it to http://gaim.sf.net/bug.php.
| |   +If you come across a bug, please report it to http://pidgin.im/.
| |    
| |   -See README.SVN for information on the bleeding edge SVN version of Gaim.
| |   -You probably shouldn't use it, as it may eat your children, as well as
| |   -your settings.
| |    
| |   -
| |    PROTOCOL INFORMATION
| |    ====================
| |    
| |   @@ -101,11 +102,11 @@
| |    
| |    Oscar is the default protocol. It is recommended that you use Oscar for
| |    both AIM and ICQ, as TOC isn't very featureful and the old ICQ protocol no
| |   -longer works. 
| |   +longer works.
| |    
| |    For AIM, Oscar can get people's away messages. It can request and accept
| |   -Direct Connections, and has limited support for file transfer. IM Image 
| |   -does not currently work. It can send and receive buddy icons if you have 
| |   +Direct Connections, and has limited support for file transfer. IM Image
| |   +does not currently work. It can send and receive buddy icons if you have
| |    GdkPixbuf.
| |    
| |    For ICQ, it supports nearly everything that the old ICQ plugin supported,
| |   @@ -120,7 +121,7 @@
| |    Yahoo is currently using the new YMSG protocol that newer official Yahoo
| |    clients are using. This protocol is much better than the old one, and
| |    tends to be somewhat more reliable. However, the Yahoo service is still
| |   -flaky at best. 
| |   +flaky at best.
| |    
| |    
| |    IRC (Ethan)
| |   @@ -134,27 +135,18 @@
| |    IRC, /help will give you a list of them.
| |    
| |    
| |   -MSN (Christian)
| |   +MSN
| |    ===
| |    
| |    With MSN you can join a conversation with several people, but you can't
| |    invite people from the IM window yet.
| |    
| |    
| |   -ICQ (Mark)
| |   -===
| |   -
| |   -The ICQ plugin is deprecated and will probably be removed soon. The
| |   -protocol only marginally works. You should use Oscar for ICQ. You'll
| |   -need a different client to register an ICQ account if you don't have
| |   -one yet.
| |   -
| |   -
| |    Jabber (Nathan)
| |    ======
| |    
| |    Transports aren't currently supported at all, though if you have a
| |   -transport already subscribed Gaim will use it (you can't add or remove
| |   +transport already subscribed Purple will use it (you can't add or remove
| |    transports though). In order to use a server other than jabber.org, set
| |    your username to include the server, e.g. warmenhoven at mycompany.com. This
| |    is the actual format of the Jabber ID anyway; Jabber is email with online
| |   @@ -162,23 +154,13 @@
| |    appropriate box in the account editor for your Jabber account.
| |    
| |    
| |   -Napster (Mark)
| |   -=======
| |   -
| |   -Heh.  Ok, so I (Rob) am on crack!  Gaim can sign on/off of Napster,
| |   -add/remove people to your hotlist (buddylist) as well as chat privately
| |   -and in chat rooms.  You can search for files and browse a list of other
| |   -user's files.  You can currently download files as long as the person
| |   -you're retrieving files from is not firewalled.
| |   -
| |   -
| |    Zephyr (Sean)
| |    ======
| |    
| |    Let me start off by saying how much I really despise Zephyr. They do a
| |    lot of things that make me realize why this never caught on. For those
| |    of you who are unfortunate enough to feel compelling need to use this,
| |   -gaim now has a Zephyr plugin. It can currently sign on/off, handles
| |   +Purple now has a Zephyr plugin. It can currently sign on/off, handles
| |    presence/buddy lists (it even imports your .anyone file!), and can
| |    send/receive personal messages. A lot of stuff is missing, this is just
| |    a real rough first stab at it.
| |   ============================================================
| |   --- config.h.mingw	61620e56a47fd744f392c5b3f3139b8f69a7076f
| |   +++ config.h.mingw	bbf5783dbfa3205f732209b0bbc051fee6eead53
| |   @@ -26,10 +26,10 @@
| |    #define ENABLE_NLS 1
| |    
| |    /* Define to make assertions fatal (useful for debugging). */
| |   -/* #undef GAIM_FATAL_ASSERTS */
| |   +/* #undef PURPLE_FATAL_ASSERTS */
| |    
| |    /* Define if plugins are enabled. */
| |   -#define GAIM_PLUGINS 1
| |   +#define PURPLE_PLUGINS 1
| |    
| |    /* Define to 1 if you have `alloca', as a function or macro. */
| |    #define HAVE_ALLOCA 1
| |   @@ -523,7 +523,7 @@
| |    #define PACKAGE "pidgin"
| |    
| |    /* Define to the address where bug reports for this package should be sent. */
| |   -#define PACKAGE_BUGREPORT "gaim-devel at lists.sourceforge.net"
| |   +#define PACKAGE_BUGREPORT "devel at pidgin.im"
| |    
| |    /* Define to the full name of this package. */
| |    #define PACKAGE_NAME "pidgin"
| |   ============================================================
| |   --- doc/PERL-HOWTO.dox	06bf3adf1e3525497f10cac75c0a13e515b00618
| |   +++ doc/PERL-HOWTO.dox	1a7cae822c40d02a8e5fb8e51f1ef42b2f77a6b0
| |   @@ -333,7 +333,7 @@ sub plugin_load {
| |    }
| |    @endcode
| |    
| |   -Now we can provide an UI for manipulating these preferences in our @prefs_info
| |   +Now we can provide an UI for manipulating these preferences in our @c prefs_info
| |    function.
| |    
| |    @code
| |   ============================================================
| |   --- finch/gntft.c	1b0b57c57b038563c6fe77e20f05645002393d4e
| |   +++ finch/gntft.c	7d4dcdc04690eb84ee72892284aae27f77e3a1f2
| |   @@ -158,18 +158,12 @@ stop_button_cb(GntButton *button)
| |    stop_button_cb(GntButton *button)
| |    {
| |    	PurpleXfer *selected_xfer = gnt_tree_get_selection_data(GNT_TREE(xfer_dialog->tree));
| |   -	if (selected_xfer && selected_xfer->status == PURPLE_XFER_STATUS_STARTED)
| |   +	if (selected_xfer && selected_xfer->status != PURPLE_XFER_STATUS_CANCEL_LOCAL &&
| |   +			selected_xfer->status != PURPLE_XFER_STATUS_CANCEL_REMOTE &&
| |   +			selected_xfer->status != PURPLE_XFER_STATUS_DONE)
| |    		purple_xfer_cancel_local(selected_xfer);
| |    }
| |    
| |   -#if 0
| |   -static void
| |   -tree_selection_changed_cb(GntTree *tree, GntTreeRow *old, GntTreeRow *current, gpointer n)
| |   -{
| |   -	xfer_dialog->selected_xfer = (PurpleXfer *)gnt_tree_get_selection_data(tree);
| |   -}
| |   -#endif
| |   -
| |    /**************************************************************************
| |     * Dialog Building Functions
| |     **************************************************************************/
| |   @@ -209,8 +203,7 @@ finch_xfer_dialog_new(void)
| |    	gnt_tree_set_col_width(GNT_TREE(tree), COLUMN_STATUS, 10);
| |    	gnt_tree_set_show_title(GNT_TREE(tree), TRUE);
| |    	gnt_box_add_widget(GNT_BOX(window), tree);
| |   -	/*g_signal_connect(G_OBJECT(tree), "selection-changed",*/
| |   -					/*G_CALLBACK(tree_selection_changed_cb), NULL);*/
| |   +
| |    	checkbox = gnt_check_box_new( _("Close this window when all transfers finish"));
| |    	gnt_check_box_set_checked(GNT_CHECK_BOX(checkbox),
| |    								 !xfer_dialog->keep_open);
| |   @@ -430,6 +423,7 @@ finch_xfer_dialog_update_xfer(PurpleXfer
| |    	g_free(remaining_str);
| |    	if (purple_xfer_is_completed(xfer)) {
| |    		gnt_tree_change_text(GNT_TREE(xfer_dialog->tree), xfer, COLUMN_STATUS, _("Finished"));
| |   +		gnt_tree_change_text(GNT_TREE(xfer_dialog->tree), xfer, COLUMN_REMAINING, _("Finished"));
| |    	} else {
| |    		gnt_tree_change_text(GNT_TREE(xfer_dialog->tree), xfer, COLUMN_STATUS, _("Transferring"));
| |    	}
| |   ============================================================
| |   --- finch/gntrequest.c	7d34a05e7573c17085b8d98091752ba19b21fc9a
| |   +++ finch/gntrequest.c	7f00f030f3ccddddb4fdc02ba9829f1d609214dd
| |   @@ -582,6 +582,8 @@ finch_request_file(const char *title, co
| |    	data->dialog = window;
| |    	gnt_box_set_title(GNT_BOX(window), title ? title : (savedialog ? _("Save File...") : _("Open File...")));
| |    	gnt_file_sel_set_current_location(sel, purple_home_dir());  /* XXX: */
| |   +	if (savedialog)
| |   +		gnt_file_sel_set_suggested_filename(sel, filename);
| |    	g_signal_connect(G_OBJECT(sel->cancel), "activate",
| |    			G_CALLBACK(file_cancel_cb), data);
| |    	g_signal_connect(G_OBJECT(sel->select), "activate",
| |   ============================================================
| |   --- finch/libgnt/gntfilesel.c	c7efb481d2495dfbbf09e74d06bae247dcfd914c
| |   +++ finch/libgnt/gntfilesel.c	3933090725b7303f6e5170e96da10aeebec09130
| |   @@ -28,6 +28,7 @@ gnt_file_sel_destroy(GntWidget *widget)
| |    {
| |    	GntFileSel *sel = GNT_FILE_SEL(widget);
| |    	g_free(sel->current);
| |   +	g_free(sel->suggest);
| |    	if (sel->tags) {
| |    		g_list_foreach(sel->tags, (GFunc)g_free, NULL);
| |    		g_list_free(sel->tags);
| |   @@ -70,7 +71,8 @@ update_location(GntFileSel *sel)
| |    {
| |    	char *old;
| |    	const char *tmp;
| |   -	tmp = (const char*)gnt_tree_get_selection_data(sel->dirsonly ? GNT_TREE(sel->dirs) : GNT_TREE(sel->files));
| |   +	tmp = sel->suggest ? sel->suggest :
| |   +		(const char*)gnt_tree_get_selection_data(sel->dirsonly ? GNT_TREE(sel->dirs) : GNT_TREE(sel->files));
| |    	old = g_strdup_printf("%s%s%s", sel->current, sel->current[1] ? G_DIR_SEPARATOR_S : "", tmp ? tmp : "");
| |    	gnt_entry_set_text(GNT_ENTRY(sel->location), old);
| |    	g_free(old);
| |   @@ -230,6 +232,8 @@ file_sel_changed(GntWidget *widget, gpoi
| |    static void
| |    file_sel_changed(GntWidget *widget, gpointer old, gpointer current, GntFileSel *sel)
| |    {
| |   +	g_free(sel->suggest);
| |   +	sel->suggest = NULL;
| |    	update_location(sel);
| |    }
| |    
| |   @@ -449,12 +453,19 @@ gboolean gnt_file_sel_get_dirs_only(GntF
| |    	return sel->dirsonly;
| |    }
| |    
| |   +void gnt_file_sel_set_suggested_filename(GntFileSel *sel, const char *suggest)
| |   +{
| |   +	sel->suggest = g_strdup(suggest);
| |   +}
| |   +
| |    char *gnt_file_sel_get_selected_file(GntFileSel *sel)
| |    {
| |    	char *ret;
| |   -	const char *tmp;
| |   -	tmp = (const char*)gnt_tree_get_selection_data(sel->dirsonly ? GNT_TREE(sel->dirs) : GNT_TREE(sel->files));
| |   -	ret = g_strdup_printf("%s%s%s", sel->current, sel->current[1] ? G_DIR_SEPARATOR_S : "", tmp ? tmp : "");
| |   +	if (sel->dirsonly) {
| |   +		ret = g_strdup(g_path_get_dirname(gnt_entry_get_text(GNT_ENTRY(sel->location))));
| |   +	} else {
| |   +		ret = g_strdup(gnt_entry_get_text(GNT_ENTRY(sel->location)));
| |   +	}
| |    	return ret;
| |    }
| |    
| |   ============================================================
| |   --- finch/libgnt/gntfilesel.h	70cd6214d27e11388af7dd3a258fa3293d8b863d
| |   +++ finch/libgnt/gntfilesel.h	f8ef0ccc30968d6335477df5db8bb59193adea8a
| |   @@ -33,6 +33,7 @@ struct _GntFileSel
| |    	GntWidget *cancel;   /* cancel button */
| |    
| |    	char *current; /* Full path of the current location */
| |   +	char *suggest; /* Suggested filename */
| |    	/* XXX: someone should make these useful */
| |    	gboolean must_exist; /* Make sure the selected file (the name entered in 'location') exists */
| |    	gboolean dirsonly;   /* Show only directories */
| |   @@ -73,6 +74,8 @@ void gnt_file_sel_set_multi_select(GntFi
| |    
| |    void gnt_file_sel_set_multi_select(GntFileSel *sel, gboolean set);
| |    
| |   +void gnt_file_sel_set_suggested_filename(GntFileSel *sel, const char *suggest);
| |   +
| |    G_END_DECLS
| |    
| |    #endif /* GNT_FILE_SEL_H */
| |   ============================================================
| |   --- libpurple/account.h	ad1a68fcb7a3a4ab271ef0779c9a4338c8358c76
| |   +++ libpurple/account.h	8f0e3721be8e9b1a889a1ade641dbb49da5e1039
| |   @@ -211,14 +211,14 @@ void *purple_account_request_authorizati
| |    /**
| |     * Close account requests registered for the given PurpleAccount
| |     *
| |   - * @param handle	   The account for which requests should be closed
| |   + * @param account	   The account for which requests should be closed
| |     */
| |    void purple_account_request_close_with_account(PurpleAccount *account);
| |    
| |    /**
| |     * Close the account request for the given ui handle
| |     *
| |   - * @param handle	   The ui specific handle for which requests should be closed
| |   + * @param ui_handle	   The ui specific handle for which requests should be closed
| |     */
| |    void purple_account_request_close(void *ui_handle);
| |    
| |   @@ -281,7 +281,7 @@ void purple_account_set_buddy_icon(Purpl
| |     * Sets the account's buddy icon path.
| |     *
| |     * @param account The account.
| |   - * @param info	  The buddy icon non-cached path.
| |   + * @param path	  The buddy icon non-cached path.
| |     */
| |    void purple_account_set_buddy_icon_path(PurpleAccount *account, const char *path);
| |    
| |   ============================================================
| |   --- libpurple/buddyicon.h	1fb5bffb38d5665206019276d7608dfb899eb501
| |   +++ libpurple/buddyicon.h	b4bcbed6371098ee7194d84b30c23b80afe1b5c4
| |   @@ -182,8 +182,8 @@ const guchar *purple_buddy_icon_get_data
| |     * Returns the buddy icon's path.
| |     *
| |     * @param icon The buddy icon.
| |   - * 
| |   - * @preturn The buddy icon's non-cached path.
| |   + *
| |   + * @return The buddy icon's non-cached path.
| |     */
| |    const gchar *purple_buddy_icon_get_path(PurpleBuddyIcon *icon);
| |    
| |   ============================================================
| |   --- libpurple/eventloop.h	63a66a2dfa35c7d07a971cd72d5dd999578f8b3a
| |   +++ libpurple/eventloop.h	089314f4df684b5508ec766da9afa821fdf535e7
| |   @@ -138,7 +138,7 @@ gboolean purple_input_remove(guint handl
| |     * implement the input_get_error UI op.
| |     *
| |     * @param fd        The input file descriptor.
| |   - * @param errno		A pointer to an int which on return will have the error, or 0 if no error.
| |   + * @param error		A pointer to an int which on return will have the error, or 0 if no error.
| |     *
| |     * @return 0 if there is no error; -1 if there is an error, in which case errno will be set.
| |     */
| |   ============================================================
| |   --- libpurple/notify.h	e1b4d2a2cab819638f05a12b712b1263e4250df8
| |   +++ libpurple/notify.h	c80ecc1bba96c1e402015d438df207c8efaa82c6
| |   @@ -581,7 +581,7 @@ PurpleNotifyUserInfoEntryType purple_not
| |     * Set the type of a PurpleNotifyUserInfoEntry
| |     *
| |     * @param user_info_entry     The PurpleNotifyUserInfoEntry
| |   - * @param					  The PurpleNotifyUserInfoEntryType
| |   + * @param type				  The PurpleNotifyUserInfoEntryType
| |     */
| |    void purple_notify_user_info_entry_set_type(PurpleNotifyUserInfoEntry *user_info_entry,
| |    										  PurpleNotifyUserInfoEntryType type);
| |   ============================================================
| |   --- libpurple/protocols/bonjour/bonjour.c	a345c390a97ff0719faf1e1240d787d2a84a0691
| |   +++ libpurple/protocols/bonjour/bonjour.c	561380f6ccdca3d2f24f3f812692ed47de682c15
| |   @@ -460,7 +460,7 @@ initialize_default_account_values()
| |    	else if (((fullname = getlogin()) != NULL) && (fullname[0] != '\0'))
| |    		;
| |    	else
| |   -		fullname = _("John Noname"); 
| |   +		fullname = _("Purple Person");
| |    	/* Make sure fullname is valid UTF-8.  If not, try to convert it. */
| |    	if (!g_utf8_validate(fullname, -1, NULL))
| |    	{
| |   @@ -548,7 +548,8 @@ initialize_default_account_values()
| |    	/* Try to figure out a good host name to use */
| |    	/* TODO: Avoid 'localhost,' if possible */
| |    	if (gethostname(hostname, 255) != 0) {
| |   -		purple_debug_warning("bonjour", "Error %d when getting host name.  Using \"localhost.\"\n", errno);
| |   +		purple_debug_warning("bonjour", "Error when getting host name: %s.  Using \"localhost.\"\n",
| |   +				strerror(errno));
| |    		strcpy(hostname, "localhost");
| |    	}
| |    	default_hostname = g_strdup(hostname);
| |   ============================================================
| |   --- libpurple/protocols/bonjour/issues.txt	f635921e355432b7fbd68c09407c0aec6e71ac9b
| |   +++ libpurple/protocols/bonjour/issues.txt	00d82004dad19e94fc9bca05b053382fb0d74535
| |   @@ -1,18 +1,9 @@
| |    ==========================================
| |    ============= Known issues ===============
| |    ==========================================
| |    
| |   +* Status changes don't work
| |   +* Avatars
| |   +* File transfers
| |   +* Typing notifications
| |   +* Check if it works on win32
| |   -(1) Messages are limited in length (5000 char) <-- FIXED
| |   -(2) Messages formated by Gaim didn't work <-- FIXED
| |   -(3) iChat sends the size in points, Gaim wants a 1..7 range <-- FIXED Gaim2iChat (iChat2Gaim left)
| |   -(4) When the other end closes the socket without sending the end of stream, Gaim crashes and coredump <-- FIXED
| |   -(5) I18n
| |   -(6) Status changes don't work
| |   -(7) When the conversation is closed in Gaim with the X button, we don't send the end of stream <-- FIXED
| |   -(8) The server socket is not reusable, after an error, you cannot connect for a while <-- FIXED
| |   -(9) Avatars
| |   -(10) File transfers
| |   -(11) Typing notifications
| |   -(12) Gaim HTML syntax is not shown properly <-- FIXED
| |   -(13) Strange messages creates coredump <-- FIXED
| |   -(14) Check if it works on win32
| |   ============================================================
| |   --- libpurple/protocols/silc/README	2052314b74e10d02544f315962dce1fb5462f291
| |   +++ libpurple/protocols/silc/README	a7b22f8decde0cf4452bc5e0120a5e75f66e1742
| |   @@ -1,12 +1,12 @@
| |   -SILC Gaim Plugin
| |   -================
| |   +SILC Purple Plugin
| |   +==================
| |    
| |   -This is Gaim protocol plugin of the protocol called Secure Internet Live 
| |   -Conferencing (SILC).  The implementation will use the SILC Toolkit, 
| |   +This is the Purple protocol plugin of the protocol called Secure Internet
| |   +Live Conferencing (SILC).  The implementation will use the SILC Toolkit, 
| |    freely available from the http://silcnet.org/ site, for the actual SILC 
| |    protocol implementation.
| |    
| |   -To include the SILC into Gaim, one needs to first compile and install 
| |   +To include SILC into Purple, one needs to first compile and install 
| |    the SILC Toolkit.  It is done as follows:
| |    
| |    	./configure --enable-shared
| |   @@ -17,7 +17,7 @@ is not given to ./configure, the binarie
| |    is not given to ./configure, the binaries are installed into the 
| |    /usr/local/silc directory.
| |    
| |   -Once the Toolkit is installed one needs to tell for the Gaim ./configure
| |   +Once the Toolkit is installed one needs to tell Purple's ./configure
| |    script where the SILC Toolkit is located.  It is done as simply as:
| |    
| |    	./configure
| |   @@ -27,5 +27,5 @@ if pkg-config is installed in your syste
| |    	./configure --with-silc-libs=/path/to/silc/lib
| |    		    --with-silc-includes=/path/to/silc/include
| |    
| |   +If the SILC Toolkit cannot be found then the SILC protocol plugin will
| |   +not be compiled.
| |   -If the Toolkit cannot be located the SILC will not be compiled into the 
| |   -Gaim.
| |   ============================================================
| |   --- libpurple/protocols/silc/TODO	aca6580c753adbecaf8282cfa92a3ef7135d03df
| |   +++ libpurple/protocols/silc/TODO	03e82e50c0844649c776335abd21a481edd0d51e
| |   @@ -1,8 +1,8 @@ Sending images
| |    Features TODO (maybe)
| |    =====================
| |    
| |    Sending images
| |   -	- Sending images to channel too, if Gaim allows it.
| |   +	- Sending images to channel too, if libpurple allows it.
| |    
| |    Preferences
| |    	- Add joined channels to buddy list automatically (during
| |   ============================================================
| |   --- libpurple/savedstatuses.h	a15aec12a59cd4b1c046f830d7ba690b8e62413b
| |   +++ libpurple/savedstatuses.h	a74a64cc7fc98b9f542377bbcc14650da61247bf
| |   @@ -213,9 +213,9 @@ gboolean purple_savedstatus_is_idleaway(
| |    /**
| |     * Set whether accounts in Purple are idle-away or not.
| |     *
| |   - * @param TRUE if accounts should be switched to use the
| |   - *        idle-away saved status.  FALSE if they should
| |   - *        be switched to use the default status.
| |   + * @param idleaway TRUE if accounts should be switched to use the
| |   + *                 idle-away saved status.  FALSE if they should
| |   + *                 be switched to use the default status.
| |     */
| |    void purple_savedstatus_set_idleaway(gboolean idleaway);
| |    
| |   ============================================================
| |   --- libpurple/server.h	6bb268f4555eb2d81883e98b6285ff640234a33e
| |   +++ libpurple/server.h	f1eeff2eb723d7c1faa7ab179e4543a031c66263
| |   @@ -38,7 +38,7 @@ extern "C" {
| |     *
| |     * TODO: Could probably move this into the conversation API.
| |     *
| |   - * @param typing One of PURPLE_TYPING, PURPLE_TYPED, or PURPLE_NOT_TYPING.
| |   + * @param state One of PURPLE_TYPING, PURPLE_TYPED, or PURPLE_NOT_TYPING.
| |     * @return A quiet-period, specified in seconds, where Purple will not
| |     *         send any additional typing notification messages.  Most
| |     *         protocols should return 0, which means that no additional
| |   @@ -94,13 +94,13 @@ void serv_got_im(PurpleConnection *gc, c
| |     * @param data The hash function should be g_str_hash() and the equal
| |     *             function should be g_str_equal().
| |     */
| |   -void serv_join_chat(PurpleConnection *, GHashTable *);
| |   +void serv_join_chat(PurpleConnection *, GHashTable *data);
| |    
| |    /**
| |     * @param data The hash function should be g_str_hash() and the equal
| |     *             function should be g_str_equal().
| |     */
| |   -void serv_reject_chat(PurpleConnection *, GHashTable *);
| |   +void serv_reject_chat(PurpleConnection *, GHashTable *data);
| |    
| |    /**
| |     * @param data The hash function should be g_str_hash() and the equal
| |   ============================================================
| |   --- libpurple/win32/libpurplerc.rc.in	92587b090e2414b6169f22402d474af0957a74f6
| |   +++ libpurple/win32/libpurplerc.rc.in	2722fd5e2cbd6ea896f6de4c7315de5c8260bde0
| |   @@ -16,12 +16,12 @@ VS_VERSION_INFO VERSIONINFO
| |          BEGIN
| |            VALUE "CompanyName", "The Pidgin developer community"
| |            VALUE "FileDescription", "LibPurple Library"
| |   -        VALUE "FileVersion", "@PIDGIN_VERSION@"
| |   +        VALUE "FileVersion", "@PURPLE_VERSION@"
| |            VALUE "InternalName", "libpurple"
| |            VALUE "LegalCopyright", "Copyright (C) 1998-2007 The Pidgin developer community (See the COPYRIGHT file in the source distribution)."
| |            VALUE "OriginalFilename", "libpurple.dll"
| |            VALUE "ProductName", "LibPurple"
| |   -        VALUE "ProductVersion", "@PIDGIN_VERSION@"
| |   +        VALUE "ProductVersion", "@PURPLE_VERSION@"
| |          END
| |        END
| |        BLOCK "VarFileInfo"
| |   ============================================================
| |   --- pidgin/gtkaccount.c	bdb24023b99d8272e097190f59660d1dd00a08fa
| |   +++ pidgin/gtkaccount.c	d47c35929d6d8af01095c6f6dc0bc0c52da584ae
| |   @@ -231,7 +231,7 @@ set_dialog_icon(AccountPrefsDialog *dial
| |    		/* Show a placeholder icon */
| |    		gchar *filename;
| |    		filename = g_build_filename(DATADIR, "pixmaps",
| |   -				"purple", "insert-image.png", NULL);
| |   +				"pidgin", "insert-image.png", NULL);
| |    		pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
| |    		g_free(filename);
| |    	}
| |   @@ -629,7 +629,7 @@ add_user_options(AccountPrefsDialog *dia
| |    		set_dialog_icon(dialog,
| |    				g_strdup(purple_account_get_ui_string(dialog->account,
| |    						PIDGIN_UI, "non-global-buddyicon-cached-path", NULL)),
| |   -				g_strdup(purple_account_get_ui_string(dialog->account, 
| |   +				g_strdup(purple_account_get_ui_string(dialog->account,
| |    						PIDGIN_UI, "non-global-buddyicon-path", NULL)));
| |    	} else {
| |    		set_dialog_icon(dialog, NULL, NULL);
| |   @@ -2142,12 +2142,12 @@ create_accounts_list(AccountsWindow *dia
| |    	/* Translators: Please maintain the use of -> or <- to represent the menu heirarchy */
| |    	pretty = pidgin_make_pretty_arrows(_(
| |    						 "<span size='larger' weight='bold'>Welcome to " PIDGIN_NAME "!</span>\n\n"
| |   -						 
| |   +
| |    						 "You have no IM accounts configured. To start connecting with " PIDGIN_NAME " "
| |    						 "press the <b>Add</b> button below and configure your first "
| |    						 "account. If you want " PIDGIN_NAME " to connect to multiple IM accounts, "
| |    						 "press <b>Add</b> again to configure them all.\n\n"
| |   -						 
| |   +
| |    						 "You can come back to this window to add, edit, or remove "
| |    						 "accounts from <b>Accounts->Add/Edit</b> in the Buddy "
| |    						 "List window"));
| |   @@ -2439,7 +2439,7 @@ pidgin_accounts_request_add(PurpleAccoun
| |    
| |    	buffer = make_info(account, gc, remote_user, id, alias, msg);
| |    	alert = pidgin_make_mini_dialog(gc, PIDGIN_STOCK_DIALOG_QUESTION,
| |   -					  _("Add buddy to your list?"), buffer, data, 
| |   +					  _("Add buddy to your list?"), buffer, data,
| |    					  _("Add"), G_CALLBACK(add_user_cb),
| |    					  _("Cancel"), G_CALLBACK(free_add_user_data), NULL);
| |    	pidgin_blist_add_alert(alert);
| |   @@ -2515,27 +2515,27 @@ pidgin_accounts_request_authorization(Pu
| |    		aa->account = account;
| |    		alert = pidgin_make_mini_dialog(gc, PIDGIN_STOCK_DIALOG_QUESTION,
| |    						  _("Authorize buddy?"), buffer, aa,
| |   -						  _("Authorize"), authorize_and_add_cb, 
| |   -						  _("Deny"), deny_no_add_cb, 
| |   +						  _("Authorize"), authorize_and_add_cb,
| |   +						  _("Deny"), deny_no_add_cb,
| |    						  NULL);
| |    	} else {
| |    		alert = pidgin_make_mini_dialog(gc, PIDGIN_STOCK_DIALOG_QUESTION,
| |    						  _("Authorize buddy?"), buffer, user_data,
| |   -						  _("Authorize"), auth_cb, 
| |   -						  _("Deny"), deny_cb, 
| |   +						  _("Authorize"), auth_cb,
| |   +						  _("Deny"), deny_cb,
| |    						  NULL);
| |    	}
| |    	pidgin_blist_add_alert(alert);
| |    
| |    	g_free(buffer);
| |   -	
| |   +
| |    	return NULL;
| |    }
| |    
| |    static void
| |    pidgin_accounts_request_close(void *ui_handle)
| |    {
| |   -	
| |   +
| |    }
| |    
| |    static PurpleAccountUiOps ui_ops =
| |   ============================================================
| |   --- pidgin/gtkstatusbox.c	b4b98fcf684e8038f096a2c08cd68bef2b99e802
| |   +++ pidgin/gtkstatusbox.c	a9b80274b1dcbead4b2e319112a537932a581c0b
| |   @@ -279,7 +279,7 @@ icon_box_dnd_cb(GtkWidget *widget, GdkDr
| |    		if (!g_ascii_strncasecmp(name, "file://", 7)) {
| |    			GError *converr = NULL;
| |    			gchar *tmp, *rtmp;
| |   -		
| |   +
| |    			if(!(tmp = g_filename_from_uri(name, NULL, &converr))) {
| |    				purple_debug(PURPLE_DEBUG_ERROR, "buddyicon", "%s\n",
| |    					   (converr ? converr->message :
| |   @@ -559,7 +559,7 @@ pidgin_status_box_refresh(PidginStatusBo
| |    	PurpleAccount *acct = (status_box->token_status_account) ? status_box->token_status_account : status_box->account;
| |    
| |    	icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL);
| |   -	
| |   +
| |    	style = gtk_widget_get_style(GTK_WIDGET(status_box));
| |    	snprintf(aa_color, sizeof(aa_color), "#%02x%02x%02x",
| |    		 style->text_aa[GTK_STATE_NORMAL].red >> 8,
| |   @@ -584,7 +584,7 @@ pidgin_status_box_refresh(PidginStatusBo
| |    		if (!gtk_tree_model_get_iter (GTK_TREE_MODEL(status_box->dropdown_store), &iter, path))
| |    			return;
| |    		gtk_tree_path_free(path);
| |   -		
| |   +
| |    		gtk_tree_model_get(GTK_TREE_MODEL(status_box->dropdown_store), &iter,
| |    						   TYPE_COLUMN, &type,
| |    						   DATA_COLUMN, &data,
| |   @@ -688,7 +688,7 @@ pidgin_status_box_refresh(PidginStatusBo
| |    			}
| |    		}
| |    #endif
| |   -		
| |   +
| |    	}
| |    
| |    	if (status_box->account != NULL) {
| |   @@ -824,7 +824,7 @@ status_menu_refresh_iter(PidginStatusBox
| |    						break;
| |    					}
| |    					g_free(name);
| |   -				
| |   +
| |    				} else if ((type == PIDGIN_STATUS_BOX_TYPE_POPULAR) &&
| |    						(GPOINTER_TO_INT(data) == purple_savedstatus_get_creation_time(saved_status)))
| |    				{
| |   @@ -1186,7 +1186,7 @@ cache_pixbufs(PidginStatusBox *status_bo
| |    cache_pixbufs(PidginStatusBox *status_box)
| |    {
| |    	GtkIconSize icon_size;
| |   -	
| |   +
| |    	g_object_set(G_OBJECT(status_box->icon_rend), "xpad", 3, NULL);
| |    	icon_size = gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL);
| |    
| |   @@ -1311,14 +1311,14 @@ pidgin_status_box_list_position (PidginS
| |    #endif
| |      GtkRequisition popup_req;
| |      GtkPolicyType hpolicy, vpolicy;
| |   -  
| |   +
| |      gdk_window_get_origin (GTK_WIDGET(status_box)->window, x, y);
| |    
| |      *x += GTK_WIDGET(status_box)->allocation.x;
| |      *y += GTK_WIDGET(status_box)->allocation.y;
| |   - 
| |   +
| |      *width = GTK_WIDGET(status_box)->allocation.width;
| |   -  
| |   +
| |      hpolicy = vpolicy = GTK_POLICY_NEVER;
| |      gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (status_box->scrolled_window),
| |    				  hpolicy, vpolicy);
| |   @@ -1336,7 +1336,7 @@ pidgin_status_box_list_position (PidginS
| |    
| |    #if GTK_CHECK_VERSION(2,2,0)
| |      screen = gtk_widget_get_screen (GTK_WIDGET (status_box));
| |   -  monitor_num = gdk_screen_get_monitor_at_window (screen, 
| |   +  monitor_num = gdk_screen_get_monitor_at_window (screen,
| |    						  GTK_WIDGET (status_box)->window);
| |      gdk_screen_get_monitor_geometry (screen, monitor_num, &monitor);
| |    
| |   @@ -1344,7 +1344,7 @@ pidgin_status_box_list_position (PidginS
| |        *x = monitor.x;
| |      else if (*x + *width > monitor.x + monitor.width)
| |        *x = monitor.x + monitor.width - *width;
| |   -  
| |   +
| |      if (*y + GTK_WIDGET(status_box)->allocation.height + *height <= monitor.y + monitor.height)
| |    	  *y += GTK_WIDGET(status_box)->allocation.height;
| |      else if (*y - *height >= monitor.y)
| |   @@ -1354,7 +1354,7 @@ pidgin_status_box_list_position (PidginS
| |    	    *y += GTK_WIDGET(status_box)->allocation.height;
| |    	    *height = monitor.y + monitor.height - *y;
| |        }
| |   -  else 
| |   +  else
| |        {
| |    	    *height = *y - monitor.y;
| |    	    *y = monitor.y;
| |   @@ -1363,7 +1363,7 @@ pidgin_status_box_list_position (PidginS
| |      if (popup_req.height > *height)
| |        {
| |          vpolicy = GTK_POLICY_ALWAYS;
| |   -      
| |   +
| |          gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (status_box->scrolled_window),
| |    				      hpolicy, vpolicy);
| |        }
| |   @@ -1406,8 +1406,8 @@ pidgin_status_box_popup(PidginStatusBox 
| |    {
| |    	int width, height, x, y;
| |    	pidgin_status_box_list_position (box, &x, &y, &width, &height);
| |   -  
| |   -	gtk_widget_set_size_request (box->popup_window, width, height);  
| |   +
| |   +	gtk_widget_set_size_request (box->popup_window, width, height);
| |    	gtk_window_move (GTK_WINDOW (box->popup_window), x, y);
| |    	gtk_widget_show(box->popup_window);
| |    	gtk_widget_grab_focus (box->tree_view);
| |   @@ -1442,7 +1442,7 @@ toggled_cb(GtkWidget *widget, PidginStat
| |    toggled_cb(GtkWidget *widget, PidginStatusBox *box)
| |    {
| |    	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))  {
| |   -		if (!box->popup_in_progress) 
| |   +		if (!box->popup_in_progress)
| |    			pidgin_status_box_popup (box);
| |    	}  else {
| |    		pidgin_status_box_popdown(box);
| |   @@ -1531,38 +1531,38 @@ treeview_activate_current_selection(Pidg
| |    {
| |    	if (status_box->active_row)
| |    		gtk_tree_row_reference_free(status_box->active_row);
| |   -	
| |   +
| |    	status_box->active_row = gtk_tree_row_reference_new(GTK_TREE_MODEL(status_box->dropdown_store), path);
| |   -	
| |   +
| |    	pidgin_status_box_popdown (status_box);
| |    	pidgin_status_box_changed(status_box);
| |    }
| |    
| |   -static gboolean 
| |   -treeview_button_release_cb(GtkWidget *widget, GdkEventButton *event, PidginStatusBox *status_box) 
| |   +static gboolean
| |   +treeview_button_release_cb(GtkWidget *widget, GdkEventButton *event, PidginStatusBox *status_box)
| |    {
| |    	GtkTreePath *path = NULL;
| |    	int ret;
| |    	GtkWidget *ewidget = gtk_get_event_widget ((GdkEvent *)event);
| |   -	
| |   +
| |    	if (ewidget != status_box->tree_view) {
| |   -		if (ewidget == status_box->toggle_button && 
| |   +		if (ewidget == status_box->toggle_button &&
| |    		    status_box->popup_in_progress &&
| |    		    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (status_box->toggle_button))) {
| |    			pidgin_status_box_popdown (status_box);
| |    			return TRUE;
| |    		}
| |   -		
| |   +
| |    		/* released outside treeview */
| |   -		if (ewidget != status_box->toggle_button) 
| |   +		if (ewidget != status_box->toggle_button)
| |    			{
| |    				pidgin_status_box_popdown (status_box);
| |    				return TRUE;
| |    			}
| |   -		
| |   +
| |    		return FALSE;
| |    	}
| |   -	
| |   +
| |    	ret = gtk_tree_view_get_path_at_pos (GTK_TREE_VIEW (status_box->tree_view),
| |    					     event->x, event->y,
| |    					     &path,
| |   @@ -1570,7 +1570,7 @@ treeview_button_release_cb(GtkWidget *wi
| |    
| |    	if (!ret)
| |    		return TRUE; /* clicked outside window? */
| |   -	
| |   +
| |    	treeview_activate_current_selection(status_box, path);
| |    	gtk_tree_path_free (path);
| |    
| |   @@ -1620,7 +1620,7 @@ pidgin_status_box_init (PidginStatusBox 
| |    	status_box->cell_view = gtk_cell_view_new();
| |    	status_box->vsep = gtk_vseparator_new();
| |    	status_box->arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
| |   -	
| |   +
| |    	status_box->store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
| |    	status_box->dropdown_store = gtk_list_store_new(NUM_COLUMNS, G_TYPE_INT, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_POINTER);
| |    ;
| |   @@ -1696,7 +1696,7 @@ pidgin_status_box_init (PidginStatusBox 
| |    	gtk_tree_view_set_search_column(GTK_TREE_VIEW(status_box->tree_view), TEXT_COLUMN);
| |    	gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(status_box->tree_view),
| |    				pidgin_tree_view_search_equal_func, NULL, NULL);
| |   -	  
| |   +
| |    #if GTK_CHECK_VERSION(2, 6, 0)
| |    	g_object_set(text_rend, "ellipsize", PANGO_ELLIPSIZE_END, NULL);
| |    #endif
| |   @@ -1907,7 +1907,7 @@ pidgin_status_box_expose_event(GtkWidget
| |    		gtk_paint_box(widget->style, widget->window, GTK_STATE_NORMAL, GTK_SHADOW_OUT, NULL,
| |    				status_box->icon_box, "button", status_box->icon_box->allocation.x-1, status_box->icon_box->allocation.y-1,
| |    				34, 34);
| |   -	}		
| |   +	}
| |    	return FALSE;
| |    }
| |    
| |   @@ -2064,7 +2064,7 @@ pidgin_status_box_redisplay_buddy_icon(P
| |    		/* Show a placeholder icon */
| |    		gchar *filename;
| |    		filename = g_build_filename(DATADIR, "pixmaps",
| |   -				"purple", "insert-image.png", NULL);
| |   +				"pidgin", "insert-image.png", NULL);
| |    		status_box->buddy_icon = gdk_pixbuf_new_from_file(filename, NULL);
| |    		g_free(filename);
| |    	}
| |   @@ -2138,7 +2138,7 @@ activate_currently_selected_status(Pidgi
| |    	char *message;
| |    	PurpleSavedStatus *saved_status = NULL;
| |    	gboolean changed = TRUE;
| |   -	
| |   +
| |    	path = gtk_tree_row_reference_get_path(status_box->active_row);
| |    	if (!gtk_tree_model_get_iter (GTK_TREE_MODEL(status_box->dropdown_store), &iter, path))
| |    		return;
| |   @@ -2188,7 +2188,7 @@ activate_currently_selected_status(Pidgi
| |    			const char *id = NULL;
| |    			GtkTreePath *path = gtk_tree_row_reference_get_path(status_box->active_row);
| |    			active = gtk_tree_path_get_indices(path)[0];
| |   -			
| |   +
| |    			gtk_tree_path_free(path);
| |    
| |    			status = purple_account_get_active_status(status_box->token_status_account);
| |   @@ -2386,13 +2386,13 @@ static void pidgin_status_box_changed(Pi
| |    	GList *accounts = NULL, *node;
| |    	int active;
| |    
| |   -	
| |   +
| |    	if (!gtk_tree_model_get_iter (GTK_TREE_MODEL(status_box->dropdown_store), &iter, path))
| |    		return;
| |    	active = gtk_tree_path_get_indices(path)[0];
| |    	gtk_tree_path_free(path);
| |    	g_object_set_data(G_OBJECT(status_box), "active", GINT_TO_POINTER(active));
| |   -	
| |   +
| |    	gtk_tree_model_get(GTK_TREE_MODEL(status_box->dropdown_store), &iter,
| |    			   TYPE_COLUMN, &type,
| |    			   DATA_COLUMN, &data,
| |   ============================================================
| |   --- pidgin/gtkutils.h	eb020d784ced34bd9664b927239a8f331ec05bb7
| |   +++ pidgin/gtkutils.h	ebd015c01b2c0cf9014c98323a3f053644ce79a4
| |   @@ -393,7 +393,7 @@ GdkPixbuf *pidgin_create_prpl_icon(Purpl
| |     * @param primitive  The status primitive
| |     * @param w          The widget to render this
| |     * @param size       The icon size to render at
| |   - * @retrun A GdkPixbuf, created from stock
| |   + * @return A GdkPixbuf, created from stock
| |     */
| |    GdkPixbuf * pidgin_create_status_icon(PurpleStatusPrimitive primitive, GtkWidget *w, const char *size);
| |    
| |   ============================================================
| |   --- pidgin/pidginstock.h	f9f8f02641576315c2e44fcbd6d10224456abee3
| |   +++ pidgin/pidginstock.h	4dce26c617dbd66b87fc58332550e596449cec5b
| |   @@ -1,5 +1,5 @@
| |    /**
| |   - * @file gtkstock.h GTK+ Stock resources
| |   + * @file pidginstock.h GTK+ Stock resources
| |     * @ingroup gtkui
| |     *
| |     * pidgin
| |   ============================================================
| |   --- pidgin/pixmaps/Makefile.mingw	14cf5a801ce84b98aa67976ac4ebf4d28a3e28ba
| |   +++ pidgin/pixmaps/Makefile.mingw	e6a4c2179746cc35cc70cc402b8b671b1531e19c
| |   @@ -18,24 +18,24 @@ install:
| |    	    $(MAKE) -C $$subdir -f $(GAIM_WIN32_MAKEFILE) install || exit 1 ;\
| |    	  done; \
| |    	fi;
| |   -	if test '$(gaimbuttonpix_DATA)'; then \
| |   -	  mkdir -p $(gaimbuttonpixdir); \
| |   -	  cp $(gaimbuttonpix_DATA) $(gaimbuttonpixdir); \
| |   +	if test '$(pidginbuttonpix_DATA)'; then \
| |   +	  mkdir -p $(pidginbuttonpixdir); \
| |   +	  cp $(pidginbuttonpix_DATA) $(pidginbuttonpixdir); \
| |    	fi;
| |   -	if test '$(gaimdialogpix_DATA)'; then \
| |   -	  mkdir -p $(gaimdialogpixdir); \
| |   -	  cp $(gaimdialogpix_DATA) $(gaimdialogpixdir); \
| |   +	if test '$(pidgindialogpix_DATA)'; then \
| |   +	  mkdir -p $(pidgindialogpixdir); \
| |   +	  cp $(pidgindialogpix_DATA) $(pidgindialogpixdir); \
| |    	fi;
| |   -	if test '$(gaimiconpix_DATA)'; then \
| |   -	  mkdir -p $(gaimiconpixdir); \
| |   -	  cp $(gaimiconpix_DATA) $(gaimiconpixdir); \
| |   +	if test '$(pidginiconpix_DATA)'; then \
| |   +	  mkdir -p $(pidginiconpixdir); \
| |   +	  cp $(pidginiconpix_DATA) $(pidginiconpixdir); \
| |    	fi;
| |   -	if test '$(gaimdistpix_DATA)'; then \
| |   -	  mkdir -p $(gaimdistpixdir); \
| |   -	  cp $(gaimdistpix_DATA) $(gaimdistpixdir); \
| |   +	if test '$(pidgindistpix_DATA)'; then \
| |   +	  mkdir -p $(pidgindistpixdir); \
| |   +	  cp $(pidgindistpix_DATA) $(pidgindistpixdir); \
| |    	fi;
| |   -	if test '$(distpixmap_DATA)'; then \
| |   -	  mkdir -p $(distpixmapdir); \
| |   -	  cp $(distpixmap_DATA) $(distpixmapdir); \
| |   -	fi;
| |   +#	if test '$(distpixmap_DATA)'; then \
| |   +#	  mkdir -p $(distpixmapdir); \
| |   +#	  cp $(distpixmap_DATA) $(distpixmapdir); \
| |   +#	fi;
| |    
| |   ============================================================
| |   --- pidgin/win32/nsis/pidgin-installer.nsi	d838793d5b4d26ff478ba2929d67336acd2d561f
| |   +++ pidgin/win32/nsis/pidgin-installer.nsi	861a65b63670152ec16727b3c5a551ad9b0db8bd
| |   @@ -698,7 +698,7 @@ Section Uninstall
| |        Delete "$INSTDIR\plugins\buddynote.dll"
| |        Delete "$INSTDIR\plugins\convcolors.dll"
| |        Delete "$INSTDIR\plugins\extplacement.dll"
| |   -    Delete "$INSTDIR\plugins\gaimrc.dll"
| |   +    Delete "$INSTDIR\plugins\pidginrc.dll"
| |        Delete "$INSTDIR\plugins\history.dll"
| |        Delete "$INSTDIR\plugins\iconaway.dll"
| |        Delete "$INSTDIR\plugins\idle.dll"
| |   @@ -735,12 +735,12 @@ Section Uninstall
| |        Delete "$INSTDIR\plugins\win2ktrans.dll"
| |        Delete "$INSTDIR\plugins\winprefs.dll"
| |        RMDir "$INSTDIR\plugins"
| |   -    Delete "$INSTDIR\sounds\gaim\alert.wav"
| |   -    Delete "$INSTDIR\sounds\gaim\login.wav"
| |   -    Delete "$INSTDIR\sounds\gaim\logout.wav"
| |   -    Delete "$INSTDIR\sounds\gaim\receive.wav"
| |   -    Delete "$INSTDIR\sounds\gaim\send.wav"
| |   -    RMDir "$INSTDIR\sounds\gaim"
| |   +    Delete "$INSTDIR\sounds\pidgin\alert.wav"
| |   +    Delete "$INSTDIR\sounds\pidgin\login.wav"
| |   +    Delete "$INSTDIR\sounds\pidgin\logout.wav"
| |   +    Delete "$INSTDIR\sounds\pidgin\receive.wav"
| |   +    Delete "$INSTDIR\sounds\pidgin\send.wav"
| |   +    RMDir "$INSTDIR\sounds\pidgin"
| |        RMDir "$INSTDIR\sounds"
| |        Delete "$INSTDIR\freebl3.dll"
| |        Delete "$INSTDIR\idletrack.dll"
| |   ============================================================
| |   --- pidgin/win32/pidgin_exe_rc.rc.in	17f268a082f3ab0dc040f4c803771d2f70fb6563
| |   +++ pidgin/win32/pidgin_exe_rc.rc.in	bbaf60b502d35a4a8a5c69b44c8321104253ac92
| |   @@ -33,4 +33,4 @@ VS_VERSION_INFO VERSIONINFO
| |        END
| |      END
| |    
| |   +PIDGIN_ICON			ICON PIXMAPDIR "pidgin.ico"
| |   -PURPLE_ICON			ICON PIXMAPDIR "pidgin.ico"
| |   ============================================================
| |   --- pidgin.spec.in	6ca03af99b542c1dc6333d4ea44cd7461c99e6c7
| |   +++ pidgin.spec.in	5cc3d6d65e5a1a3e8baebfd57aacdadd2b18a7d7
| |   @@ -270,7 +270,7 @@ if [ "$1" -gt 1 -a -n "`which gconftool-
| |    if [ "$1" -gt 1 -a -n "`which gconftool-2 2>/dev/null`" ]; then
| |        export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
| |        gconftool-2 --makefile-uninstall-rule \
| |   -        %{_sysconfdir}/gconf/schemas/gaim.schemas >/dev/null || :
| |   +        %{_sysconfdir}/gconf/schemas/purple.schemas >/dev/null || :
| |        killall -HUP gconfd-2 || :
| |    fi
| |    
| |   @@ -278,7 +278,7 @@ if [ -n "`which gconftool-2 2>/dev/null`
| |    if [ -n "`which gconftool-2 2>/dev/null`" ]; then
| |        export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
| |        gconftool-2 --makefile-install-rule \
| |   -        %{_sysconfdir}/gconf/schemas/gaim.schemas > /dev/null || :
| |   +        %{_sysconfdir}/gconf/schemas/purple.schemas > /dev/null || :
| |        killall -HUP gconfd-2 || :
| |    fi
| |    /sbin/ldconfig
| |   @@ -287,7 +287,7 @@ if [ "$1" -eq 0 -a -n "`which gconftool-
| |    if [ "$1" -eq 0 -a -n "`which gconftool-2 2>/dev/null`" ]; then
| |        export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
| |        gconftool-2 --makefile-uninstall-rule \
| |   -      %{_sysconfdir}/gconf/schemas/gaim.schemas > /dev/null || :
| |   +      %{_sysconfdir}/gconf/schemas/purple.schemas > /dev/null || :
| |        killall -HUP gconfd-2 || :
| |    fi
| |    
| |   @@ -319,7 +319,7 @@ fi
| |    %{_datadir}/sounds/pidgin/*
| |    %{_datadir}/applications/*
| |    %{_libdir}/libpurple.so.*
| |   -%{_sysconfdir}/gconf/schemas/gaim.schemas
| |   +%{_sysconfdir}/gconf/schemas/purple.schemas
| |    
| |    %if 0%{?_with_dbus:1}
| |    %{_bindir}/purple-client-example
| |   ============================================================
| |   --- finch/libgnt/gntwidget.c	c632daabc4635d34eca145d2ed4a47c9e1c15471
| |   +++ finch/libgnt/gntwidget.c	858cfe29a2cd8af5f1802b83ae7dc32bdc6eefee
| |   @@ -521,7 +521,7 @@ gnt_widget_set_size(GntWidget *widget, i
| |    
| |    		widget->priv.width = width;
| |    		widget->priv.height = height;
| |   -		if (width >= getmaxx(widget->window) || height >= getmaxy(widget->window)) {
| |   +		if (width + shadow >= getmaxx(widget->window) || height + shadow >= getmaxy(widget->window)) {
| |    			delwin(widget->window);
| |    			widget->window = newpad(height + 20, width + 20);
| |    		}

To get the patch for this revision, please do this:
mtn log --last 1 --diffs --from f894448f712134780a75dba19622a78626a98231


More information about the Commits mailing list