*/
#include "config.h"
-
-#include <string.h>
-#include <math.h>
-#include <time.h>
-#include <sys/types.h>
+#include "empathy-utils.h"
#include <glib/gi18n-lib.h>
-
-#include <libxml/uri.h>
-
-#include <folks/folks.h>
-#include <folks/folks-telepathy.h>
-
#include <dbus/dbus-protocol.h>
-
-#include <telepathy-glib/account-manager.h>
-#include <telepathy-glib/connection.h>
-#include <telepathy-glib/channel.h>
-#include <telepathy-glib/dbus.h>
-#include <telepathy-glib/util.h>
+#include <math.h>
#include "empathy-client-factory.h"
-#include "empathy-utils.h"
-#include "empathy-individual-manager.h"
#include "empathy-presence-manager.h"
-#include "empathy-request-util.h"
+#include "extensions.h"
-#include <extensions/extensions.h>
+#include <math.h>
#define DEBUG_FLAG EMPATHY_DEBUG_OTHER
#include "empathy-debug.h"
}
gboolean
-empathy_xml_validate (xmlDoc *doc,
- const gchar *dtd_filename)
+empathy_xml_validate_from_resource (xmlDoc *doc,
+ const gchar *dtd_resourcename)
{
- gchar *path;
- xmlChar *escaped;
+ GBytes *resourcecontents;
+ gconstpointer resourcedata;
+ gsize resourcesize;
+ xmlParserInputBufferPtr buffer;
xmlValidCtxt cvp;
xmlDtd *dtd;
+ GError *error = NULL;
gboolean ret;
- path = g_build_filename (g_getenv ("EMPATHY_SRCDIR"), "libempathy",
- dtd_filename, NULL);
- if (!g_file_test (path, G_FILE_TEST_EXISTS))
+ DEBUG ("Loading dtd resource %s", dtd_resourcename);
+
+ resourcecontents = g_resources_lookup_data (dtd_resourcename, G_RESOURCE_LOOKUP_FLAGS_NONE, &error);
+ if (error != NULL)
{
- g_free (path);
- path = g_build_filename (DATADIR, "empathy", dtd_filename, NULL);
+ g_warning ("Unable to load dtd resource '%s': %s", dtd_resourcename, error->message);
+ g_error_free (error);
+ return FALSE;
}
-
- DEBUG ("Loading dtd file %s", path);
-
- /* The list of valid chars is taken from libxml. */
- escaped = xmlURIEscapeStr ((const xmlChar *) path,
- (const xmlChar *)":@&=+$,/?;");
- g_free (path);
+ resourcedata = g_bytes_get_data (resourcecontents, &resourcesize);
+ buffer = xmlParserInputBufferCreateStatic (resourcedata, resourcesize, XML_CHAR_ENCODING_UTF8);
memset (&cvp, 0, sizeof (cvp));
- dtd = xmlParseDTD (NULL, escaped);
+ dtd = xmlIOParseDTD (NULL, buffer, XML_CHAR_ENCODING_UTF8);
ret = xmlValidateDtd (&cvp, doc, dtd);
- xmlFree (escaped);
xmlFreeDtd (dtd);
+ g_bytes_unref (resourcecontents);
return ret;
}
{ "yahoojp", N_("Yahoo! Japan"), TRUE },
{ "groupwise", "GroupWise", FALSE },
{ "sip", "SIP", FALSE },
+ { "gadugadu", "Gadu-Gadu", FALSE },
+ { "mxit", "Mxit", FALSE },
+ { "myspace", "Myspace", FALSE },
+ { "sametime", "Sametime", FALSE },
+ { "skype-dbus", "Skype (D-BUS)", FALSE },
+ { "skype-x11", "Skype (X11)", FALSE },
+ { "zephyr", "Zephyr", FALSE },
{ NULL, NULL }
};
TP_ACCOUNT_MANAGER_FEATURE_CORE)))
g_critical (G_STRLOC ": %s called before AccountManager ready", G_STRFUNC);
- accounts = tp_account_manager_get_valid_accounts (manager);
+ accounts = tp_account_manager_dup_valid_accounts (manager);
for (l = accounts; l != NULL; l = l->next)
{
break;
}
- g_list_free (accounts);
+ g_list_free_full (accounts, g_object_unref);
g_object_unref (manager);
if (connecting != NULL)
*can_video_call = can_video;
}
+gboolean
+empathy_client_types_contains_mobile_device (const GStrv types) {
+ int i;
+
+ if (types == NULL)
+ return FALSE;
+
+ for (i = 0; types[i] != NULL; i++)
+ if (!tp_strdiff (types[i], "phone") || !tp_strdiff (types[i], "handheld"))
+ return TRUE;
+
+ return FALSE;
+}
+
static FolksIndividual *
create_individual_from_persona (FolksPersona *persona)
{