changeset 22391:ec1a551c11f0

propagate from branch 'im.pidgin.soc.2007.msimprpl' (head bd0e8a231d64a1834cf27ddf420ece1cd9889327) to branch 'im.pidgin.pidgin' (head 1dd11eb6f5b868ccd553cf84919b93359d40e562)
author Jeffrey Connelly <jaconnel@calpoly.edu>
date Sun, 02 Mar 2008 20:09:54 +0000
parents ff1258551f79 (diff) 89e0d994f010 (current diff)
children fa7ddf4b2e0a
files
diffstat 11 files changed, 109 insertions(+), 44 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sun Mar 02 20:05:34 2008 +0000
+++ b/ChangeLog	Sun Mar 02 20:09:54 2008 +0000
@@ -29,7 +29,7 @@
 
 	Pidgin:
 	* Added the ability to theme conversation name colors (red and blue)
-	  through your GTK+ theme, and exposed those theme settings to the 
+	  through your GTK+ theme, and exposed those theme settings to the
 	  Pidgin GTK+ Theme Control plugin (Dustin Howett)
 	* Fixed having multiple alias edit areas in the infopane (Elliott Sales
 	  de Andrade)
--- a/Makefile.am	Sun Mar 02 20:05:34 2008 +0000
+++ b/Makefile.am	Sun Mar 02 20:09:54 2008 +0000
@@ -35,9 +35,6 @@
 apps_in_files = pidgin.desktop.in
 apps_DATA = $(apps_in_files:.desktop.in=.desktop)
 @INTLTOOL_DESKTOP_RULE@
-endif
-
-if ENABLE_GTK
 GTK_DIR=pidgin
 endif
 
--- a/configure.ac	Sun Mar 02 20:05:34 2008 +0000
+++ b/configure.ac	Sun Mar 02 20:09:54 2008 +0000
@@ -46,8 +46,8 @@
 m4_define([purple_lt_current], [4])
 m4_define([purple_major_version], [2])
 m4_define([purple_minor_version], [4])
-m4_define([purple_micro_version], [0])
-m4_define([purple_version_suffix], [])
+m4_define([purple_micro_version], [1])
+m4_define([purple_version_suffix], [devel])
 m4_define([purple_version],
           [purple_major_version.purple_minor_version.purple_micro_version])
 m4_define([purple_display_version], purple_version[]m4_ifdef([purple_version_suffix],[purple_version_suffix]))
@@ -55,8 +55,8 @@
 m4_define([gnt_lt_current], [4])
 m4_define([gnt_major_version], [2])
 m4_define([gnt_minor_version], [4])
-m4_define([gnt_micro_version], [0])
-m4_define([gnt_version_suffix], [])
+m4_define([gnt_micro_version], [1])
+m4_define([gnt_version_suffix], [devel])
 m4_define([gnt_version],
           [gnt_major_version.gnt_minor_version.gnt_micro_version])
 m4_define([gnt_display_version], gnt_version[]m4_ifdef([gnt_version_suffix],[gnt_version_suffix]))
--- a/doc/funniest_home_convos.txt	Sun Mar 02 20:05:34 2008 +0000
+++ b/doc/funniest_home_convos.txt	Sun Mar 02 20:09:54 2008 +0000
@@ -505,3 +505,8 @@
 17:14 <a_user> see?
 17:16 <sadrul> I think blocking in pidgin not working is not your biggest
                problem here.
+
+
+12:58 <staggered_ranks> why hasn't support for napster been removed?
+12:58 <deryni> It has.
+12:59 <staggered_ranks> oh.. ok
--- a/doc/ui-ops.dox	Sun Mar 02 20:05:34 2008 +0000
+++ b/doc/ui-ops.dox	Sun Mar 02 20:09:54 2008 +0000
@@ -10,7 +10,7 @@
    - #PurpleCoreUiOps
    - #PurpleDebugUiOps
    - #PurpleDnsQueryUiOps
-   - #PurpleEventLoopUiOps
+   - #PurpleEventLoopUiOps (without this, nothing will work and you will cry)
    - #PurpleIdleUiOps
    - #PurpleNotifyUiOps
    - #PurplePrivacyUiOps
