<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.gnome.gaim.cvs">
    <title>gmane.comp.gnome.gaim.cvs</title>
    <link>http://blog.gmane.org/gmane.comp.gnome.gaim.cvs</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32794"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32793"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32792"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32791"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32790"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32789"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32788"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32787"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32786"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32785"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32784"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32783"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32782"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32781"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32780"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32779"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32778"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32777"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32776"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32775"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32794">
    <title>soc.2012.gg: 86ff13bb: Libgadu configuration file cleanup and u...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32794</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 86ff13bbe87f89af715123867fd41d4798f58272
Parent:   a679029bf30ee766841e5d910dc56cf39dacfac3
Author:   tomkiewicz&amp;lt; at &amp;gt;cpw.pidgin.im
Date:     05/25/12 17:35:32
Branch:   im.pidgin.soc.2012.gg
URL: http://d.pidgin.im/viewmtn/revision/info/86ff13bbe87f89af715123867fd41d4798f58272

Changelog: 

Libgadu configuration file cleanup and update

Changes against parent a679029bf30ee766841e5d910dc56cf39dacfac3

  patched  libpurple/protocols/gg/lib/config.h

============================================================
--- libpurple/protocols/gg/lib/config.had2b6feca386b32e4e9d179ac97da5eb7142c473
+++ libpurple/protocols/gg/lib/config.hc2274e808795ecd3a845a3fa7c927ae9bf23cdf4
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,23 +1,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 /* Local libgadu configuration. */
 
+#ifndef __GG_LIBGADU_CONFIG_H
+#define __GG_LIBGADU_CONFIG_H
+
 /* libpurple's config */
 #include &amp;lt;config.h&amp;gt;
 
-#ifndef __GG_LIBGADU_CONFIG_H
-#define __GG_LIBGADU_CONFIG_H
-
 /* Defined if libgadu was compiled for bigendian machine. */
-#undef __GG_LIBGADU_BIGENDIAN
+#undef GG_CONFIG_BIGENDIAN
 #ifdef WORDS_BIGENDIAN
-#  define __GG_LIBGADU_BIGENDIAN
+#  define GG_CONFIG_BIGENDIAN
 #endif
 
 /* Defined if this machine has gethostbyname_r(). */
 #undef GG_CONFIG_HAVE_GETHOSTBYNAME_R
 
-/* Defined if this machine has _exit(). */
-#define GG_CONFIG_HAVE__EXIT
-
 /* Defined if libgadu was compiled and linked with fork support. */
 #undef GG_CONFIG_HAVE_FORK
 #ifndef _WIN32
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,25 +22,25 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #endif
 
 /* Defined if libgadu was compiled and linked with pthread support. */
-/* We don't like pthreads. */
-#undef __GG_LIBGADU_HAVE_PTHREAD
+/* We don't use pthreads due to stability issues. */
+#undef GG_CONFIG_HAVE_PTHREAD
 
 /* Defined if this machine has C99-compiliant vsnprintf(). */
-#undef __GG_LIBGADU_HAVE_C99_VSNPRINTF
+#undef HAVE_C99_VSNPRINTF
 #ifndef _WIN32
-#  define __GG_LIBGADU_HAVE_C99_VSNPRINTF
+#  define HAVE_C99_VSNPRINTF
 #endif
 
 /* Defined if this machine has va_copy(). */
-#define __GG_LIBGADU_HAVE_VA_COPY
+#define GG_CONFIG_HAVE_VA_COPY
 
 /* Defined if this machine has __va_copy(). */
-#define __GG_LIBGADU_HAVE___VA_COPY
+#define GG_CONFIG_HAVE___VA_COPY
 
 /* Defined if this machine supports long long. */
-#undef __GG_LIBGADU_HAVE_LONG_LONG
+#undef GG_CONFIG_HAVE_LONG_LONG
 #ifdef HAVE_LONG_LONG
-#  define __GG_LIBGADU_HAVE_LONG_LONG
+#  define GG_CONFIG_HAVE_LONG_LONG
 #endif
 
 /* Defined if libgadu was compiled and linked with GnuTLS support. */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -53,19 +50,31 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #endif
 
 /* Defined if libgadu was compiled and linked with OpenSSL support. */
-/* Always undefined in Purple. */
-#undef __GG_LIBGADU_HAVE_OPENSSL
+/* OpenSSL cannot be used with libpurple due to licence type. */
+#undef GG_CONFIG_HAVE_OPENSSL
 
 /* Defined if libgadu was compiled and linked with zlib support. */
 #undef GG_CONFIG_HAVE_ZLIB
 
 /* Defined if uintX_t types are defined in &amp;lt;stdint.h&amp;gt;. */
 #undef GG_CONFIG_HAVE_STDINT_H
-#if HAVE_STDINT_H
+#ifdef HAVE_STDINT_H
 #  define GG_CONFIG_HAVE_STDINT_H
 #endif
 
+/* Defined if uintX_t types are defined in &amp;lt;inttypes.h&amp;gt;. */
+#undef GG_CONFIG_HAVE_INTTYPES_H
+#ifdef HAVE_INTTYPES_H
+#  define GG_CONFIG_HAVE_INTTYPES_H
+#endif
 
+/* Defined if uintX_t types are defined in &amp;lt;sys/types.h&amp;gt;. */
+#undef GG_CONFIG_HAVE_SYS_TYPES_H
+#ifdef HAVE_SYS_TYPES_H
+#  define GG_CONFIG_HAVE_SYS_TYPES_H
+#endif
+
+
 #define vnsprintf g_vnsprintf
 
 #endif
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>tomkiewicz&lt; at &gt;cpw.pidgin.im</dc:creator>
    <dc:date>2012-05-25T21:41:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32793">
    <title>soc.2012.gg: a679029b: Report libgadu version, remove unused va...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32793</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: a679029bf30ee766841e5d910dc56cf39dacfac3
Parent:   3fa4537f3ab13ea082d468da8f8ca6162b31948e
Author:   tomkiewicz&amp;lt; at &amp;gt;cpw.pidgin.im
Date:     05/25/12 16:57:43
Branch:   im.pidgin.soc.2012.gg
URL: http://d.pidgin.im/viewmtn/revision/info/a679029bf30ee766841e5d910dc56cf39dacfac3

Changelog: 

Report libgadu version, remove unused variable.

Changes against parent 3fa4537f3ab13ea082d468da8f8ca6162b31948e

  patched  libpurple/protocols/gg/gg.c

============================================================
--- libpurple/protocols/gg/gg.c97da098a6852b937c89a9359b8f6da860422c8a1
+++ libpurple/protocols/gg/gg.c5f171159d2f69d8f0607310d2516c47ff357dae1
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -49,8 +49,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #  include "win32-resolver.h"
 #endif
 
-static PurplePlugin *my_protocol = NULL;
-
 /* Prototypes */
 static void ggp_set_status(PurpleAccount *account, PurpleStatus *status);
 static int ggp_to_gg_status(PurpleStatus *status, char **msg);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2975,6 +2973,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void init_plugin(PurplePlugin *pl
 PurpleAccountOption *option;
 GList *encryption_options = NULL;
 
+purple_debug_info("gg", "init_plugin: [libgadu version: %s]\n",
+gg_libgadu_version());
+
 option = purple_account_option_string_new(_("GG server"),
 "gg_server", "");
 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3002,8 +3003,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void init_plugin(PurplePlugin *pl
 prpl_info.protocol_options = g_list_append(prpl_info.protocol_options,
 option);
 
-my_protocol = plugin;
-
 gg_debug_handler = purple_gg_debug_handler;
 
 #ifdef _WIN32
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>tomkiewicz&lt; at &gt;cpw.pidgin.im</dc:creator>
    <dc:date>2012-05-25T21:02:51</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32792">
    <title>soc.2012.gg: 3fa4537f: Update libgadu to 1.11.1</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32792</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 3fa4537f3ab13ea082d468da8f8ca6162b31948e
Parent:   04dd9b27f1bb9e7ef162fb6243e8c9e896b57f16
Author:   tomkiewicz&amp;lt; at &amp;gt;cpw.pidgin.im
Date:     05/25/12 16:36:26
Branch:   im.pidgin.soc.2012.gg
URL: http://d.pidgin.im/viewmtn/revision/info/3fa4537f3ab13ea082d468da8f8ca6162b31948e

Changelog: 

Update libgadu to 1.11.1

Changes against parent 04dd9b27f1bb9e7ef162fb6243e8c9e896b57f16

  patched  configure.ac
  patched  libpurple/protocols/gg/lib/deflate.h
  patched  libpurple/protocols/gg/lib/encoding.c
  patched  libpurple/protocols/gg/lib/events.c
  patched  libpurple/protocols/gg/lib/internal.h
  patched  libpurple/protocols/gg/lib/libgadu.c
  patched  libpurple/protocols/gg/lib/resolver.c

============================================================
--- configure.aca62adbdac456cb3929ec94be1e0d9094e16d9d79
+++ configure.ac7b2e35f5b0505f663a997341293415cca702c23f
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1024,7 +1024,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; if test "x$gadu_manual_check" = "xno"; t
 gadu_manual_check="no"
 fi
 if test "x$gadu_manual_check" = "xno"; then
-PKG_CHECK_MODULES(GADU, [libgadu &amp;gt;= 1.11.0], [
+PKG_CHECK_MODULES(GADU, [libgadu &amp;gt;= 1.11.1], [
 gadu_includes="yes"
 gadu_libs="yes"
 ], [
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1058,7 +1058,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; if test "x$gadu_libs" = "xyes"; then
 ]])], [
 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include &amp;lt;libgadu.h&amp;gt;]], [[
 #if GG_DEFAULT_PROTOCOL_VERSION &amp;lt; 0x2e
-#error "Your libgadu version is too old. libpurple requires 1.11.0 or higher."
+#error "Your libgadu version is too old. libpurple requires 1.11.1 or higher."
 #endif
 ]])], [
 AC_MSG_RESULT(yes)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1069,7 +1069,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; if test "x$gadu_libs" = "xyes"; then
 echo
 echo
 echo "Your supplied copy of libgadu is too old."
-echo "Install version 1.11.0 or newer."
+echo "Install version 1.11.1 or newer."
 echo "Then rerun this ./configure"
 echo
 echo "Falling back to using our own copy of libgadu"
============================================================
--- libpurple/protocols/gg/lib/events.c6497cfa187ec6d0a8257fbb4af157a157ec84565
+++ libpurple/protocols/gg/lib/events.ce086543d1b8642b02abb68f5144791cb4a599a7f
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,4 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-/* $Id: events.c 1105 2011-05-25 21:34:50Z wojtekka $ */
+/* $Id: events.c 1144 2011-07-09 15:43:00Z wojtekka $ */
 
 /*
  *  (C) Copyright 2001-2006 Wojtek Kaniewski &amp;lt;wojtekka&amp;lt; at &amp;gt;irc.pl&amp;gt;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -806,14 +806,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gnutls_handshake_repeat:
 const gnutls_datum_t *peers;
 gnutls_x509_crt_t cert;
 
-if (gnutls_x509_crt_init(&amp;amp;cert) &amp;gt;= 0) {
+if (gnutls_x509_crt_init(&amp;amp;cert) == 0) {
 peers = gnutls_certificate_get_peers(GG_SESSION_GNUTLS(sess), &amp;amp;peer_count);
 
 if (peers != NULL) {
 char buf[256];
 size_t size;
 
-if (gnutls_x509_crt_import(cert, &amp;amp;peers[0], GNUTLS_X509_FMT_DER) &amp;gt;= 0) {
+if (gnutls_x509_crt_import(cert, &amp;amp;peers[0], GNUTLS_X509_FMT_DER) == 0) {
 size = sizeof(buf);
 gnutls_x509_crt_get_dn(cert, buf, &amp;amp;size);
 gg_debug_session(sess, GG_DEBUG_MISC, "//   cert subject: %s\n", buf);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -822,6 +822,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gnutls_handshake_repeat:
 gg_debug_session(sess, GG_DEBUG_MISC, "//   cert issuer: %s\n", buf);
 }
 }
+
+gnutls_x509_crt_deinit(cert);
 }
 }
 
============================================================
--- libpurple/protocols/gg/lib/libgadu.c660938af19e11f9bb0dd80e098c2f439736df3fc
+++ libpurple/protocols/gg/lib/libgadu.cb9fed113016e21d124962020d869744000873ac2
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,4 +1,4 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
-/* $Id: libgadu.c 1102 2011-05-05 21:17:57Z wojtekka $ */
+/* $Id: libgadu.c 1245 2012-01-10 22:48:31Z wojtekka $ */
 
 /*
  *  (C) Copyright 2001-2010 Wojtek Kaniewski &amp;lt;wojtekka&amp;lt; at &amp;gt;irc.pl&amp;gt;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -60,7 +60,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #  include &amp;lt;openssl/rand.h&amp;gt;
 #endif
 
-#define GG_LIBGADU_VERSION "1.11.0"
+#define GG_LIBGADU_VERSION "1.11.1"
 
 /**
  * Port gniazda nas?uchuj?cego dla po??cze? bezpo?rednich.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -132,7 +132,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; __attribute__ ((unused))
 #ifdef __GNUC__
 __attribute__ ((unused))
 #endif
-= "$Id: libgadu.c 1102 2011-05-05 21:17:57Z wojtekka $";
+= "$Id: libgadu.c 1245 2012-01-10 22:48:31Z wojtekka $";
 #endif
 
 #endif /* DOXYGEN */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -149,7 +149,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; const char *gg_libgadu_version()
 return GG_LIBGADU_VERSION;
 }
 
