X-Git-Url: https://git.0d.be/?p=empathy.git;a=blobdiff_plain;f=libempathy-gtk%2Fempathy-user-info.c;h=451caec8e9fcfe9f508c14cef271119e9e3f8b18;hp=4c9a2deee7f62207c0f2b4392a59aeb6fc8518ca;hb=10983e93f69ddcc048cc582d777433ca2c7a2b39;hpb=ec601502710c9aef38d4b38a1f3cf6f37794d013 diff --git a/libempathy-gtk/empathy-user-info.c b/libempathy-gtk/empathy-user-info.c index 4c9a2dee..451caec8 100644 --- a/libempathy-gtk/empathy-user-info.c +++ b/libempathy-gtk/empathy-user-info.c @@ -22,14 +22,14 @@ #include -#define DEBUG_FLAG EMPATHY_DEBUG_CONTACT -#include -#include -#include - #include "empathy-avatar-chooser.h" #include "empathy-calendar-button.h" #include "empathy-contactinfo-utils.h" +#include "empathy-time.h" +#include "empathy-utils.h" + +#define DEBUG_FLAG EMPATHY_DEBUG_CONTACT +#include "empathy-debug.h" G_DEFINE_TYPE (EmpathyUserInfo, empathy_user_info, GTK_TYPE_GRID) @@ -192,6 +192,17 @@ fill_contact_info_grid (EmpathyUserInfo *self) { TpContactInfoField *field = l->data; + /* For some reason it can happen that the vCard contains fields the CM + * claims to be not supported. This is a workaround for gabble bug + * https://bugs.freedesktop.org/show_bug.cgi?id=64319. But we shouldn't + * crash on buggy CM anyway. */ + if (get_spec_from_list (specs, field->field_name) == NULL) + { + DEBUG ("Buggy CM: self's vCard contains %s field but it is not in " + "Connection' supported fields", field->field_name); + continue; + } + /* make a copy for the details_to_set list */ field = tp_contact_info_field_copy (field); DEBUG ("Field %s is in our vCard", field->field_name);