--- a/finch/libgnt/gntwm.c	Sun Mar 02 20:05:34 2008 +0000
+++ b/finch/libgnt/gntwm.c	Sun Mar 02 20:09:54 2008 +0000
@@ -32,7 +32,14 @@
 #endif
 
 #include <glib.h>
-#include <glib/gstdio.h>
+#if GLIB_CHECK_VERSION(2,6,0)
+#	include <glib/gstdio.h>
+#else
+#	include <sys/types.h>
+#	include <sys/stat.h>
+#	include <fcntl.h>
+#	define g_fopen open
+#endif
 #include <ctype.h>
 #include <gmodule.h>
 #include <stdlib.h>
--- a/libpurple/eventloop.h	Sun Mar 02 20:05:34 2008 +0000
+++ b/libpurple/eventloop.h	Sun Mar 02 20:09:54 2008 +0000
@@ -42,59 +42,108 @@
 
 } PurpleInputCondition;
 
+/** The type of callbacks to handle events on file descriptors, as passed to
+ *  purple_input_add().  The callback will receive the @c user_data passed to
+ *  purple_input_add(), the file descriptor on which the event occurred, and the
+ *  condition that was satisfied to cause the callback to be invoked.
+ */
 typedef void (*PurpleInputFunction)(gpointer, gint, PurpleInputCondition);
 
+/** @copydoc _PurpleEventLoopUiOps */
 typedef struct _PurpleEventLoopUiOps PurpleEventLoopUiOps;
 
+/** An abstraction of an application's mainloop; libpurple will use this to
+ *  watch file descriptors and schedule timed callbacks.  If your application
+ *  uses the glib mainloop, there is an implementation of this struct in
+ *  <tt>libpurple/example/nullclient.c</tt> which you can use verbatim.
+ */
 struct _PurpleEventLoopUiOps
 {
 	/**
-	 * Creates a callback timer with an interval measured in milliseconds.
-	 * @see g_timeout_add, purple_timeout_add
+	 * Should create a callback timer with an interval measured in
+	 * milliseconds.  The supplied @a function should be called every @a
+	 * interval seconds until it returns @c FALSE, after which it should not
+	 * be called again.
+	 *
+	 * Analogous to g_timeout_add in glib.
+	 *
+	 * @param interval the interval in <em>milliseconds</em> between calls
+	 *                 to @a function.
+	 * @param data     arbitrary data to be passed to @a function at each
+	 *                 call.
+	 * @todo Who is responsible for freeing @a data?
+	 *
+	 * @return a handle for the timeout, which can be passed to
+	 *         #timeout_remove.
+	 *
+	 * @see purple_timeout_add
 	 **/
 	guint (*timeout_add)(guint interval, GSourceFunc function, gpointer data);
 
 	/**
-	 * Removes a callback timer.
-	 * @see purple_timeout_remove, g_source_remove
+	 * Should remove a callback timer.  Analogous to g_source_remove in glib.
+	 * @param handle an identifier for a timeout, as returned by
+	 *               #timeout_add.
+	 * @return       @c TRUE if the timeout identified by @a handle was
+	 *               found and removed.
+	 * @see purple_timeout_remove
 	 */
 	gboolean (*timeout_remove)(guint handle);
 
 	/**
-	 * Adds an input handler.
-	 * @see purple_input_add, g_io_add_watch_full
+	 * Should add an input handler.  Analogous to g_io_add_watch_full in
+	 * glib.
+	 *
+	 * @param fd        a file descriptor to watch for events
+	 * @param cond      a bitwise OR of events on @a fd for which @a func
+	 *                  should be called.
+	 * @param func      a callback to fire whenever a relevant event on @a
+	 *                  fd occurs.
+	 * @param user_data arbitrary data to pass to @a fd.
+	 * @return          an identifier for this input handler, which can be
+	 *                  passed to #input_remove.
+	 *
+	 * @see purple_input_add
 	 */
 	guint (*input_add)(int fd, PurpleInputCondition cond,
-					   PurpleInputFunction func, gpointer user_data);
+	                   PurpleInputFunction func, gpointer user_data);
 
 	/**
-	 * Removes an input handler.
-	 * @see purple_input_remove, g_source_remove
+	 * Should remove an input handler.  Analogous to g_source_remove in glib.
+	 * @param handle an identifier, as returned by #input_add.
+	 * @return       @c TRUE if the input handler was found and removed.
+	 * @see purple_input_remove
 	 */
 	gboolean (*input_remove)(guint handle);
 	
 	
 	/**
-	 * Get the current error status for an input.
-	 * Implementation of this UI op is optional. Implement it if the UI's sockets
-	 * or event loop needs to customize determination of socket error status.
-	 * @see purple_input_get_error, getsockopt
+	 * If implemented, should get the current error status for an input.
+	 *
+	 * Implementation of this UI op is optional. Implement it if the UI's
+	 * sockets or event loop needs to customize determination of socket
+	 * error status.  If unimplemented, <tt>getsockopt(2)</tt> will be used
+	 * instead.
+	 *
+	 * @see purple_input_get_error
 	 */
 	int (*input_get_error)(int fd, int *error);
 
 	/**
-	 * Creates a callback timer with an interval measured in seconds.
+	 * If implemented, should create a callback timer with an interval
+	 * measured in seconds.  Analogous to g_timeout_add_seconds in glib.
 	 *
 	 * This allows UIs to group timers for better power efficiency.  For
 	 * this reason, @a interval may be rounded by up to a second.
 	 *
 	 * Implementation of this UI op is optional.  If it's not implemented,
-	 * calls to purple_timeout_add_seconds() will be serviced by the
-	 * timeout_add UI op.
+	 * calls to purple_timeout_add_seconds() will be serviced by
+	 * #timeout_add.
 	 *
-	 * @see g_timeout_add_seconds, purple_timeout_add_seconds()
+	 * @see purple_timeout_add_seconds()
 	 **/
