changeset 23211:ca6bbafcd079

merge of '71329f62bbfea27b695e6d17ce5b22281a9b70ca' and '99656e64231e6958a0539cd0367164f3c1b83549'
author Evan Schoenberg <evan.s@dreskin.net>
date Tue, 27 May 2008 01:38:38 +0000
parents 1e87376e77f2 (diff) 646e96069fcd (current diff)
children f34fbd06984f
files
diffstat 14 files changed, 117 insertions(+), 52 deletions(-) [+]
line wrap: on
line diff
--- a/COPYRIGHT	Tue May 27 01:37:42 2008 +0000
+++ b/COPYRIGHT	Tue May 27 01:38:38 2008 +0000
@@ -278,6 +278,7 @@
 Novell
 Padraig O'Briain
 Christopher O'Brien (siege)
+Peter O'Gorman
 Jon Oberheide
 Yusuke Odate
 Ruediger Oertel
@@ -449,6 +450,7 @@
 Matt Wilson
 Dan Winship
 Scott Wolchok
+The Written Word, Inc.
 Kevin Wu Won
 Pui Lam Wong
 Justin Wood
--- a/configure.ac	Tue May 27 01:37:42 2008 +0000
+++ b/configure.ac	Tue May 27 01:38:38 2008 +0000
@@ -108,13 +108,14 @@
 
 dnl Checks for programs.
 AC_PROG_CC
+AM_PROG_CC_C_O
 AC_DISABLE_STATIC
-AM_PROG_LIBTOOL
+AC_PROG_LIBTOOL
 LIBTOOL="$LIBTOOL --silent"
 AC_PROG_INSTALL
 AC_PROG_INTLTOOL
 PKG_PROG_PKG_CONFIG
-
+AC_FUNC_ALLOCA
 GETTEXT_PACKAGE=pidgin
 AC_SUBST(GETTEXT_PACKAGE)
 
@@ -210,7 +211,7 @@
 		[Define to 1 if you have the getaddrinfo function.])],
 	[AC_CHECK_LIB(socket, getaddrinfo,
 		[AC_DEFINE([HAVE_GETADDRINFO]) LIBS="-lsocket -lsnl $LIBS"], , , -lnsl)])
-
+AC_CHECK_FUNCS(inet_ntop)
 dnl Check for socklen_t (in Unix98)
 AC_MSG_CHECKING(for socklen_t)
 AC_TRY_COMPILE([
@@ -234,6 +235,12 @@
 	])
 ])
 
+dnl Some systems do not have sa_len field for struct sockaddr.
+AC_CHECK_MEMBER([struct sockaddr.sa_len],
+	[AC_DEFINE([HAVE_STRUCT_SOCKADDR_SA_LEN],[1],
+	[Define if struct sockaddr has an sa_len member])],[:],
+	[#include <sys/socket.h>])
+
 dnl to prevent the g_stat()/g_unlink() crash,
 dnl (09:50:07) Robot101: LSchiere2: it's easy. +LC_SYS_LARGEFILE somewhere in configure.ac
 AC_SYS_LARGEFILE
--- a/libpurple/buddyicon.h	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/buddyicon.h	Tue May 27 01:38:38 2008 +0000
@@ -26,6 +26,11 @@
 #ifndef _PURPLE_BUDDYICON_H_
 #define _PURPLE_BUDDYICON_H_
 
+/** An opaque structure representing a buddy icon for a particular user on a
+ *  particular #PurpleAccount.  Instances are reference-counted; use
+ *  purple_buddy_icon_ref() and purple_buddy_icon_unref() to take and release
+ *  references.
+ */
 typedef struct _PurpleBuddyIcon PurpleBuddyIcon;
 
 #include "account.h"
--- a/libpurple/dnsquery.c	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/dnsquery.c	Tue May 27 01:38:38 2008 +0000
@@ -32,6 +32,9 @@
 #include "prefs.h"
 #include "util.h"
 
+#if (defined(__APPLE__) || defined (__unix__)) && !defined(__osf__)
+#define PURPLE_DNSQUERY_USE_FORK
+#endif
 /**************************************************************************
  * DNS query API
  **************************************************************************/
@@ -47,16 +50,16 @@
 	gpointer data;
 	guint timeout;
 
-#if defined(__unix__) || defined(__APPLE__)
+#if defined(PURPLE_DNSQUERY_USE_FORK)
 	PurpleDnsQueryResolverProcess *resolver;
-#elif defined _WIN32 /* end __unix__ || __APPLE__ */
+#elif defined _WIN32 /* end PURPLE_DNSQUERY_USE_FORK  */
 	GThread *resolver;
 	GSList *hosts;
 	gchar *error_message;
 #endif
 };
 
-#if defined(__unix__) || defined(__APPLE__)
+#if defined(PURPLE_DNSQUERY_USE_FORK)
 
 #define MAX_DNS_CHILDREN 4
 
@@ -131,7 +134,7 @@
 	return FALSE;
 }
 