-#ifdef GG_CONFIG_HAVE_UINT64_T
+#ifdef HAVE_UINT64_T
 /**
  * \internal Zamienia kolejno?? bajt?w w 64-bitowym s?owie.
  *
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -178,7 +178,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; uint64_t gg_fix64(uint64_t x)
 ((x &amp;amp; (uint64_t) 0xff00000000000000ULL) &amp;gt;&amp;gt; 56));
 #endif
 }
-#endif /* GG_CONFIG_HAVE_UINT64_T */
+#endif /* HAVE_UINT64_T */
 
 /**
  * \internal Zamienia kolejno?? bajt?w w 32-bitowym s?owie.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -443,11 +443,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int gg_write(struct gg_session *sess, co
 res = written;
 }
 } else {
-res = 0;
-
 if (sess-&amp;gt;send_buf == NULL) {
 res = gg_write_common(sess, buf, length);
 
+if (res == -1 &amp;amp;&amp;amp; errno == EAGAIN)
+res = 0;
 if (res == -1)
 return -1;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1112,18 +1112,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void gg_logoff(struct gg_session *sess)
 sess-&amp;gt;fd = -1;
 }
 
-#ifdef GG_CONFIG_HAVE_GNUTLS
-if (sess-&amp;gt;ssl != NULL) {
-gg_session_gnutls_t *tmp;
-
-tmp = (gg_session_gnutls_t*) sess-&amp;gt;ssl;
-gnutls_deinit(tmp-&amp;gt;session);
-gnutls_certificate_free_credentials(tmp-&amp;gt;xcred);
-gnutls_global_deinit();
-free(sess-&amp;gt;ssl);
-}
-#endif
-
 if (sess-&amp;gt;send_buf) {
 free(sess-&amp;gt;send_buf);
 sess-&amp;gt;send_buf = NULL;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1155,6 +1143,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void gg_free_session(struct gg_session *
 free(sess-&amp;gt;recv_buf);
 free(sess-&amp;gt;header_buf);
 
+#ifdef GG_CONFIG_HAVE_GNUTLS
+if (sess-&amp;gt;ssl != NULL) {
+gg_session_gnutls_t *tmp;
+
+tmp = (gg_session_gnutls_t*) sess-&amp;gt;ssl;
+gnutls_deinit(tmp-&amp;gt;session);
+gnutls_certificate_free_credentials(tmp-&amp;gt;xcred);
+gnutls_global_deinit();
+free(sess-&amp;gt;ssl);
+}
+#endif
+
 #ifdef GG_CONFIG_HAVE_OPENSSL
 if (sess-&amp;gt;ssl)
 SSL_free(sess-&amp;gt;ssl);
============================================================
--- libpurple/protocols/gg/lib/internal.h8c0f7de7a28784227ce20dd846fdb8a2d9ff2101
+++ libpurple/protocols/gg/lib/internal.h9d7f47b85f335bf1ceba6f2c91538ab7ded84231
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -22,6 +22,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #define LIBGADU_INTERNAL_H
 
 #include "libgadu.h"
+#include "config.h"
 
 struct gg_dcc7_relay {
 uint32_t addr;
============================================================
--- libpurple/protocols/gg/lib/resolver.c1360fbb37c933b5e7d4f9d2707b9af85e409c436
+++ libpurple/protocols/gg/lib/resolver.c8a6934adae87fb0f6b6d80867a44e1954e4a0fd3
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -234,7 +234,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int gg_gethostbyname_real(const char *ho
 /* Kopiuj */
 
 for (i = 0; he-&amp;gt;h_addr_list[i] != NULL; i++)