-	guint (*timeout_add_seconds)(guint interval, GSourceFunc function, gpointer data);
+	guint (*timeout_add_seconds)(guint interval, GSourceFunc function,
+	                             gpointer data);
 
 	void (*_purple_reserved2)(void);
 	void (*_purple_reserved3)(void);
@@ -118,8 +167,8 @@
  *                      milliseconds.
  * @param function	The function to call.
  * @param data		data to pass to @a function.
- * @return A handle to the timer which can be passed to 
- *         purple_timeout_remove to remove the timer.
+ * @return A handle to the timer which can be passed to
+ *         purple_timeout_remove() to remove the timer.
  */
 guint purple_timeout_add(guint interval, GSourceFunc function, gpointer data);
 
@@ -137,7 +186,7 @@
  * @param function	The function to call.
  * @param data		data to pass to @a function.
  * @return A handle to the timer which can be passed to 
- *         purple_timeout_remove to remove the timer.
+ *         purple_timeout_remove() to remove the timer.
  *
  * @since 2.1.0
  */
@@ -146,9 +195,9 @@
 /**
  * Removes a timeout handler.
  *
- * @param handle The handle, as returned by purple_timeout_add.
+ * @param handle The handle, as returned by purple_timeout_add().
  *
- * @return Something.
+ * @return @c TRUE if the handler was successfully removed.
  */
 gboolean purple_timeout_remove(guint handle);
 
@@ -164,26 +213,29 @@
  * @see g_io_add_watch_full
  */
 guint purple_input_add(int fd, PurpleInputCondition cond,
-					 PurpleInputFunction func, gpointer user_data);
+                       PurpleInputFunction func, gpointer user_data);
 
 /**
  * Removes an input handler.
  *
  * @param handle The handle of the input handler. Note that this is the return
- * value from purple_input_add, <i>not</i> the file descriptor.
+ *               value from purple_input_add(), <i>not</i> the file descriptor.
  */
 gboolean purple_input_remove(guint handle);
 
 /**
  * Get the current error status for an input.
+ *
  * The return value and error follow getsockopt() with a level of SOL_SOCKET and an
  * option name of SO_ERROR, and this is how the error is determined if the UI does not
  * implement the input_get_error UI op.
  *
  * @param fd        The input file descriptor.
- * @param error		A pointer to an int which on return will have the error, or 0 if no error.
+ * @param error     A pointer to an @c int which on return will have the error, or
+ *                  @c 0 if no error.
  *
- * @return 0 if there is no error; -1 if there is an error, in which case errno will be set.
+ * @return @c 0 if there is no error; @c -1 if there is an error, in which case
+ *         @a errno will be set.
  */
 int
 purple_input_get_error(int fd, int *error);