-#if defined(__unix__) || defined(__APPLE__)
+#if defined(PURPLE_DNSQUERY_USE_FORK)
 
 /*
  * Unix!
@@ -649,7 +652,7 @@
 	return query_data;
 }
 
-#elif defined _WIN32 /* end __unix__ || __APPLE__ */
+#elif defined _WIN32 /* end PURPLE_DNSQUERY_USE_FORK  */
 
 /*
  * Windows!
@@ -821,7 +824,7 @@
 	return query_data;
 }
 
-#else /* not __unix__ or __APPLE__ or _WIN32 */
+#else /* not PURPLE_DNSQUERY_USE_FORK or _WIN32 */
 
 /*
  * We weren't able to do anything fancier above, so use the
@@ -897,7 +900,7 @@
 	return query_data;
 }
 
-#endif /* not __unix__ or __APPLE__ or _WIN32 */
+#endif /* not PURPLE_DNSQUERY_USE_FORK or _WIN32 */
 
 void
 purple_dnsquery_destroy(PurpleDnsQueryData *query_data)
@@ -907,7 +910,7 @@
 	if (ops && ops->destroy)
 		ops->destroy(query_data);
 
-#if defined(__unix__) || defined(__APPLE__)
+#if defined(PURPLE_DNSQUERY_USE_FORK)
 	queued_requests = g_slist_remove(queued_requests, query_data);
 
 	if (query_data->resolver != NULL)
@@ -918,7 +921,7 @@
 		 * they just don't listen.
 		 */
 		purple_dnsquery_resolver_destroy(query_data->resolver);