-memcpy(&amp;amp;((*result)[i]), he-&amp;gt;h_addr_list[0], sizeof(struct in_addr));
+memcpy(&amp;amp;((*result)[i]), he-&amp;gt;h_addr_list[i], sizeof(struct in_addr));
 
 (*result)[i].s_addr = INADDR_NONE;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -265,6 +265,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int gg_resolver_run(int fd, const
 if ((addr_ip[0].s_addr = inet_addr(hostname)) == INADDR_NONE) {
 if (gg_gethostbyname_real(hostname, &amp;amp;addr_list, &amp;amp;addr_count, 1) == -1) {
 addr_list = addr_ip;
+addr_count = 0;
 /* addr_ip[0] ju? zawiera INADDR_NONE */
 }
 } else {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -375,7 +376,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static int gg_resolver_fork_start(int *f
 
 status = (gg_resolver_run(pipes[1], hostname) == -1) ? 1 : 0;
 
-#ifdef GG_CONFIG_HAVE__EXIT
+#ifdef HAVE__EXIT
 _exit(status);
 #else
 exit(status);
============================================================
--- libpurple/protocols/gg/lib/encoding.c151c59ca64dc1c83755e882ab90f6e04ea35d952
+++ libpurple/protocols/gg/lib/encoding.c6860fe4cdc44036f9b492b79ca5115171146cfe8
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -35,22 +35,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static const uint16_t table_cp1250[] =
  */
 static const uint16_t table_cp1250[] =
 {
-        0x20ac, '?',    0x201a, '?',    0x201e, 0x2026, 0x2020, 0x2021,
-        '?',    0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179,
-        '?',    0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
-        '?',    0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a,
-        0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7,
-        0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b,
-        0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
-        0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c,
-        0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,
-        0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,
-        0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,
-        0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,
-        0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,
-        0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,
-        0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,
-        0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9,
+0x20ac, '?',    0x201a, '?',    0x201e, 0x2026, 0x2020, 0x2021,
+'?',    0x2030, 0x0160, 0x2039, 0x015a, 0x0164, 0x017d, 0x0179,
+'?',    0x2018, 0x2019, 0x201c, 0x201d, 0x2022, 0x2013, 0x2014,
+'?',    0x2122, 0x0161, 0x203a, 0x015b, 0x0165, 0x017e, 0x017a,
+0x00a0, 0x02c7, 0x02d8, 0x0141, 0x00a4, 0x0104, 0x00a6, 0x00a7,
+0x00a8, 0x00a9, 0x015e, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x017b,
+0x00b0, 0x00b1, 0x02db, 0x0142, 0x00b4, 0x00b5, 0x00b6, 0x00b7,
+0x00b8, 0x0105, 0x015f, 0x00bb, 0x013d, 0x02dd, 0x013e, 0x017c,
+0x0154, 0x00c1, 0x00c2, 0x0102, 0x00c4, 0x0139, 0x0106, 0x00c7,
+0x010c, 0x00c9, 0x0118, 0x00cb, 0x011a, 0x00cd, 0x00ce, 0x010e,
+0x0110, 0x0143, 0x0147, 0x00d3, 0x00d4, 0x0150, 0x00d6, 0x00d7,
+0x0158, 0x016e, 0x00da, 0x0170, 0x00dc, 0x00dd, 0x0162, 0x00df,
+0x0155, 0x00e1, 0x00e2, 0x0103, 0x00e4, 0x013a, 0x0107, 0x00e7,
+0x010d, 0x00e9, 0x0119, 0x00eb, 0x011b, 0x00ed, 0x00ee, 0x010f,
+0x0111, 0x0144, 0x0148, 0x00f3, 0x00f4, 0x0151, 0x00f6, 0x00f7,
+0x0159, 0x016f, 0x00fa, 0x0171, 0x00fc, 0x00fd, 0x0163, 0x02d9,
 };
 
 /**
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -136,11 +136,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static char *gg_encoding_convert_utf8_cp
 uint32_t uc = 0, uc_min = 0;
 
 for (i = 0, len = 0; (src[i] != 0) &amp;amp;&amp;amp; (i &amp;lt; src_length); i++) {
-if ((src[i] &amp;amp; 0xc0) == 0xc0) {
+if ((src[i] &amp;amp; 0xc0) != 0x80)
 len++;
-} else if ((src[i] &amp;amp; 0x80) == 0x00) {
-len++;
-}
 }
 
 if ((dst_length != -1) &amp;amp;&amp;amp; (len &amp;gt; dst_length))
============================================================
--- libpurple/protocols/gg/lib/deflate.h392439e640bfde845d8ee0b31687905f3da1dc5b
+++ libpurple/protocols/gg/lib/deflate.h524f7c41674efa254cc265402119a3be79eda11e
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,7 +1,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 /* $Id$ */
 
 /*
- *  (C) Copyright 2009 Jakub Zawadzki &amp;lt;darkjames&amp;lt; at &amp;gt;darkjames.ath.cx&amp;gt;
+ *  (C) Copyright 2011 Bartosz Brachaczek &amp;lt;b.brachaczek&amp;lt; at &amp;gt;gmail.com&amp;gt;
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU Lesser General Public License Version
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>tomkiewicz&lt; at &gt;cpw.pidgin.im</dc:creator>
    <dc:date>2012-05-25T20:43:04</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32791">
    <title>cpw.gillux.detachablepurple: e2377f27: Debug messages are better redwith line ...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32791</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: e2377f2713173f467e7aeab09c0760d14e8970a9
Parent:   1258821dd0c17cfa7c68aae4b3d46bc19d1e6e83
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 15:35:22
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/e2377f2713173f467e7aeab09c0760d14e8970a9

Changelog: 

Debug messages are better red with line returns.

Changes against parent 1258821dd0c17cfa7c68aae4b3d46bc19d1e6e83

  patched  libpurple/pobject.c

============================================================
--- libpurple/pobject.c5803f51d95b391bf219f3822643f177229fb665c
+++ libpurple/pobject.c07daa8fc518bfa4cf03705d97f95eb07e5f754d6
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -905,7 +905,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_generic_dbus_sighandler(GD
 closure = purple_object_get_dbus_closure(PURPLE_OBJECT_GET_CLASS(object),
                                          interface_name, signal_name);
 if (!closure) {
-purple_debug_warning("dbus", "Signal %s received on interface %s lacks a sighandler.", signal_name, interface_name);
+purple_debug_warning("dbus", "Signal %s received on interface %s lacks a sighandler.\n", signal_name, interface_name);
 return;
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1126,7 +1126,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_dbus_call(PurpleObject *po
                                        G_DBUS_CALL_FLAGS_NONE,
                                        DBUS_TIMEOUT_MSEC, NULL, &amp;amp;error);
 if (!out_args) {
-purple_debug_error("dbus", "Error while remotely calling %s.%s: %s",
+purple_debug_error("dbus", "Error while remotely calling %s.%s: %s\n",
                    iface-&amp;gt;name, method_name, error-&amp;gt;message);
 g_error_free(error);
 }
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:47:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32790">
    <title>cpw.gillux.detachablepurple: 916b38c7: Modified thepurple_constructor_pack_pob...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32790</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 916b38c70b2aa2f73c3d627dd51b1f31cb69d4fb
Parent:   8a1a8492fb4a53c9ee4f0379289ca9cc33bfc1fa
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 14:18:38
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/916b38c70b2aa2f73c3d627dd51b1f31cb69d4fb

Changelog: 

Modified the purple_constructor_pack_pobject_props() function so that
it can be properly used with purple_object_emit_dbus_signal() and its
variable parameters. Actually g_variant_new("a...", ...) expects a
GVariantBuilder, not a GVariant.

Changes against parent 8a1a8492fb4a53c9ee4f0379289ca9cc33bfc1fa

  patched  libpurple/dbus/constructor.c
  patched  libpurple/dbus/constructor.h

============================================================
--- libpurple/dbus/constructor.c25027943ec5e29fb50e0ed9eeb0190a18134f728
+++ libpurple/dbus/constructor.c8fd4f72f72f3176239e9a3bc16ae5e5d47dd8d88
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -188,10 +188,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_constructor_new_proxy_object(GTyp
 }
 
 /* Packs all the exported properties of a PurpleObject into an a(sv) GVariant. */
-GVariant *
+GVariantBuilder *
 purple_constructor_pack_pobject_props(PurpleObject *pobject)
 {
-GVariantBuilder builder;
+GVariantBuilder *builder = g_variant_builder_new(G_VARIANT_TYPE("a(sv)"));
 GParamSpec *pspec;
 GVariant *prop;
 GDBusInterfaceInfo *ifaceinfo;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -200,8 +200,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_constructor_pack_pobject_props(Pu
 PurpleObjectClass *pobjclass = PURPLE_OBJECT_GET_CLASS(pobject);
 GType type;
 
-g_variant_builder_init(&amp;amp;builder, (const GVariantType *) "a(sv)");
-
 /* Step from the most derived type to PurpleObject's direct child
  * type and retreive each D-Bus property list. */
 for (type = G_OBJECT_TYPE(pobject);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -232,19 +230,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_constructor_pack_pobject_props(Pu
 if (!prop)
 continue;
 prop = g_variant_new("(sv)", prop_name, prop);
-g_variant_builder_add_value(&amp;amp;builder, prop);
+g_variant_builder_add_value(builder, prop);
 }
 }
-return g_variant_builder_end(&amp;amp;builder);
+return builder;
 }
 
 GVariant *
 purple_constructor_pack_pobject(gpointer obj)
 {
 PurpleObject *pobj = PURPLE_OBJECT(obj);
-return g_variant_new("(o&amp;lt; at &amp;gt;a(sv))",
-                     purple_object_get_dbus_path(pobj),
-                     purple_constructor_pack_pobject_props(pobj));
+GVariantBuilder *props = purple_constructor_pack_pobject_props(pobj);
+GVariant *pobject = g_variant_new("(oa(sv))",
+                                  purple_object_get_dbus_path(pobj),
+                                  props);
+g_variant_builder_unref(props);
+return pobject;
 }
 
 static void
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -416,12 +417,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_constructor_announce_pobject_crea
 purple_constructor_announce_pobject_creation(PurpleObject *pobj)
 {
 PurpleConstructor *con = purple_constructor_get_instance();
+GVariantBuilder *props = purple_constructor_pack_pobject_props(pobj);
 purple_object_emit_dbus_signal(PURPLE_OBJECT(con),
                                purple_constructor_interface_info.name,
                                "PurpleObjectCreated",
                                G_OBJECT_TYPE_NAME(pobj),
                                purple_object_get_dbus_path(pobj),
-                               purple_constructor_pack_pobject_props(pobj));
+                               props);
+g_variant_builder_unref(props);
 }
 
 /* "PurpleObjectCreated" signal handler. */
============================================================
--- libpurple/dbus/constructor.h39f24ed4cea780acc66489e57db1b2379f87ff8b
+++ libpurple/dbus/constructor.h7b165aeaadc4c82f70cd98963ddb28a68b5b4916
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -82,9 +82,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void purple_constructor_announce_pobject
  * "a(sv)" GVariant ("s" is the property name, "v" is the property value).
  *
  * &amp;lt; at &amp;gt;param pobject A PurpleObject.
- * &amp;lt; at &amp;gt;return An "a(sv)" GVariant containing the properties.
+ * &amp;lt; at &amp;gt;return An "a(sv)" GVariantBuilder containing the properties. Must be freed
+ *         with g_variant_builder_unref()
  */
-GVariant *purple_constructor_pack_pobject_props(PurpleObject *pobject);
+GVariantBuilder *purple_constructor_pack_pobject_props(PurpleObject *pobject);
 
 /**
  * Packs a PurpleObject instance into an "(oa(sv))" GVariant. "o" is the
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:47:11</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32789">
    <title>cpw.gillux.detachablepurple: e110726a: Updated purpled (the purpledaemon) Purp...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32789</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: e110726a862a4acfe739c705230863d481a9856e
Parent:   701a370e7379a88370edda7d9740779e0b708ba5
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 15:40:04
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/e110726a862a4acfe739c705230863d481a9856e

Changelog: 

Updated purpled (the purple daemon) PurpleAccount uiops,
according to the new gdbus-based API.

Changes against parent 701a370e7379a88370edda7d9740779e0b708ba5

  patched  purpled/purpled-account.c

============================================================
--- purpled/purpled-account.c3d7b9040340a92c9589ed87764de7215fb56242e
+++ purpled/purpled-account.c92dfa1e85b37dbae134caf09b1061ac0b43f0757
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -22,20 +22,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "internal.h"
 #include "account.h"
 #include "dbus/callback.h"
+#include "dbus/account.xml.h"
+#include "dbus/callback.xml.h"
 #include "nullmarshaller.h"
 #include "purpled-account.h"
 
-/**
- * PurpleAccountUiOps.notify_added daemon callback.
- * This sends the NotifyAdded dbus signal.
- */
+/** PurpleAccountUiOps.notify_added daemon callback. */
 static void
 purpled_account_notify_added(PurpleAccount *account, const char *remote_user,
                      const char *id, const char *alias,
                              const char *message)
 {
-g_signal_emit_by_name(account, "notify_added",
-                      remote_user, id, alias, message);
+purple_object_emit_dbus_signal
+  (PURPLE_OBJECT(account), purple_account_interface_info.name,
+   "NotifyAdded", remote_user, id, alias, message);
 }
 
 /**
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -47,8 +47,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purpled_account_request_add(PurpleAccoun
                      const char *id, const char *alias,
                              const char *message)
 {
-g_signal_emit_by_name(account, "request_add",
-                      remote_user, id, alias, message);
+purple_object_emit_dbus_signal
+  (PURPLE_OBJECT(account), purple_account_interface_info.name,
+   "RequestAdd", remote_user, id, alias, message);
 }
 
 static void
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -60,7 +61,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purpled_close_account_request(void *ui_h
 g_return_if_fail(req_id &amp;gt; 0);
 
 /* Send the RequestClosed dbus signal with the request id */
-g_signal_emit_by_name(handler, "request_closed", req_id);
+purple_object_emit_dbus_signal
+  (PURPLE_OBJECT(handler), purple_callback_interface_info.name,
+   "RequestClosed", req_id);
 }
 
 /**
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -98,8 +101,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purpled_account_request_authorize(Purple
 g_return_val_if_fail(req_id &amp;gt; 0, NULL);
 
 /* Send the RequestAuthorize dbus signal with this new request id */
-g_signal_emit_by_name(account, "request_authorize", remote_user, id,
-                      alias, message, on_list, req_id);
+purple_object_emit_dbus_signal
+  (PURPLE_OBJECT(account), purple_account_interface_info.name,
+   "RequestAuthorize", remote_user, id, alias, message, on_list, req_id);
 
 return GINT_TO_POINTER(req_id);
 }
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:47:18</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32788">
    <title>cpw.gillux.detachablepurple: 8a1a8492: The D-Bus sending signalfunction now ta...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32788</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 8a1a8492fb4a53c9ee4f0379289ca9cc33bfc1fa
Parent:   3afce50b2cca69538ee5ece57dfc33b4c538e36c
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 14:12:51
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/8a1a8492fb4a53c9ee4f0379289ca9cc33bfc1fa

Changelog: 

The D-Bus sending signal function now takes variable parameters,
just like the D-Bus method calling one.

Changes against parent 3afce50b2cca69538ee5ece57dfc33b4c538e36c

  patched  libpurple/dbus/constructor.c
  patched  libpurple/pobject.c
  patched  libpurple/pobject.h

============================================================
--- libpurple/pobject.c7da1132f15d4ccee75c7b011d38898859b54205a
+++ libpurple/pobject.ca5d73b962339760940a4c3f846ea270b4997e1a9
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -616,7 +616,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_forward_notify_cb(GObject 
 {
 const gchar *prop_name;
 GVariant *prop;
-GVariant *signal_params;
 
 /* Note that this "notify" signal may occur even if the property havn't
  * changed (when one sets it to its previous value). This can constitute
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -633,12 +632,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_forward_notify_cb(GObject 
 purple_debug_info("dbus", "Sending notify about property '%s' of a %s\n",
                   prop_name, G_OBJECT_TYPE_NAME(gobj));
 
-signal_params = g_variant_new("(sv)", prop_name, prop);
 purple_object_emit_dbus_signal(PURPLE_OBJECT(gobj),
                                purple_object_interface_info.name,
-                              "PropertyChanged", signal_params, NULL);
+                              "PropertyChanged", prop_name, prop);
 g_variant_unref(prop);
-g_variant_unref(signal_params);
 }
 
 void
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1014,28 +1011,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_dbus_init(gpointer object,
 }
 }
 
-gboolean
-purple_object_emit_dbus_signal(PurpleObject *pobj, const gchar *interface_name,
-                               const gchar *signal_name,
-                               GVariant *signal_params, GError **error)
-{
-GDBusConnection *connection;
-char *object_path;
-
-object_path = purple_object_get_dbus_path(pobj);
-g_return_val_if_fail(object_path != NULL, FALSE);
-
-/* Not having a connection yet can happen during an asynchronous
- * purple initialization. */
-connection = purple_gdbus_get_connection();
-if (!connection)
-return FALSE;
-
-return g_dbus_connection_emit_signal(connection, NULL,
-                                     object_path, interface_name,
-                                     signal_name, signal_params, error);
-}
-
 /* Merges all the args signatures in a tuple and create a GVariantType from
  * that. Code shamely copied from glib's gdbusprivate.c. */
 static GVariantType *
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1060,6 +1035,53 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_tuplize_signatures(GDBusAr
 return g_variant_type_new_tuple (arg_types, n);
 }
 
+void
+purple_object_emit_dbus_signal(PurpleObject *pobj, const gchar *interface_name,
+                               const gchar *signal_name, ...)
+{
+va_list ap;
+GDBusInterfaceInfo *iface;
+GDBusSignalInfo *signal_info;
+GDBusConnection *connection;
+GVariantType *type;
+GVariant *signal_params;
+GError *error = NULL;
+char *object_path, *sig;
+gboolean ok;
+
+/* Not having a connection yet can happen during an asynchronous
+ * purple initialization. */
+connection = purple_gdbus_get_connection();
+if (!connection)
+return;
+
+object_path = purple_object_get_dbus_path(pobj);
+g_return_if_fail(object_path != NULL);
+
+iface = find_interface_info_by_name(pobj, interface_name);
+g_return_if_fail(iface != NULL);
+signal_info = g_dbus_interface_info_lookup_signal(iface, signal_name);
+g_return_if_fail(signal_info != NULL);
+
+type = purple_object_tuplize_signatures(signal_info-&amp;gt;args);
+sig = g_variant_type_dup_string(type);
+va_start(ap, signal_name);
+signal_params = g_variant_new_va(sig, NULL, &amp;amp;ap);
+va_end(ap);
+g_free(sig);
+g_free(type);
+
+ok = g_dbus_connection_emit_signal(connection, NULL,
+                                   object_path, interface_name,
+                                   signal_name, signal_params, &amp;amp;error);
+
+if (!ok) {
+purple_debug_error("dbus", "Error while sending signal %s.%s: %s\n",
+                   iface-&amp;gt;name, signal_name, error-&amp;gt;message);
+g_error_free(error);
+}
+}
+
 GVariant *
 purple_object_dbus_call(PurpleObject *pobj, const char *interface_name,
                         const char *method_name, ...)
============================================================
--- libpurple/pobject.h68eb0bab3da932bb270118bc2458eb0090937330
+++ libpurple/pobject.h6d9662eac30d696f9058925e13f7d3c4381e7f9f
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -428,19 +428,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void purple_object_dbus_init(gpointer ob
                              gboolean propagate_props_changes);
 
 /**
- * A convenience function that emits signal_name D-Bus signal on pobj
- * with signal_params parameters. Only the daemon may emit D-Bus signals.
+ * Emits signal_name D-Bus signal on interface interface_name with variable
+ * parameters. Only the daemon may emit D-Bus signals. The parameters must
+ * match the signature of the signal defined in the XML file.
  *
  * &amp;lt; at &amp;gt;param pobj The PurpleObject from which the signal must be emitted.
  * &amp;lt; at &amp;gt;param interface_name The name of the interface.
  * &amp;lt; at &amp;gt;param signal_name The name of the signal.
- * &amp;lt; at &amp;gt;param signal_params The parameters of the signal (may be NULL).
- *        Multiple parameters must be packed in a GVarianttuple, in the
- *        order they are presented in the D-Bus introspection XML files.
- * &amp;lt; at &amp;gt;param error A GError directly passed to g_dbus_connection_emit_signal().
- * &amp;lt; at &amp;gt;return TRUE If the signal has been sent, FALSE otherwise.
+ * &amp;lt; at &amp;gt;param ... The parameters of the signal, if any.
  */
-gboolean purple_object_emit_dbus_signal(PurpleObject *pobj, const gchar *interface_name, const gchar *signal_name, GVariant *signal_params, GError **error);
+void purple_object_emit_dbus_signal(PurpleObject *pobj, const gchar *interface_name, const gchar *signal_name, ...);
 
 /**
  * Remotely calls method_name on pobj over D-Bus. Actually, it's not called
============================================================
--- libpurple/dbus/constructor.ccc724c41d602cddceb2a3cd1e347e8c623912b37
+++ libpurple/dbus/constructor.c25027943ec5e29fb50e0ed9eeb0190a18134f728
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -416,15 +416,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_constructor_announce_pobject_crea
 purple_constructor_announce_pobject_creation(PurpleObject *pobj)
 {
 PurpleConstructor *con = purple_constructor_get_instance();
-GVariant *params;
-
-params = g_variant_new("(so&amp;lt; at &amp;gt;a(sv))",
-                       G_OBJECT_TYPE_NAME(pobj),
-                       purple_object_get_dbus_path(pobj),
-                       purple_constructor_pack_pobject_props(pobj));
 purple_object_emit_dbus_signal(PURPLE_OBJECT(con),
                                purple_constructor_interface_info.name,
-                               "PurpleObjectCreated", params, NULL);
+                               "PurpleObjectCreated",
+                               G_OBJECT_TYPE_NAME(pobj),
+                               purple_object_get_dbus_path(pobj),
+                               purple_constructor_pack_pobject_props(pobj));
 }
 
 /* "PurpleObjectCreated" signal handler. */
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:47:06</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32787">
    <title>cpw.gillux.detachablepurple: 8fdb17ac: Rewritten the "Unregister"D-Bus method ...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32787</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 8fdb17ac4d4551273dd61006908e89691fcba6f7
Parent:   675c21b5c52aa592fd4a13c00ad8cbbeb7e2c3a7
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 14:59:19
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/8fdb17ac4d4551273dd61006908e89691fcba6f7

Changelog: 

Rewritten the "Unregister" D-Bus method of PurpleAccount,
according to the new gdbus-based API.

Changes against parent 675c21b5c52aa592fd4a13c00ad8cbbeb7e2c3a7

  patched  libpurple/dbus/account.c

============================================================
--- libpurple/dbus/account.c5203c8fe31d7d17209473894f47f680c9cbf7ed3
+++ libpurple/dbus/account.cb1f8bc5e75b9ed81de64575a6547590877a9ce95
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -204,10 +204,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_account_class_dbus_init(PurpleAcc
 purple_object_bind_dbus_callback
   (pobjclass, purple_account_interface_info.name,
    "Register", (GCallback)purple_account_register);
+purple_object_bind_dbus_callback
+  (pobjclass, purple_account_interface_info.name,
+   "Unregister",(GCallback)account_unregister_cb);
 /* Those are more complicated, we will handle them later.
-purple_object_bind_dbus_method(PURPLE_OBJECT_CLASS(klass),
-                               "Unregister",
-                               (GCallback)purple_account_unregister);
 purple_object_bind_dbus_method(pobjclass, "SetStatusList",
                                (GCallback)purple_account_set_status_list);
 */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -273,42 +273,45 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_account_unregister_RPC(PurpleAcco
 void
 purple_account_unregister_RPC(PurpleAccount *account, PurpleAccountUnregistrationCb cb, void *user_data)
 {
-DBusGProxy* proxy;
-GError *error = NULL;
 guint64 callback_id;
 gboolean have_cb = (cb != NULL);
 GClosure* closure;
+GVariant *ret;
 
-proxy = purple_object_get_dbus_obj_proxy(PURPLE_OBJECT(account));
-if (!im_pidgin_purple_account_unregister(proxy, have_cb, &amp;amp;callback_id, &amp;amp;error)) {
-PURPLE_RPC_FAILED(purple_account_unregister, error);
-return;
-}
-
+ret = purple_object_dbus_call(PURPLE_OBJECT(account),
+                              purple_account_interface_info.name,
+                              "Unregister", have_cb);
+if (!ret)
+return; /* Likely a connection problem. */
+
 if (have_cb) {
+g_variant_get(ret, "(t)", &amp;amp;callback_id);
 closure = g_cclosure_new(G_CALLBACK(cb), user_data, NULL);
 g_closure_set_marshal(closure, g_cclosure_marshal_VOID__BOOLEAN);
 purple_dbus_callback_register(callback_id, closure);
 }
+g_variant_unref(ret);
 }
 
-gboolean
-DBUS_purple_account_unregister(PurpleAccount *account, gboolean have_callback, guint64 *callback_id, GError** error)
+/* Server-side implementation of the "Unregister" D-Bus method. */
+static GVariant *
+account_unregister_cb(PurpleAccount *account, gboolean have_callback)
 {
 PurpleAccountUnregistrationCb cb = NULL;
 guint64 *id = NULL;
+guint64 ret = 0;
 
 if (have_callback) {
 /* Use a void(*cb)(GObject*, gboolean, void*) prototype */
 cb = (PurpleAccountUnregistrationCb)purple_dbus_callback__b;
 /* Generate a new callback id */
 id = g_new0(guint64, 1);
-*callback_id = *id = purple_dbus_callback_new_id();
+ret = *id = purple_dbus_callback_new_id();
 }
 
-/* Call the function, perhabs with a wrapper callback */
+/* Call the function, perhaps with a wrapper callback */
 purple_account_unregister(account, cb, id);
-return TRUE;
+return g_variant_new("(t)", ret);
 }
 
 void
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:47:08</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32786">
    <title>cpw.gillux.detachablepurple: 701a370e: Supplementary check againstdumb callers...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32786</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 701a370e7379a88370edda7d9740779e0b708ba5
Parent:   e2377f2713173f467e7aeab09c0760d14e8970a9
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 15:36:42
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/701a370e7379a88370edda7d9740779e0b708ba5

Changelog: 

Supplementary check against dumb callers.

Changes against parent e2377f2713173f467e7aeab09c0760d14e8970a9

  patched  libpurple/pobject.c

============================================================
--- libpurple/pobject.c07daa8fc518bfa4cf03705d97f95eb07e5f754d6
+++ libpurple/pobject.cfbe3bd060ff0db82d0a24b604ff9f9705df4b192
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1108,6 +1108,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_dbus_call(PurpleObject *po
 return NULL;
 
 iface = find_interface_info_by_name(pobj, interface_name);
+g_return_val_if_fail(iface != NULL, NULL);
 method_info = g_dbus_interface_info_lookup_method(iface, method_name);
 g_return_val_if_fail(method_info != NULL, NULL);
 
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:47:05</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32785">
    <title>cpw.gillux.detachablepurple: 675c21b5: Rewritten PurpleDBusCallback'ssignals a...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32785</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 675c21b5c52aa592fd4a13c00ad8cbbeb7e2c3a7
Parent:   4dcffaff1c53b9897b12840ad523b266a5f4a099
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 14:48:12
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/675c21b5c52aa592fd4a13c00ad8cbbeb7e2c3a7

Changelog: 

Rewritten PurpleDBusCallback's signals and methods implementations,
using the new gdbus-based API.

Changes against parent 4dcffaff1c53b9897b12840ad523b266a5f4a099

  patched  libpurple/dbus/callback.c

============================================================
--- libpurple/dbus/callback.c974bf3bc878090da6acaa6aeeca666945a65d415
+++ libpurple/dbus/callback.cae5d7c6e00062f77a1ac25a3e8066d0ba2a2f302
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -25,8 +25,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "core.h"
 #include "dbus/callback.h"
 #include "dbus/callback.xml.h"
-#include "dbus/callback-server.h"
-#include "dbus/callback-client.h"
 #include "dbus-maybe.h"
 #include "dbus-purple.h"
 #include "dbus-server.h"
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -65,8 +63,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; G_DEFINE_TYPE(PurpleDBusCallback, purple
 
 #define PURPLE_TYPE_CALLBACK                   (purple_dbus_callback_get_type())
 
-static void run_callback_cb(DBusGProxy *proxy, const guint64 callback_id, GPtrArray *params, gpointer data);
-static void request_closed_cb(DBusGProxy *proxy, const guint request_id, gpointer data);
+/* D-Bus signals and methods handlers. */
+static void run_callback_cb(PurpleDBusCallback* handler, const guint64 callback_id, GVariant *params);
+static void request_closed_cb(PurpleDBusCallback* handler, const guint request_id);
+static void run_request_cb(PurpleDBusCallback *handler, guint request_id, guint choice);
 
 void
 purple_dbus_callback_do_init(void)
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -138,9 +138,19 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_dbus_callback_class_init(PurpleDB
 pobjclass-&amp;gt;build_dbus_path = purple_callback_build_dbus_path;
 
 if (purple_core_is_daemon_mode()) {
+/* D-Bus method handlers. */
+               purple_object_bind_dbus_callback
+  (pobjclass, purple_callback_interface_info.name,
+  "RunRequest", (GCallback)run_request_cb);
+} else if (purple_core_is_remote_mode()) {
+/* D-Bus signal handlers. */
+purple_object_bind_dbus_callback
+  (pobjclass, purple_callback_interface_info.name,
+   "RunCallback", (GCallback)run_callback_cb);
+purple_object_bind_dbus_callback
+  (pobjclass, purple_callback_interface_info.name,
+   "RequestClosed", (GCallback)request_closed_cb);
 }
-else if (purple_core_is_remote_mode()) {
-}
 }
 
 static void
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -179,48 +189,37 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_dbus_callback_new_id(void)
 }
 
 /**
- * Builds a n_args sized array of GValues, giving a alternate GType,typed arg
- * list. E.g. build_args_list(2, G_TYPE_BOOLEAN, TRUE, G_TYPE_STRING, "foobar")
+ * Builds an n_args sized array of GVariants, giving an alternate
+ * "GVariant signature, typed arg" list. E.g.:
+ * build_args_list(2, "b", TRUE, "s", "foobar")
  */
-static GPtrArray*
+static GVariant*
 build_args_list(unsigned int n_args, ...)
 {
-GPtrArray *values;
-GValue *val;
+GVariantBuilder builder;
+GVariant *val;
+const gchar *type;
 va_list ap;
-gchar *err;
-int i;
 
-values = g_ptr_array_sized_new(n_args);
+g_variant_builder_init(&amp;amp;builder, G_VARIANT_TYPE("av"));
 va_start(ap, n_args);
-for (i = 0; i &amp;lt; n_args; i++) {
-val = g_new0(GValue, 1);
-#if GLIB_CHECK_VERSION(2, 24, 0)
-/* A more optimized way */
-G_VALUE_COLLECT_INIT(val, va_arg(ap, GType), ap, 0, &amp;amp;err);
-#else
-g_value_init(val, va_arg(ap, GType));
-G_VALUE_COLLECT(val, ap, 0, &amp;amp;err);
-#endif
-if (err) {
-g_warning("%s\n", err);
-g_free(err);
-}
-g_ptr_array_add(values, val);
+while (n_args--) {
+type = va_arg(ap, const gchar*);
+val = g_variant_new_va(type, NULL, &amp;amp;ap);
+g_variant_builder_add_value(&amp;amp;builder, g_variant_new("v", val));
 }
 va_end(ap);
-
-return values;
+return g_variant_builder_end(&amp;amp;builder);
 }
 
 void
 purple_dbus_callback__b(void *obj, gboolean arg1, guint64 *id)
 {
 PurpleDBusCallback* handler = purple_dbus_callback_get_instance();
-GPtrArray* params = build_args_list(1, G_TYPE_BOOLEAN, arg1);
-g_signal_emit(handler, signals[SIG_DBUS_RUN_CALLBACK], 0, *id, params);
-g_ptr_array_foreach(params, (GFunc)g_value_unset, NULL);
-g_ptr_array_free(params, TRUE);
+GVariant* params = build_args_list(1, "b", arg1);
+purple_object_emit_dbus_signal(PURPLE_OBJECT(handler),
+                               purple_callback_interface_info.name,
+                               "RunCallback", *id, params);
 g_free(id);
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -228,13 +227,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void
  * Callback, called when we receive a dbus "RunCallback" signal.
  */
 static void
-run_callback_cb(DBusGProxy *proxy, const guint64 callback_id, GPtrArray *params, gpointer data)
+run_callback_cb(PurpleDBusCallback* handler,
+                const guint64 callback_id, GVariant *params)
 {
-PurpleDBusCallback* handler = purple_dbus_callback_get_instance();
 GClosure *closure;
-GObject *obj;
 GValue *values;
-int i;
+guint i, num_params;
 
 g_return_if_fail(handler != NULL);
 g_return_if_fail(handler-&amp;gt;callbacks != NULL);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -245,21 +243,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; run_callback_cb(DBusGProxy *proxy, const
 if (!closure)
 return;
 
-obj = purple_dbus_get_gobject_by_path(dbus_g_proxy_get_path(proxy));
-g_return_if_fail(obj != NULL);
-
 purple_debug_info("dbus", "Running callback %llu\n", callback_id);
 
-/* Build the GValue array for the closure */
-values = g_new0(GValue, params-&amp;gt;len+1);
-/* First parameter is the object */
-g_value_init(&amp;amp;values[0], G_TYPE_OBJECT);
-g_value_set_object(&amp;amp;values[0], obj);
-/* Then the received parameters */
-for (i = 0; i &amp;lt; params-&amp;gt;len; i++)
-memcpy(&amp;amp;values[i+1], params-&amp;gt;pdata[i], sizeof(GValue));
-g_closure_invoke(closure, NULL, params-&amp;gt;len+1, values, NULL);
+purple_gvariant_to_gvalue_closure_args(handler, params,
+                                       &amp;amp;values, &amp;amp;num_params);
+g_closure_invoke(closure, NULL, num_params, values, NULL);
 
+for (i = 0; i &amp;lt; num_params; i++)
+g_value_unset (&amp;amp;values[i]);
 g_free(values);
 /* The following frees the closure and the id */
 g_hash_table_remove(handler-&amp;gt;callbacks, &amp;amp;callback_id);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -269,7 +260,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void
  * Callback, called when we receive a dbus "RequestClosed" signal.
  */
 static void
-request_closed_cb(DBusGProxy *proxy, const guint request_id, gpointer data)
+request_closed_cb(PurpleDBusCallback* handler, const guint request_id)
 {
 /* Forget about this pending request, execute the closing callback */
 purple_callback_close_client_req(request_id);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -353,19 +344,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_callback_run_request_RPC(guint re
 purple_callback_run_request_RPC(guint request_id, guint choice)
 {
 PurpleDBusCallback* handler = purple_dbus_callback_get_instance();
-DBusGProxy* proxy;
-GError *error = NULL;
 
-proxy = purple_object_get_dbus_obj_proxy(PURPLE_OBJECT(handler));
-if (!im_pidgin_purple_callback_run_request(proxy, request_id, choice,
-                                           &amp;amp;error))
-PURPLE_RPC_FAILED(purple_account_run_request, error);
+purple_object_dbus_call(PURPLE_OBJECT(handler),
+                        purple_callback_interface_info.name,
+                        "RunRequest", request_id, choice);
 }
 
-gboolean
-purple_callback_run_request(guint request_id, guint choice)
+static void
+run_request_cb(PurpleDBusCallback *handler, guint request_id, guint choice)
 {
-PurpleDBusCallback* handler = purple_dbus_callback_get_instance();
 GPtrArray *closures;
 GClosure *closure;
 void *key = GINT_TO_POINTER(request_id);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -376,8 +363,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_callback_run_request(guint reques
  * client already ran a RunRequest faster than the one who presently
  * sent us this RunRequest. */
 if (!closures)
-return TRUE;
-g_return_val_if_fail(choice &amp;lt; closures-&amp;gt;len, FALSE);
+return;
+g_return_if_fail(choice &amp;lt; closures-&amp;gt;len);
 closure = closures-&amp;gt;pdata[choice];
 
 /* Run it! */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -396,7 +383,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_callback_run_request(guint reques
 
 /* Forget about this pending request, it has been handled */
 g_hash_table_remove(handler-&amp;gt;requests, key);
-return TRUE;
 }
 
 void
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:47:04</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32784">
    <title>cpw.gillux.detachablepurple: 4dcffaff: Initial update ofPurpleDBusCallback tow...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32784</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 4dcffaff1c53b9897b12840ad523b266a5f4a099
Parent:   1945499a5666a886a2b049a0260de03406f2c68d
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 14:42:32
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/4dcffaff1c53b9897b12840ad523b266a5f4a099

Changelog: 

Initial update of PurpleDBusCallback towards gdbus-based API: gobject part.

Changes against parent 1945499a5666a886a2b049a0260de03406f2c68d

  patched  libpurple/dbus/callback.c
  patched  libpurple/dbus/callback.h

============================================================
--- libpurple/dbus/callback.c82a73884b9599f7efa395322422e4f4f9d73b138
+++ libpurple/dbus/callback.c974bf3bc878090da6acaa6aeeca666945a65d415
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -24,6 +24,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "internal.h"
 #include "core.h"
 #include "dbus/callback.h"
+#include "dbus/callback.xml.h"
 #include "dbus/callback-server.h"
 #include "dbus/callback-client.h"
 #include "dbus-maybe.h"
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -62,16 +63,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; G_DEFINE_TYPE(PurpleDBusCallback, purple
 
 G_DEFINE_TYPE(PurpleDBusCallback, purple_dbus_callback, PURPLE_TYPE_OBJECT)
 
-/* Our signals */
-enum
-{
-SIG_DBUS_RUN_CALLBACK,
-SIG_DBUS_REQUEST_CLOSED,
-SIG_LAST
-};
+#define PURPLE_TYPE_CALLBACK                   (purple_dbus_callback_get_type())
 
-static guint signals[SIG_LAST] = {0, };
-
 static void run_callback_cb(DBusGProxy *proxy, const guint64 callback_id, GPtrArray *params, gpointer data);
 static void request_closed_cb(DBusGProxy *proxy, const guint request_id, gpointer data);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -95,7 +88,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_dbus_callback_get_instance(void)
 PurpleDBusCallback*
 purple_dbus_callback_get_instance(void)
 {
-DBusGProxy* proxy;
 PurpleDBusCallbackClass *klass;
 PurpleDBusCallback *instance;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -104,28 +96,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_dbus_callback_get_instance(void)
 instance = g_object_new(PURPLE_TYPE_DBUS_CALLBACK, NULL);
 klass = g_type_class_peek(PURPLE_TYPE_DBUS_CALLBACK);
 klass-&amp;gt;instance = instance;
-
-/* Register this object on DBus */
-purple_object_install_dbus_infos(PURPLE_OBJECT(klass-&amp;gt;instance),
-                                 DBUS_CALLBACK_INTERFACE,
-                                 DBUS_CALLBACK_PATH);
-
-/* In remote mode, get informed from its signals */
-if (purple_core_is_remote_mode()) {
-proxy = purple_object_get_dbus_obj_proxy(PURPLE_OBJECT(klass-&amp;gt;instance));
-dbus_g_proxy_add_signal(proxy, "RunCallback", 
-                        G_TYPE_UINT64,
-                        DBUS_GVALUE_ARRAY,
-                        G_TYPE_INVALID);
-dbus_g_proxy_connect_signal(proxy, "RunCallback",
-                            G_CALLBACK(run_callback_cb),
-                            klass-&amp;gt;instance, NULL);
-dbus_g_proxy_add_signal(proxy, "RequestClosed", 
-                        G_TYPE_UINT, G_TYPE_INVALID);
-dbus_g_proxy_connect_signal(proxy, "RequestClosed",
-                        G_CALLBACK(request_closed_cb),
-                        klass-&amp;gt;instance, NULL);
-}
 }
 
 return klass-&amp;gt;instance;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -146,45 +116,30 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_dbus_callback_finalize(GObject *s
 G_OBJECT_CLASS(purple_dbus_callback_parent_class)-&amp;gt;finalize(self);
 }
 
+static char*
+purple_callback_build_dbus_path(PurpleObject *object)
+{
+return g_strdup(DBUS_CALLBACK_PATH);
+}
+
 static void
 purple_dbus_callback_class_init(PurpleDBusCallbackClass *klass)
 {
 GObjectClass *gobject_class = G_OBJECT_CLASS(klass);
+PurpleObjectClass *pobjclass = PURPLE_OBJECT_CLASS(klass);
 
 gobject_class-&amp;gt;finalize     = purple_dbus_callback_finalize;
 klass-&amp;gt;instance = NULL;
 
-if (purple_core_is_daemon_mode()) {
-/* dbus_glib_DBUS_purple_callback_object_info is defined in
- * dbus-callback-server.h, which is autogenerated. */
-purple_object_type_install_dbus_infos(PURPLE_TYPE_DBUS_CALLBACK,
-                  &amp;amp;dbus_glib_DBUS_purple_callback_object_info);
+/* Register our interface. */
+purple_object_class_register_dbus_iface
+ (pobjclass, PURPLE_TYPE_CALLBACK, &amp;amp;purple_callback_interface_info);
+/* Both client and daemon can build this well-known name. */
+pobjclass-&amp;gt;build_dbus_path = purple_callback_build_dbus_path;
 
-/* Register the signals */
-signals[SIG_DBUS_RUN_CALLBACK] =
-g_signal_new("run_callback",
- G_OBJECT_CLASS_TYPE(klass),
- G_SIGNAL_RUN_LAST, 0, NULL, NULL,
- purple_smarshal_VOID__UINT64_BOXED,
- G_TYPE_NONE, 2, G_TYPE_UINT64, DBUS_GVALUE_ARRAY);
-signals[SIG_DBUS_REQUEST_CLOSED] =
-g_signal_new("request_closed",
- G_OBJECT_CLASS_TYPE(klass),
- G_SIGNAL_RUN_LAST, 0, NULL, NULL,
- g_cclosure_marshal_VOID__UINT,
- G_TYPE_NONE, 1, G_TYPE_UINT);
+if (purple_core_is_daemon_mode()) {
 }
-/* In remote mode we need to register the marshallers
- * we will use to receive the signals sent by the daemon */
 else if (purple_core_is_remote_mode()) {
-/* Marshaller for the RunCallback dbus signal */
-dbus_g_object_register_marshaller(
-purple_smarshal_VOID__UINT64_BOXED,
-G_TYPE_NONE,  G_TYPE_UINT64, G_TYPE_BOXED,
-G_TYPE_INVALID);
-/* The marshaller for the RequestClosed signal doesn't need to
- * be registered, because it's one of glib marshallers and
- * dbus-glib use it. */
 }
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -211,6 +166,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_dbus_callback_init(PurpleDBusCall
 self-&amp;gt;client_reqs = g_hash_table_new_full(g_direct_hash,
                             g_direct_equal, NULL,
                             (GDestroyNotify)free_pending_req);
+
+/* Publish/listen for the object on the bus. */
+purple_dbus_connect_object(self);
 }
 
 guint64
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -405,12 +363,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gboolean
 }
 
 gboolean
-DBUS_purple_callback_run_request(PurpleDBusCallback *handler, guint request_id, guint choice, GError** error)
-{
-return purple_callback_run_request(request_id, choice);
-}
-
-gboolean
 purple_callback_run_request(guint request_id, guint choice)
 {
 PurpleDBusCallback* handler = purple_dbus_callback_get_instance();
============================================================
--- libpurple/dbus/callback.hc1729e822bb045c2296961f5c9e7aceb13c2f7ce
+++ libpurple/dbus/callback.hf1d91fe1db306502deb42a55b37e83ddd2ac3e95
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -57,10 +57,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct {
 PurpleDBusCallback *instance;
 } PurpleDBusCallbackClass;
 
-/* DBus transfered data formats */
-#define DBUS_GVALUE_ARRAY \
-dbus_g_type_get_collection("GPtrArray",G_TYPE_VALUE)
-
 G_BEGIN_DECLS
 
 /**
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -146,11 +142,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void purple_callback_run_request_RPC(gui
 void purple_callback_run_request_RPC(guint request_id, guint choice);
 
 /**
- * Daemon side purple_callback_run_request() wrapper.
- */
-gboolean DBUS_purple_callback_run_request(PurpleDBusCallback *handler, guint request_id, guint choice, GError** error);
-
-/**
  * Closes a pending client request, executing its closing closure provided
  * in purple_callback_register_req_id().
  *
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:46:56</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32783">
    <title>cpw.gillux.detachablepurple: 487b38f6: Rewritten the RequestClosedsignal loop ...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32783</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 487b38f61bd9dcd0bfc19e9b64eca81f76a327ea
Parent:   33d90c0682a2b9eed811d7ea05923d8fa7f029e2
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 15:28:07
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/487b38f61bd9dcd0bfc19e9b64eca81f76a327ea

Changelog: 

Rewritten the RequestClosed signal loop prevention system.
Before we used the mirror mode trick but as we want to get
rid of this hack, here is another solution.

Changes against parent 33d90c0682a2b9eed811d7ea05923d8fa7f029e2

  patched  libpurple/account.c
  patched  libpurple/dbus/account.c
  patched  libpurple/dbus/callback.c

============================================================
--- libpurple/account.c02584aa90dda4e19a93526ff8e745b31946f94c4
+++ libpurple/account.ca57ad6c857eee8bb67e5b59ba5939e04c621c7a1
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1091,8 +1091,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_account_request_close_info(Purple
 request_id = purple_callback_get_req_id(info-&amp;gt;ui_handle);
 if (request_id)
 purple_callback_run_request_RPC(request_id, 0);
-else
-purple_debug_error("dbus", "Couldn't inform the daemon about the closing of an account request from which the request id is unknown\n");
 }
 
 purple_account_request_info_unref(info);
============================================================
--- libpurple/dbus/account.c082c90678016ed701210660e4c0bc9bb6d509604
+++ libpurple/dbus/account.cdcf932ca61be7a5916531b52b0fba93d1e3ba2b9
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -62,24 +62,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; request_remote_client_deny_cb(void *user
 }
 
 /**
- * A wrapper for purple_account_request_close() used in request_authorize_cb().
- * We need to run this function not in remote mode, otherwise it also runs
- * the dbus method RunRequest(request_id, 0) to inform the daemon we closed
- * this request. It's a non-sense since this we are calling
- * purple_account_request_close() because we received a RequestClosed dbus
- * signal, which means the request is already handled.
- */
-static void
-purple_account_local_request_close(void *ui_handle)
-{
-PurpleRunningMode mode;
-mode = purple_core_get_running_mode();
-purple_core_set_running_mode(PURPLE_RUN_MIRROR_MODE);
-purple_account_request_close(ui_handle);
-purple_core_set_running_mode(mode);
-}
-
-/**
  * Callback, called when we receive a dbus "RequestAuthorize" signal.
  */
 static void
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -107,7 +89,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; request_authorize_cb(PurpleAccount* acco
          * (with the RequestClosed dbus signal), then it will be
          * automatically and properly closed */
         close_req = g_cclosure_new(
-                        G_CALLBACK(purple_account_local_request_close),
+                        G_CALLBACK(purple_account_request_close),
                         h, NULL);
         g_closure_set_marshal(close_req, purple_nullmarshaller);
         purple_callback_register_req_id(request_id, close_req, h);
============================================================
--- libpurple/dbus/callback.cae5d7c6e00062f77a1ac25a3e8066d0ba2a2f302
+++ libpurple/dbus/callback.c8ed8383726cfc5cdab93308448357391a77418fc
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -391,6 +391,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_callback_close_client_req(guint r
 PurpleDBusCallback* handler = purple_dbus_callback_get_instance();
 PurpleDBusClientPendingRequest *req;
 void *key = GINT_TO_POINTER(request_id);
+GClosure *close;
 
 g_return_if_fail(handler != NULL);
 g_return_if_fail(handler-&amp;gt;client_reqs != NULL);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -400,10 +401,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_callback_close_client_req(guint r
 if (!req)
 return;
 
-g_closure_invoke(req-&amp;gt;close, NULL, 0, NULL, NULL);
-
-/* Forget about this closed pending request */
+/* We want to run the local closing request function while not
+ * triggering a "RunRequest" D-Bus signal. So we first drop the request
+ * so that it will not be able to run it again. Yet, we still need the
+ * closing callback so we ref it before dropping the request. */
+close = req-&amp;gt;close;
+g_closure_ref(close);
 g_hash_table_remove(handler-&amp;gt;client_reqs, key);
+g_closure_invoke(close, NULL, 0, NULL, NULL);
+g_closure_unref(close);
 }
 
 /**
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:46:53</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32782">
    <title>cpw.gillux.detachablepurple: 33d90c06: PurpleAccount: cleaned up theremainings...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32782</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 33d90c0682a2b9eed811d7ea05923d8fa7f029e2
Parent:   0ee4010839ed5289ead6ede5e484f9ec54ca92a9
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 15:11:04
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/33d90c0682a2b9eed811d7ea05923d8fa7f029e2

Changelog: 

PurpleAccount: cleaned up the remainings of the dbus-glib code.
The "NotifyAdded" and "RequestAdd" D-Bus signals do not need
wrapper functions anymore, so they are ready.

Changes against parent 0ee4010839ed5289ead6ede5e484f9ec54ca92a9

  patched  libpurple/dbus/account.c
  patched  libpurple/dbus/account.xml

============================================================
--- libpurple/dbus/account.c6c3132a77592246d6a220f2eda38c70b3102eaf5
+++ libpurple/dbus/account.c082c90678016ed701210660e4c0bc9bb6d509604
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -22,11 +22,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "internal.h"
 #include "account.h"
 #include "dbus/account.h"
-#include "dbus/account-client.h"
-#include "dbus/account-server.h"
 #include "dbus/callback.h"
 #include "dbus/constructor.h"
-#include "dbus/constructor-client.h"
 #include "dbus-maybe.h"
 #include "marshallers.h"
 #include "nullmarshaller.h"
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -35,31 +32,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;gio/gio.h&amp;gt;
 #include "account.xml.h"
 
-/**
- * Callback, called when we receive a dbus "NotifyAdded" signal.
- */
-static void
-notify_added_cb(DBusGProxy *proxy, const char *remote_user, const char *id,
-                const char *alias, const char *message, gpointer data)
-{
-        PurpleAccount* account = PURPLE_ACCOUNT(
-                purple_dbus_get_gobject_by_path(dbus_g_proxy_get_path(proxy)));
-        purple_account_notify_added(account, remote_user, id, alias, message);
-}
+/* D-Bus methods and callbacks implementations. */
+static GVariant *account_unregister_cb(PurpleAccount *account, gboolean have_callback);
 
 /**
- * Callback, called when we receive a dbus "RequestAdd" signal.
- */
-static void
-request_add_cb(DBusGProxy *proxy, const char *remote_user, const char *id,
-               const char *alias, const char *message, gpointer data)
-{
-        PurpleAccount* account = PURPLE_ACCOUNT(
-                purple_dbus_get_gobject_by_path(dbus_g_proxy_get_path(proxy)));
-        purple_account_request_add(account, remote_user, id, alias, message);
-}
-
-/**
  * Callback called on the client when the user accepted an auth request.
  * It runs the RunRequest method on the daemon, with the original request id,
  * and the request choice number 1 (authorized).
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -207,32 +183,16 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_account_class_dbus_init(PurpleAcc
 purple_object_bind_dbus_method(pobjclass, "SetStatusList",
                                (GCallback)purple_account_set_status_list);
 */
-
-g_signal_new("notify_added",
-             PURPLE_TYPE_ACCOUNT,
-             G_SIGNAL_RUN_LAST,
-             0, NULL, NULL,
-             purple_smarshal_VOID__STRING_STRING_STRING_STRING,
-             G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING,
-             G_TYPE_STRING, G_TYPE_STRING);
-g_signal_new("request_add",
-             PURPLE_TYPE_ACCOUNT,
-             G_SIGNAL_RUN_LAST,
-             0, NULL, NULL,
-             purple_smarshal_VOID__STRING_STRING_STRING_STRING,
-             G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING,
-             G_TYPE_STRING, G_TYPE_STRING);
 }
-/* In remote mode we need to register the marshallers
- * we will use to receive the signals sent by the daemon */
 else if (purple_core_is_remote_mode()) {
-/* Marshaller for the NotifyAdded and RequestAdd dbus signals */
-dbus_g_object_register_marshaller(
-purple_smarshal_VOID__STRING_STRING_STRING_STRING,
-G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING,
-G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
 purple_object_bind_dbus_callback
   (pobjclass, purple_account_interface_info.name,
+   "NotifyAdded", (GCallback)purple_account_notify_added);
+purple_object_bind_dbus_callback
+  (pobjclass, purple_account_interface_info.name,
+   "RequestAdd", (GCallback)purple_account_request_add);
+purple_object_bind_dbus_callback
+  (pobjclass, purple_account_interface_info.name,
    "RequestAuthorize", (GCallback)request_authorize_cb);
 }
 }
============================================================
--- libpurple/dbus/account.xmla9f17460767705da3631627f133b63b56b51cff2
+++ libpurple/dbus/account.xmlefa2d1002d08caee546b98c262a84ffa73daf991
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -24,10 +24,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 &amp;lt;arg type="av" name="attributes" direction="in" /&amp;gt;
 &amp;lt;/method&amp;gt;
 
-&amp;lt;signal name="DBusNotify"&amp;gt;
-&amp;lt;arg type="s" name="property-name" /&amp;gt;
-&amp;lt;arg type="v" name="property-value" /&amp;gt;
-&amp;lt;/signal&amp;gt;
 &amp;lt;signal name="NotifyAdded"&amp;gt;
 &amp;lt;arg type="s" name="remote_user" /&amp;gt;
 &amp;lt;arg type="s" name="id" /&amp;gt;
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:46:51</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32781">
    <title>cpw.gillux.detachablepurple: 3afce50b: Makefile directive forpobject.xml.h gen...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32781</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 3afce50b2cca69538ee5ece57dfc33b4c538e36c
Parent:   139bdde60c2b48c4fcd34fbb292af055037c7d31
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 14:00:18
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/3afce50b2cca69538ee5ece57dfc33b4c538e36c

Changelog: 

Makefile directive for pobject.xml.h generation.

Changes against parent 139bdde60c2b48c4fcd34fbb292af055037c7d31

  patched  libpurple/Makefile.am

============================================================
--- libpurple/Makefile.am12c3d7eba4b2cd1c5554333a99b84a90c214435d
+++ libpurple/Makefile.amc5287827f68efa93481c42966bee8b1455150f10
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -296,6 +296,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dbus/group.xml.h: dbus/group.xml
 dbus/group.xml.h: dbus/group.xml
 $(AM_V_GEN)dbus/dbusxml-to-c.py $&amp;lt; purple_group $&amp;lt; at &amp;gt;
 
+dbus/pobject.xml.h: dbus/pobject.xml
+$(AM_V_GEN)dbus/dbusxml-to-c.py $&amp;lt; purple_object $&amp;lt; at &amp;gt;
+
 CLEANFILES = \
 dbus-bindings.c \
 dbus-client-binding.c \
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:46:52</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32780">
    <title>cpw.gillux.detachablepurple: 42a3b4be: s/(const GVariantType*)/G_VARIANT_TYPE/</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32780</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 42a3b4be168a51f122a91d663050807a722afc38
Parent:   487b38f61bd9dcd0bfc19e9b64eca81f76a327ea
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 15:30:01
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/42a3b4be168a51f122a91d663050807a722afc38

Changelog: 

s/(const GVariantType *)/G_VARIANT_TYPE/ Let's follow glib's way.

Changes against parent 487b38f61bd9dcd0bfc19e9b64eca81f76a327ea

  patched  libpurple/dbus/blist.c
  patched  libpurple/dbus/constructor.c

============================================================
--- libpurple/dbus/constructor.c8fd4f72f72f3176239e9a3bc16ae5e5d47dd8d88
+++ libpurple/dbus/constructor.c19c8314099055637092ab419a6d95cd334d05d2a
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -381,7 +381,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_constructor_get_all_accounts(void
 GList *all = purple_accounts_all();;
 
 /* Pack every account into an array of accounts. */
-g_variant_builder_init(&amp;amp;builder, (const GVariantType *) "a(oa(sv))");
+g_variant_builder_init(&amp;amp;builder, G_VARIANT_TYPE("a(oa(sv))"));
 while (all) {
 PurpleAccount *account = all-&amp;gt;data;
 g_variant_builder_add_value
============================================================
--- libpurple/dbus/blist.c6176cc9fe81b5dc805f584063830973f792c87e2
+++ libpurple/dbus/blist.cc623a9ad02c1d0bb50666a2d98ebed5105b0a915
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -116,10 +116,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_blist_get_buddy_list(PurpleBlist 
 PurpleBlistNode *root = purple_blist_get_root();
 const gchar *root_path = NULL;
 
-g_variant_builder_init(&amp;amp;groups,   (const GVariantType *) "a(oa(sv))");
-g_variant_builder_init(&amp;amp;contacts, (const GVariantType *) "a(oa(sv))");
-g_variant_builder_init(&amp;amp;buddies,  (const GVariantType *) "a(oa(sv))");
-g_variant_builder_init(&amp;amp;chats,    (const GVariantType *) "a(oa(sv))");
+g_variant_builder_init(&amp;amp;groups,   G_VARIANT_TYPE("a(oa(sv))"));
+g_variant_builder_init(&amp;amp;contacts, G_VARIANT_TYPE("a(oa(sv))"));
+g_variant_builder_init(&amp;amp;buddies,  G_VARIANT_TYPE("a(oa(sv))"));
+g_variant_builder_init(&amp;amp;chats,    G_VARIANT_TYPE("a(oa(sv))"));
 
 pack_node(purple_blist_get_root(),
           &amp;amp;groups, &amp;amp;contacts, &amp;amp;buddies, &amp;amp;chats);
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:46:53</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32779">
    <title>cpw.gillux.detachablepurple: 1945499a:purple_gvariant_to_gvalue_closure_args()...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32779</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 1945499a5666a886a2b049a0260de03406f2c68d
Parent:   916b38c70b2aa2f73c3d627dd51b1f31cb69d4fb
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 14:22:18
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/1945499a5666a886a2b049a0260de03406f2c68d

Changelog: 

purple_gvariant_to_gvalue_closure_args() now accepts
either an array of GVariant or a tuple.
Will be useful for PurpleDBusCallback's RunCallback signal.

Changes against parent 916b38c70b2aa2f73c3d627dd51b1f31cb69d4fb

  patched  libpurple/util.c
  patched  libpurple/util.h

============================================================
--- libpurple/util.cc9c7350b30a026305b8dca1a284bc9009cce679b
+++ libpurple/util.cff0de7a3897221078bf611bb3f9715a6a44fb8df
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5271,7 +5271,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_gvariant_to_gvalue_closure_args(g
 purple_gvariant_to_gvalue_closure_args(gpointer object, GVariant *params,
                                        GValue **paramv, guint *num_params)
 {
-GVariant *next;
+GVariant *next, *boxed;
 GVariantIter iter;
 GValue *gval;
 guint i;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5285,9 +5285,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_gvariant_to_gvalue_closure_args(g
 /* Then the others, if any. */
 i = 1;
 g_variant_iter_init (&amp;amp;iter, params);
-while ((next = g_variant_iter_next_value(&amp;amp;iter)) != NULL) {
-g_dbus_gvariant_to_gvalue(next, &amp;amp;gval[i++]);
-g_variant_unref(next);
+if (g_variant_is_of_type(params, G_VARIANT_TYPE_ARRAY)) {
+while ((next = g_variant_iter_next_value(&amp;amp;iter)) != NULL) {
+boxed = g_variant_get_variant(next);
+g_dbus_gvariant_to_gvalue(boxed, &amp;amp;gval[i++]);
+g_variant_unref(boxed);
+g_variant_unref(next);
+}
+} else if (g_variant_is_of_type(params, G_VARIANT_TYPE_TUPLE)) {
+while ((next = g_variant_iter_next_value(&amp;amp;iter)) != NULL) {
+g_dbus_gvariant_to_gvalue(next, &amp;amp;gval[i++]);
+g_variant_unref(next);
+}
 }
 }
 
============================================================
--- libpurple/util.h256dca350296c9bc185478bfc6e5194c1b3e092f
+++ libpurple/util.hd8c527202b831c2b912a33bbff6663139a2cb09f
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1531,7 +1531,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gchar *purple_http_digest_calculate_resp
  * object prepended. Useful to prepare parameters for a g_closure_invoke().
  *
  * &amp;lt; at &amp;gt;param object The object instance prepended to the parameters.
- * &amp;lt; at &amp;gt;param params The parameters in a GVariant array.
+ * &amp;lt; at &amp;gt;param params The parameters in a GVariant. Either a tuple, or an array of
+ *               GVariants.
  * &amp;lt; at &amp;gt;param paramv A pointer to an array of GValues that will be created. It
  *               must be freed with something like:
  *               for (i = 0; i &amp;lt; num_params; i++)
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:46:50</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32778">
    <title>cpw.gillux.detachablepurple: 139bdde6: Moved thepurple_gvariant_to_gvalue_clos...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32778</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 139bdde60c2b48c4fcd34fbb292af055037c7d31
Parent:   fad7a50592f4e344ee6ce2e893437a3ca336f75e
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 13:59:44
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/139bdde60c2b48c4fcd34fbb292af055037c7d31

Changelog: 

Moved the purple_gvariant_to_gvalue_closure_args() function to util.c,
so that it will be available for the D-Bus user-provided callbacks part.

Changes against parent fad7a50592f4e344ee6ce2e893437a3ca336f75e

  patched  libpurple/pobject.c
  patched  libpurple/util.c
  patched  libpurple/util.h

============================================================
--- libpurple/util.c251cf6ffea4244225c552414b576e631f0a75fd8
+++ libpurple/util.cc9c7350b30a026305b8dca1a284bc9009cce679b
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -36,6 +36,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "prefs.h"
 #include "util.h"
 
+#include "glib-2.30.h"
+
 struct _PurpleUtilFetchUrlData
 {
 PurpleUtilFetchUrlCallback callback;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -5264,3 +5266,28 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_uuid_random(void)
 b,
 (tmp &amp;gt;&amp;gt; 16) &amp;amp; 0xFFFF, g_random_int());
 }
+
+void
+purple_gvariant_to_gvalue_closure_args(gpointer object, GVariant *params,
+                                       GValue **paramv, guint *num_params)
+{
+GVariant *next;
+GVariantIter iter;
+GValue *gval;
+guint i;
+
+*num_params = g_variant_n_children(params) + 1;
+*paramv = gval = g_new0(GValue, *num_params);
+
+/* Put the right parameters in paramv. First, the object. */
+g_value_init (&amp;amp;gval[0], G_TYPE_FROM_INSTANCE(object));
+g_value_set_object (&amp;amp;gval[0], object);
+/* Then the others, if any. */
+i = 1;
+g_variant_iter_init (&amp;amp;iter, params);
+while ((next = g_variant_iter_next_value(&amp;amp;iter)) != NULL) {
+g_dbus_gvariant_to_gvalue(next, &amp;amp;gval[i++]);
+g_variant_unref(next);
+}
+}
+
============================================================
--- libpurple/util.h9a9824b25fe3a2ffab1251bc4cc8c12af0ca01d2
+++ libpurple/util.h256dca350296c9bc185478bfc6e5194c1b3e092f
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1526,6 +1526,24 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; gchar *purple_http_digest_calculate_resp
 const gchar *nonce_count, const gchar *client_nonce,
 const gchar *session_key);
 
+/*
+ * Converts a set of GVariant parameters into a GValue array with the
+ * object prepended. Useful to prepare parameters for a g_closure_invoke().
+ *
+ * &amp;lt; at &amp;gt;param object The object instance prepended to the parameters.
+ * &amp;lt; at &amp;gt;param params The parameters in a GVariant array.
+ * &amp;lt; at &amp;gt;param paramv A pointer to an array of GValues that will be created. It
+ *               must be freed with something like:
+ *               for (i = 0; i &amp;lt; num_params; i++)
+ *                 g_value_unset (&amp;amp;paramv[i]);
+ *               g_free (paramv);
+ * &amp;lt; at &amp;gt;param num_params A pointer to a value filled with the size of the
+ *                   newly-created paramv array.
+ *
+ */
+void
+purple_gvariant_to_gvalue_closure_args(gpointer object, GVariant *params,
+                                       GValue **paramv, guint *num_params);
 
 /** &amp;lt; at &amp;gt;name Slice-allocated GValue helpers */
 /** &amp;lt; at &amp;gt;{ */
============================================================
--- libpurple/pobject.ca0b11ecbff30c88c389fbfd8856493e4576d6259
+++ libpurple/pobject.c7da1132f15d4ccee75c7b011d38898859b54205a
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -751,34 +751,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_get_dbus_closure(PurpleObj
 return ret;
 }
 
-/*
- * Converts a GVariant tuple params into a GValue array with object prepended.
- * Returns a newly allocated array in paramv, and its size in num_params.
- */
-static void
-gvariant_to_gvalue_closure_args(gpointer object, GVariant *params,
-                                GValue **paramv, guint *num_params)
-{
-GVariant *next;
-GVariantIter iter;
-GValue *gval;
-guint i;
-
-*num_params = g_variant_n_children(params) + 1;
-*paramv = gval = g_new0(GValue, *num_params);
-
-/* Put the right parameters in paramv. First, the object. */
-g_value_init (&amp;amp;gval[0], G_TYPE_FROM_INSTANCE(object));
-g_value_set_object (&amp;amp;gval[0], object);
-/* Then the others, if any. */
-i = 1;
-g_variant_iter_init (&amp;amp;iter, params);
-while ((next = g_variant_iter_next_value(&amp;amp;iter)) != NULL) {
-g_dbus_gvariant_to_gvalue(next, &amp;amp;gval[i++]);
-g_variant_unref(next);
-}
-}
-
 void
 purple_object_generic_dbus_method_handler(GDBusConnection       *connection,
                                           const gchar           *sender,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -804,7 +776,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_generic_dbus_method_handle
          method_name, interface_name);
 
 /* Prepare the closure parameters. */
-gvariant_to_gvalue_closure_args(object, params, &amp;amp;paramv, &amp;amp;num_params);
+purple_gvariant_to_gvalue_closure_args(object, params,
+                                       &amp;amp;paramv, &amp;amp;num_params);
+
 /* We don't want to force such a recent version, so keep a shitty workaround. */
 #if GLIB_CHECK_VERSION(2, 32, 1)
 g_value_init(&amp;amp;ret_val, G_TYPE_VARIANT);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -931,7 +905,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_generic_dbus_sighandler(GD
 }
 
 /* Prepare the closure parameters. */
-gvariant_to_gvalue_closure_args(object, params, &amp;amp;paramv, &amp;amp;num_params);
+purple_gvariant_to_gvalue_closure_args(object, params, &amp;amp;paramv, &amp;amp;num_params);
 
 /* Execute the sighandler. */
 g_closure_invoke(closure, NULL, num_params, paramv, NULL);
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:46:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32777">
    <title>cpw.gillux.detachablepurple: 1258821d: Fixed the calling of D-Busmethods that ...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32777</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 1258821dd0c17cfa7c68aae4b3d46bc19d1e6e83
Parent:   42a3b4be168a51f122a91d663050807a722afc38
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 15:32:20
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/1258821dd0c17cfa7c68aae4b3d46bc19d1e6e83

Changelog: 

Fixed the calling of D-Bus methods that doesn't return values.

Changes against parent 42a3b4be168a51f122a91d663050807a722afc38

  patched  libpurple/pobject.c

============================================================
--- libpurple/pobject.ca5d73b962339760940a4c3f846ea270b4997e1a9
+++ libpurple/pobject.c5803f51d95b391bf219f3822643f177229fb665c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -762,6 +762,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_generic_dbus_method_handle
 GValue ret_val = {0, };
 GClosure *closure;
 guint i, num_params;
+GDBusMethodInfo *method_info;
 
 /* Get the binded function back. */
 closure = purple_object_get_dbus_closure(PURPLE_OBJECT_GET_CLASS(object),
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -776,27 +777,34 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_object_generic_dbus_method_handle
 purple_gvariant_to_gvalue_closure_args(object, params,
                                        &amp;amp;paramv, &amp;amp;num_params);
 
+/* Check if this method has a return value. */
+method_info = g_dbus_method_invocation_get_method_info(invoc);
+if (!method_info-&amp;gt;out_args) {
+g_closure_invoke(closure, NULL, num_params, paramv, NULL);
+g_dbus_method_invocation_return_value(invoc, NULL);
+} else {
 /* We don't want to force such a recent version, so keep a shitty workaround. */
 #if GLIB_CHECK_VERSION(2, 32, 1)
-g_value_init(&amp;amp;ret_val, G_TYPE_VARIANT);
+g_value_init(&amp;amp;ret_val, G_TYPE_VARIANT);
 
-/* Execute the callback. */
-g_closure_invoke(closure, &amp;amp;ret_val, num_params, paramv, NULL);
-g_dbus_method_invocation_return_value(invoc,
+/* Execute the callback. */
+g_closure_invoke(closure, &amp;amp;ret_val, num_params, paramv, NULL);
+g_dbus_method_invocation_return_value(invoc,
                                       g_value_get_variant(&amp;amp;ret_val));
 #else
-g_value_init(&amp;amp;ret_val, G_TYPE_POINTER);
+g_value_init(&amp;amp;ret_val, G_TYPE_POINTER);
 
-/* Execute the callback. */
-g_closure_invoke(closure, &amp;amp;ret_val, num_params, paramv, NULL);
-g_dbus_method_invocation_return_value(invoc,
+/* Execute the callback. */
+g_closure_invoke(closure, &amp;amp;ret_val, num_params, paramv, NULL);
+g_dbus_method_invocation_return_value(invoc,
                                 (GVariant*)g_value_get_pointer(&amp;amp;ret_val));
 #endif
+g_value_unset(&amp;amp;ret_val);
+}
 
 for (i = 0; i &amp;lt; num_params; i++)
 g_value_unset (&amp;amp;paramv[i]);
 g_free (paramv);
-g_value_unset(&amp;amp;ret_val);
 }
 
 GVariant *
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:46:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32776">
    <title>cpw.gillux.detachablepurple: 0ee40108: Rewritten the"RequestAuthorize" D-Bus s...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32776</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 0ee4010839ed5289ead6ede5e484f9ec54ca92a9
Parent:   8fdb17ac4d4551273dd61006908e89691fcba6f7
Author:   gillux&amp;lt; at &amp;gt;soc.pidgin.im
Date:     05/25/12 15:03:49
Branch:   im.pidgin.cpw.gillux.detachablepurple
URL: http://d.pidgin.im/viewmtn/revision/info/0ee4010839ed5289ead6ede5e484f9ec54ca92a9

Changelog: 

Rewritten the "RequestAuthorize" D-Bus signal of PurpleAccount,
according to the new gdbus-based API.

Changes against parent 8fdb17ac4d4551273dd61006908e89691fcba6f7

  patched  libpurple/dbus/account.c

============================================================
--- libpurple/dbus/account.cb1f8bc5e75b9ed81de64575a6547590877a9ce95
+++ libpurple/dbus/account.c6c3132a77592246d6a220f2eda38c70b3102eaf5
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -107,17 +107,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; static void
  * Callback, called when we receive a dbus "RequestAuthorize" signal.
  */
 static void
-request_authorize_cb(DBusGProxy *proxy, const char *remote_user,
+request_authorize_cb(PurpleAccount* account, const char *remote_user,
                      const char *id,    const char *alias, const char *message,
-                     gboolean on_list,  guint request_id,  gpointer data)
+                     gboolean on_list,  guint request_id)
 {
 GClosure *close_req;
 void *h;
-PurpleAccount* account = PURPLE_ACCOUNT(
-                purple_dbus_get_gobject_by_path(dbus_g_proxy_get_path(proxy)));
 
-        g_return_if_fail(account != NULL);
-
         /* This calls the local request_authorize account uiop, with our
          * own auth/deny callbacks defined above. */
         h = purple_account_request_authorization(account, remote_user, id,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -226,12 +222,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_account_class_dbus_init(PurpleAcc
              purple_smarshal_VOID__STRING_STRING_STRING_STRING,
              G_TYPE_NONE, 4, G_TYPE_STRING, G_TYPE_STRING,
              G_TYPE_STRING, G_TYPE_STRING);
-g_signal_new("request_authorize",
- PURPLE_TYPE_ACCOUNT, G_SIGNAL_RUN_LAST, 0, NULL, NULL,
- purple_smarshal_VOID__STRING_STRING_STRING_STRING_BOOLEAN_UINT,
- G_TYPE_NONE, 6,
- G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_BOOLEAN, G_TYPE_UINT);
 }
 /* In remote mode we need to register the marshallers
  * we will use to receive the signals sent by the daemon */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -241,11 +231,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; purple_account_class_dbus_init(PurpleAcc
 purple_smarshal_VOID__STRING_STRING_STRING_STRING,
 G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING,
 G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
-/* Marshaller for the RequestAuthorize dbus signal */
-dbus_g_object_register_marshaller(
- purple_smarshal_VOID__STRING_STRING_STRING_STRING_BOOLEAN_UINT,
- G_TYPE_NONE, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING,
- G_TYPE_STRING, G_TYPE_BOOLEAN, G_TYPE_UINT, G_TYPE_INVALID);
+purple_object_bind_dbus_callback
+  (pobjclass, purple_account_interface_info.name,
+   "RequestAuthorize", (GCallback)request_authorize_cb);
 }
 }
 
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>gillux&lt; at &gt;soc.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:46:45</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32775">
    <title>soc.2012.gg: 04dd9b27: Gadu-Gadu: synchronize internal libgadu ...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32775</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 04dd9b27f1bb9e7ef162fb6243e8c9e896b57f16
Parent:   7e7ded95fce2925f90c076c274edad16084b5032
Author:   tomkiewicz&amp;lt; at &amp;gt;cpw.pidgin.im
Date:     05/25/12 15:05:26
Branch:   im.pidgin.soc.2012.gg
URL: http://d.pidgin.im/viewmtn/revision/info/04dd9b27f1bb9e7ef162fb6243e8c9e896b57f16

Changelog: 

Gadu-Gadu: synchronize internal libgadu with upstream - part 4. Adds -Wall -Wextra -Werror switches. Refs #343

Changes against parent 7e7ded95fce2925f90c076c274edad16084b5032

  renamed  libpurple/protocols/gg/lib/libgadu-config.h
       to  libpurple/protocols/gg/lib/config.h
  renamed  libpurple/protocols/gg/lib/libgadu-debug.h
       to  libpurple/protocols/gg/lib/debug.h
  renamed  libpurple/protocols/gg/lib/libgadu-internal.h
       to  libpurple/protocols/gg/lib/internal.h
  patched  libpurple/protocols/gg/Makefile.am
  patched  libpurple/protocols/gg/lib/config.h
  patched  libpurple/protocols/gg/lib/dcc7.c
  patched  libpurple/protocols/gg/lib/debug.c
  patched  libpurple/protocols/gg/lib/events.c
  patched  libpurple/protocols/gg/lib/handlers.c
  patched  libpurple/protocols/gg/lib/libgadu.c
  patched  libpurple/protocols/gg/lib/libgadu.h
  patched  libpurple/protocols/gg/lib/obsolete.c
  patched  libpurple/protocols/gg/lib/pubdir50.c

============================================================
--- libpurple/protocols/gg/Makefile.am055399a717b226355a566bf0361871637cefec72
+++ libpurple/protocols/gg/Makefile.am52056a4431bbd8d71e1e3c3b26a4183e10f4886d
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -17,9 +17,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; EXTRA_DIST = \
 lib/http.c \
 lib/libgadu.h \
 lib/libgadu.c \
-lib/libgadu-config.h \
-lib/libgadu-debug.h \
-lib/libgadu-internal.h \
+lib/config.h \
+lib/debug.h \
+lib/internal.h \
 lib/message.c \
 lib/message.h \
 lib/obsolete.c \
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -49,8 +49,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; INTGGSOURCES = \
 lib/http.c \
 lib/libgadu.h \
 lib/libgadu.c \
-lib/libgadu-config.h \
-lib/libgadu-internal.h \
+lib/config.h \
+lib/internal.h \
 lib/message.c \
 lib/message.h \
 lib/obsolete.c \
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -105,6 +105,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; AM_CPPFLAGS = \
 endif
 
 AM_CPPFLAGS = \
+-Wall -Wextra -Werror \
 -I$(top_srcdir)/libpurple \
 -I$(top_builddir)/libpurple \
 $(INTGG_CFLAGS) \
============================================================
--- libpurple/protocols/gg/lib/events.cddeb1042e5bf21cd3c886d92fbddf4f7e7339dbb
+++ libpurple/protocols/gg/lib/events.c6497cfa187ec6d0a8257fbb4af157a157ec84565
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -33,9 +33,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "compat.h"
 #include "libgadu.h"
 #include "protocol.h"
-#include "libgadu-internal.h"
+#include "internal.h"
 #include "encoding.h"
-#include "libgadu-debug.h"
+#include "debug.h"
 #include "session.h"
 
 #include &amp;lt;errno.h&amp;gt;
============================================================
--- libpurple/protocols/gg/lib/libgadu-config.h6fd391496e380baa14a305ae20686fa0ff39f83c
+++ libpurple/protocols/gg/lib/config.had2b6feca386b32e4e9d179ac97da5eb7142c473
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1,6 +1,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 /* Local libgadu configuration. */
 
-#include "config.h"
+/* libpurple's config */
+#include &amp;lt;config.h&amp;gt;
 
 #ifndef __GG_LIBGADU_CONFIG_H
 #define __GG_LIBGADU_CONFIG_H
============================================================
--- libpurple/protocols/gg/lib/libgadu.c8e5f5be394259b7663c0e0dbf55af293b3d5abc2
+++ libpurple/protocols/gg/lib/libgadu.c660938af19e11f9bb0dd80e098c2f439736df3fc
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -37,9 +37,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "libgadu.h"
 #include "protocol.h"
 #include "resolver.h"
-#include "libgadu-internal.h"
+#include "internal.h"
 #include "encoding.h"
-#include "libgadu-debug.h"
+#include "debug.h"
 #include "session.h"
 #include "message.h"
 #include "deflate.h"
============================================================
--- libpurple/protocols/gg/lib/libgadu.h156dccaab9aae4d3f04bd5e002b78f09237e642b
+++ libpurple/protocols/gg/lib/libgadu.h7424e08f2293c54abe966389daf25adaee979ef2
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -101,7 +101,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; extern "C" {
 /* Defined if uintX_t types are defined in &amp;lt;sys/types.h&amp;gt;. */
 #undef GG_CONFIG_HAVE_SYS_TYPES_H
 
-#include "libgadu-config.h"
+#include "config.h"
 
 #ifdef GG_CONFIG_HAVE_OPENSSL
 #include &amp;lt;openssl/ssl.h&amp;gt;
============================================================
--- libpurple/protocols/gg/lib/obsolete.cb42b09a62dd26972bafcd0aaeb33bfa422b578cb
+++ libpurple/protocols/gg/lib/obsolete.c69eda65fdfce788b72918002b49e7851f443e7b2
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -34,7 +34,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;errno.h&amp;gt;
 
 #include "libgadu.h"
-#include "libgadu-internal.h"
+#include "internal.h"
 
 struct gg_http *gg_userlist_get(uin_t uin, const char *passwd, int async)
 {
============================================================
--- libpurple/protocols/gg/lib/pubdir50.cec44588e0c8e9cac3045672349fa6feed6d30f0d
+++ libpurple/protocols/gg/lib/pubdir50.c8a0725fb633db126d874c61e7bd7f18bfff7ca31
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -31,7 +31,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;time.h&amp;gt;
 
 #include "libgadu.h"
-#include "libgadu-internal.h"
+#include "internal.h"
 #include "encoding.h"
 
 /**
============================================================
--- libpurple/protocols/gg/lib/dcc7.c06f1ac15d74499da48fb2ab0181978c5c45dc16e
+++ libpurple/protocols/gg/lib/dcc7.cc4c888d41e46c590a51ad1ee83ae7248e7e64eac
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -49,8 +49,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "libgadu.h"
 #include "protocol.h"
 #include "resolver.h"
-#include "libgadu-internal.h"
-#include "libgadu-debug.h"
+#include "internal.h"
+#include "debug.h"
 
 #define gg_debug_dcc(dcc, level, fmt...) \
 gg_debug_session(((dcc) != NULL) ? (dcc)-&amp;gt;sess : NULL, level, fmt)
============================================================
--- libpurple/protocols/gg/lib/debug.c9a87a0e803fcd57337fce35be982651ecbd8c6a1
+++ libpurple/protocols/gg/lib/debug.c5a00ccd3c331e38717212416d4a495204f065e14
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -32,7 +32,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;string.h&amp;gt;
 
 #include "libgadu.h"
-#include "libgadu-debug.h"
+#include "debug.h"
 
 /**
  * Poziom rejestracji informacji odpluskwiaj?cych. Zmienna jest mask? bitow?
============================================================
--- libpurple/protocols/gg/lib/handlers.c3d0c7b4c5928d70f70f5675d6976ed0684189faf
+++ libpurple/protocols/gg/lib/handlers.cd980f41692a3390da8f58abb9207b248bedc4eb8
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -39,7 +39,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "protocol.h"
 #include "encoding.h"
 #include "message.h"
-#include "libgadu-internal.h"
+#include "internal.h"
 #include "deflate.h"
 
 #include &amp;lt;errno.h&amp;gt;
_______________________________________________
Commits mailing list
Commits&amp;lt; at &amp;gt;pidgin.im
http://pidgin.im/cgi-bin/mailman/listinfo/commits&lt;/pre&gt;</description>
    <dc:creator>tomkiewicz&lt; at &gt;cpw.pidgin.im</dc:creator>
    <dc:date>2012-05-25T19:11:44</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32774">
    <title>pidgin: 444dec08: propagate from branch 'im.pidgin.soc.201...</title>
    <link>http://comments.gmane.org/gmane.comp.gnome.gaim.cvs/32774</link>
    <description>&lt;pre&gt;----------------------------------------------------------------------
Revision: 444dec0882a9950944852a408a50904a458629bf
Parent:   79a577d0889f9db570dd39f03efd0605e9aba218
Parent:   7e7ded95fce2925f90c076c274edad16084b5032
Author:   tomkiewicz&amp;lt; at &amp;gt;cpw.pidgin.im
Date:     05/25/12 14:02:53
Branch:   im.pidgin.pidgin
URL: http://d.pidgin.im/viewmtn/revision/info/444dec0882a9950944852a408a50904a458629bf

Changelog: 

propagate from branch 'im.pidgin.soc.2012.gg' (head 7e7ded95fce2925f90c076c274edad16084b5032)
            to branch 'im.pidgin.pidgin' (head 79a577d0889f9db570dd39f03efd0605e9aba218)

Changes against parent 79a577d0889f9db570dd39f03efd0605e9aba218

  patched  pidgin/gtkconv.c
  patched  pidgin/gtklog.c
  patched  pidgin/themes/Contents/Resources/main.css
  patched  pidgin/themes/Template.html

Changes against parent 7e7ded95fce2925f90c076c274edad16084b5032

  patched  ChangeLog
  patched  libpurple/protocols/jabber/jabber.c
  patched  libpurple/protocols/jabber/usermood.c
  patched  libpurple/protocols/jabber/usermood.h
  patched  libpurple/stun.c
&lt;/pre&gt;</description>
    <dc:creator>tomkiewicz&lt; at &gt;cpw.pidgin.im</dc:creator>
    <dc:date>2012-05-25T18:06:55</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.gnome.gaim.cvs">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.gnome.gaim.cvs</link>
  </textinput>
</rdf:RDF>

