]> git.0d.be Git - empathy.git/blobdiff - extensions/extensions-cli.c
Be more compatible with Facebook emoticon codes
[empathy.git] / extensions / extensions-cli.c
index c75633c33cc2839890dc9994096cda50af505cae..982edf3d049b210a30e13fa4c03cac62afa32802 100644 (file)
@@ -1,3 +1,5 @@
+#include "config.h"
+
 #include "extensions.h"
 
 #include <telepathy-glib/proxy-subclass.h>
@@ -5,21 +7,26 @@
 static void _emp_ext_register_dbus_glib_marshallers (void);
 
 /* include auto-generated stubs for client-specific code */
-#include "_gen/signals-marshal.h"
 #include "_gen/cli-misc-body.h"
 #include "_gen/register-dbus-glib-marshallers-body.h"
 
+static gpointer
+emp_cli_once (gpointer data)
+{
+  _emp_ext_register_dbus_glib_marshallers ();
+
+  tp_proxy_init_known_interfaces ();
+
+  tp_proxy_or_subclass_hook_on_interface_add (TP_TYPE_PROXY,
+      emp_cli_misc_add_signals);
+
+  return NULL;
+}
+
 void
 emp_cli_init (void)
 {
-  static gboolean initilized = FALSE;
-
-  if (!initialized)
-    {
-      _emp_ext_register_dbus_glib_marshallers ();
+  static GOnce once = G_ONCE_INIT;
 
-      tp_proxy_or_subclass_hook_on_interface_add (TP_TYPE_PROXY,
-          emp_cli_misc_add_signals);
-      initialized = TRUE;
-    }
+  g_once (&once, emp_cli_once, NULL);
 }