-#elif defined _WIN32 /* end __unix__ || __APPLE__ */
+#elif defined _WIN32 /* end PURPLE_DNSQUERY_USE_FORK */
 	if (query_data->resolver != NULL)
 	{
 		/*
@@ -987,7 +990,7 @@
 void
 purple_dnsquery_uninit(void)
 {
-#if defined(__unix__) || defined(__APPLE__)
+#if defined(PURPLE_DNSQUERY_USE_FORK)
 	while (free_dns_children != NULL)
 	{
 		purple_dnsquery_resolver_destroy(free_dns_children->data);
--- a/libpurple/dnssrv.c	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/dnssrv.c	Tue May 27 01:38:38 2008 +0000
@@ -25,8 +25,8 @@
 #include "util.h"
 
 #ifndef _WIN32
+#include <arpa/nameser.h>
 #include <resolv.h>
-#include <arpa/nameser.h>
 #ifdef HAVE_ARPA_NAMESER_COMPAT_H
 #include <arpa/nameser_compat.h>
 #endif
--- a/libpurple/internal.h	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/internal.h	Tue May 27 01:38:38 2008 +0000
@@ -102,7 +102,7 @@
 #include <gmodule.h>
 
 #ifdef PURPLE_PLUGINS
-# ifndef _WIN32
+# ifdef HAVE_DLFCN_H 
 #  include <dlfcn.h>
 # endif
 #endif
--- a/libpurple/nat-pmp.c	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/nat-pmp.c	Tue May 27 01:38:38 2008 +0000
@@ -125,7 +125,16 @@
 		if (bitmask & (1 << i)) 
 		{
 			addrs[i] = sa;
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
 			sa = (struct sockaddr *)(ROUNDUP(sa->sa_len) + (char *)sa);
+#else
+			if (sa->sa_family == AF_INET)
+				sa = (struct sockaddr*)(sizeof(struct sockaddr_in) + (char *)sa);
+#ifdef AF_INET6
+			else if (sa->sa_family == AF_INET6)
+				sa = (struct sockaddr*)(sizeof(struct sockaddr_in6) + (char *)sa);
+#endif
+#endif
 		} 
 		else
 		{
@@ -146,7 +155,12 @@
     if ((sin->sin_addr.s_addr == INADDR_ANY) &&
 		mask &&
 		(ntohl(((struct sockaddr_in *)mask)->sin_addr.s_addr) == 0L ||
-		 mask->sa_len == 0))
+#ifdef HAVE_STRUCT_SOCKADDR_SA_LEN
+		 mask->sa_len == 0
+#else
+		0
+#endif
+		))
 		return 1;
     else
 		return 0;
--- a/libpurple/network.c	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/network.c	Tue May 27 01:38:38 2008 +0000
@@ -27,9 +27,9 @@
 #include "internal.h"
 
 #ifndef _WIN32
+#include <arpa/nameser.h>
 #include <resolv.h>
 #include <netinet/in.h>
-#include <arpa/nameser.h>
 #include <net/if.h>
 #include <sys/ioctl.h>
 #else
--- a/libpurple/protocols/zephyr/Makefile.am	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/protocols/zephyr/Makefile.am	Tue May 27 01:38:38 2008 +0000
@@ -104,7 +104,7 @@
 	-I$(top_srcdir)/libpurple \
 	-I$(top_builddir)/libpurple \
 	-I$(top_srcdir)/libpurple/protocols \
-	-DCONFDIR=\"$(confdir)\" \
+	-DCONFDIR=\"$(sysconfdir)\" \
 	$(GLIB_CFLAGS) \
 	$(KRB4_CFLAGS) \
 	$(DEBUG_CFLAGS)
--- a/libpurple/protocols/zephyr/zephyr.c	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/protocols/zephyr/zephyr.c	Tue May 27 01:38:38 2008 +0000
@@ -892,11 +892,16 @@
 			gconv1 = purple_find_conversation_with_account(PURPLE_CONV_TYPE_CHAT,
 														 zt2->name, gc->account);
 			gcc = purple_conversation_get_chat_data(gconv1);
-
+#ifndef INET_ADDRSTRLEN
+#define INET_ADDRSTRLEN 16
+#endif
 			if (!purple_conv_chat_find_user(gcc, sendertmp)) {
 				gchar ipaddr[INET_ADDRSTRLEN];
+#ifdef HAVE_INET_NTOP
 				inet_ntop(AF_INET, &notice.z_sender_addr.s_addr, ipaddr, sizeof(ipaddr));
-
+#else
+				memcpy(ipaddr,inet_ntoa(notice.z_sender_addr),sizeof(ipaddr));
+#endif
 				purple_conv_chat_add_user(gcc, sendertmp, ipaddr, PURPLE_CBFLAGS_NONE, TRUE);
 			}
 			g_free(sendertmp);
--- a/libpurple/proxy.c	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/proxy.c	Tue May 27 01:38:38 2008 +0000
@@ -1726,6 +1726,10 @@
  * resolved, and each time a connection attempt fails (assuming there
  * is another IP address to try).
  */
+#ifndef INET6_ADDRSTRLEN
+#define INET6_ADDRSTRLEN 46
+#endif
+
 static void try_connect(PurpleProxyConnectData *connect_data)
 {
 	size_t addrlen;
@@ -1736,9 +1740,13 @@
 	connect_data->hosts = g_slist_remove(connect_data->hosts, connect_data->hosts->data);
 	addr = connect_data->hosts->data;
 	connect_data->hosts = g_slist_remove(connect_data->hosts, connect_data->hosts->data);
-
+#ifdef HAVE_INET_NTOP
 	inet_ntop(addr->sa_family, &((struct sockaddr_in *)addr)->sin_addr,
 			ipaddr, sizeof(ipaddr));
+#else
+	memcpy(ipaddr,inet_ntoa(((struct sockaddr_in *)addr)->sin_addr),
+			sizeof(ipaddr));
+#endif
 	purple_debug_info("proxy", "Attempting connection to %s\n", ipaddr);
 
 	switch (purple_proxy_info_get_type(connect_data->gpi)) {
--- a/libpurple/prpl.h	Tue May 27 01:37:42 2008 +0000
+++ b/libpurple/prpl.h	Tue May 27 01:38:38 2008 +0000
@@ -71,16 +71,22 @@
 #include "status.h"
 #include "whiteboard.h"
 
+
+/** @copydoc PurpleBuddyIconSpec */
 struct _PurpleBuddyIconSpec {
-	char *format;                       /**< This is a comma-delimited list of image formats or NULL if icons are not supported.
-					     * Neither the core nor the prpl will actually check to see if the data it's given matches this; it's
-					     * entirely up to the UI to do what it wants */
-	int min_width;                          /**< The minimum width of this icon  */
-	int min_height;                         /**< The minimum height of this icon */
-	int max_width;                          /**< The maximum width of this icon  */
-	int max_height;                         /**< The maximum height of this icon */
-	size_t max_filesize;                     /**< The maximum number of bytes    */
-	PurpleIconScaleRules scale_rules;		/**< How to stretch this icon */
+	/** This is a comma-delimited list of image formats or @c NULL if icons
+	 *  are not supported.  Neither the core nor the prpl will actually
+	 *  check to see if the data it's given matches this; it's entirely up
+	 *  to the UI to do what it wants
+	 */
+	char *format;
+
+	int min_width;                     /**< Minimum width of this icon  */
+	int min_height;                    /**< Minimum height of this icon */
+	int max_width;                     /**< Maximum width of this icon  */
+	int max_height;                    /**< Maximum height of this icon */
+	size_t max_filesize;               /**< Maximum size in bytes */
+	PurpleIconScaleRules scale_rules;  /**< How to stretch this icon */
 };
 
 struct proto_chat_entry {
--- a/pidgin/gtkmain.c	Tue May 27 01:37:42 2008 +0000
+++ b/pidgin/gtkmain.c	Tue May 27 01:38:38 2008 +0000
@@ -185,6 +185,9 @@
 sighandler(int sig)
 {
 	switch (sig) {
+	case SIGHUP:
+		purple_debug_warning("sighandler", "Caught signal %d\n", sig);
+		break;
 	case SIGSEGV:
 		fprintf(stderr, "%s", segfault_message);
 		abort();
--- a/po/de.po	Tue May 27 01:37:42 2008 +0000
+++ b/po/de.po	Tue May 27 01:38:38 2008 +0000
@@ -11,8 +11,8 @@
 msgstr ""
 "Project-Id-Version: de\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2008-05-24 10:32+0200\n"
-"PO-Revision-Date: 2008-05-24 10:31+0200\n"
+"POT-Creation-Date: 2008-05-26 21:14+0200\n"
+"PO-Revision-Date: 2008-05-26 21:14+0200\n"
 "Last-Translator: Jochen Kemnade <jochenkemnade@web.de>\n"
 "Language-Team: Deutsch <de@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -10813,9 +10813,6 @@
 msgid "Fatal Error"
 msgstr "Schwerer Fehler"
 
-msgid "lead developer"
-msgstr "Hauptentwickler"
-
 msgid "developer"
 msgstr "Entwickler"
 
@@ -10850,6 +10847,9 @@
 msgid "original author"
 msgstr "Originalautor"
 
+msgid "lead developer"
+msgstr "Hauptentwickler"
+
 msgid "Afrikaans"
 msgstr "Afrikaans"
 
@@ -11229,23 +11229,35 @@
 msgid "Right-click for more unread messages...\n"
 msgstr "Rechtsklicken für weitere ungelesene Nachrichten...\n"
 
-msgid "Change Status"
-msgstr "Ändere Status"
-
-msgid "Show Buddy List"
-msgstr "Buddy-Liste anzeigen"
-
-msgid "New Message..."
-msgstr "Neue Nachricht..."
-
-msgid "Mute Sounds"
-msgstr "Stummschalten"
-
-msgid "Blink on New Message"
-msgstr "Bei neuen Nachrichten blinken"
-
-msgid "Quit"
-msgstr "Beenden"
+msgid "_Change Status"
+msgstr "Ändere _Status"
+
+msgid "Show Buddy _List"
+msgstr "Buddy-_Liste anzeigen"
+
+msgid "_Unread Messages"
+msgstr "_Ungelesene Nachrichten"
+
+msgid "New _Message..."
+msgstr "_Neue Nachricht..."
+
+msgid "_Accounts"
+msgstr "_Konten"
+
+msgid "Plu_gins"
+msgstr "_Plugins"
+
+msgid "Pr_eferences"
+msgstr "_Einstellungen"
+
+msgid "Mute _Sounds"
+msgstr "Stu_mmschalten"
+
+msgid "_Blink on New Message"
+msgstr "Be_i neuen Nachrichten blinken"
+
+msgid "_Quit"
+msgstr "_Beenden"
 
 msgid "Not started"
 msgstr "Nicht gestartet"