--- a/libpurple/protocols/jabber/Makefile.mingw	Sun Mar 02 20:05:34 2008 +0000
+++ b/libpurple/protocols/jabber/Makefile.mingw	Sun Mar 02 20:09:54 2008 +0000
@@ -84,7 +84,6 @@
 
 ifeq ($(CYRUS_SASL), 1)
 CYRUS_SASL_TOP := $(WIN32_DEV_TOP)/cyrus-sasl-2.1.22
-CFLAGS += -DHAVE_CYRUS_SASL
 INCLUDE_PATHS += -I$(CYRUS_SASL_TOP)/include
 LIB_PATHS += -L$(CYRUS_SASL_TOP)/lib
 LIBS += -llibsasl
--- a/libpurple/protocols/msnp9/nexus.c	Sun Mar 02 20:05:34 2008 +0000
+++ b/libpurple/protocols/msnp9/nexus.c	Sun Mar 02 20:09:54 2008 +0000
@@ -321,7 +321,7 @@
 {
 	MsnNexus *nexus;
 	MsnSession *session;
-	char *username, *password;
+	char *username, *password, *encpass;
 	char *request_str, *head, *tail;
 	char *buffer = NULL;
 	guint32 ctint;
@@ -337,8 +337,9 @@
 	username =
 		g_strdup(purple_url_encode(purple_account_get_username(session->account)));
 
-	password =
-		g_strdup(purple_url_encode(purple_connection_get_password(session->account->gc)));
+	password = g_strndup(purple_connection_get_password(session->account->gc), 16);
+	encpass = g_strdup(purple_url_encode(password));
+	g_free(password);
 
 	ctint = strtoul((char *)g_hash_table_lookup(nexus->challenge_data, "ct"), NULL, 10) + 200;
 
@@ -368,7 +369,7 @@
 		nexus->login_host);
 
 	buffer = g_strdup_printf("%s,pwd=XXXXXXXX,%s\r\n", head, tail);
-	request_str = g_strdup_printf("%s,pwd=%s,%s\r\n", head, password, tail);
+	request_str = g_strdup_printf("%s,pwd=%s,%s\r\n", head, encpass, tail);
 
 	purple_debug_misc("msn", "Sending: {%s}\n", buffer);
 
@@ -376,7 +377,7 @@
 	g_free(head);
 	g_free(tail);
 	g_free(username);
-	g_free(password);
+	g_free(encpass);
 
 	nexus->write_buf = request_str;
 	nexus->written_len = 0;
--- a/libpurple/win32/global.mak	Sun Mar 02 20:05:34 2008 +0000
+++ b/libpurple/win32/global.mak	Sun Mar 02 20:09:54 2008 +0000
@@ -79,6 +79,10 @@
 
 CYRUS_SASL ?= 1
 
+ifeq ($(CYRUS_SASL), 1)
+DEFINES += -DHAVE_CYRUS_SASL
+endif
+
 DEFINES += -DHAVE_CONFIG_H
 
 # Use -g flag when building debug version of Pidgin (including plugins).
--- a/pidgin/gtkdialogs.c	Sun Mar 02 20:05:34 2008 +0000
+++ b/pidgin/gtkdialogs.c	Sun Mar 02 20:09:54 2008 +0000
@@ -207,7 +207,7 @@
 	{N_("Albanian"),            "sq", "Besnik Bleta", "besnik@programeshqip.org"},
 	{N_("Serbian"),             "sr", "Miloš Popović", "gpopac@gmail.com"},
 	{N_("Serbian"),             "sr@Latn", "Miloš Popović", "gpopac@gmail.com"},
-	{"Sinhala",                 "si", "Danishka Navin", "snavin@redhat.com"},
+	{N_("Sinhala"),             "si", "Danishka Navin", "snavin@redhat.com"},
 	{N_("Swedish"),             "sv", "Peter Hjalmarsson", "xake@telia.com"},
 	{N_("Tamil"),               "ta", "Viveka Nathan K", "vivekanathan@users.sourceforge.net"},
 	{N_("Telugu"),              "te", "Mr. Subbaramaih", "info.gist@cdac.in"},