static struct prop_info { EContactField field_id; const gchar *query_prop; enum prop_type prop_type; gboolean (*list_compare) (EContact *contact, const gchar *str, const gchar *region, CompareFunc compare); } prop_info_table[] = { #define NORMAL_PROP(f,q) {f, q, PROP_TYPE_NORMAL, NULL} #define LIST_PROP(q,c) {0, q, PROP_TYPE_LIST, c} #define DATE_PROP(f,q) {f, q, PROP_TYPE_DATE, NULL} /* query prop, type, list compare function */ NORMAL_PROP ( E_CONTACT_FILE_AS, "file_as" ), NORMAL_PROP ( E_CONTACT_UID, "id" ), LIST_PROP ( "full_name", compare_name), /* not really a list, but we need to compare both full and surname */ LIST_PROP ( "photo", compare_photo_uri ), /* not really a list, but we need to compare the uri in the struct */ DATE_PROP ( E_CONTACT_BIRTH_DATE, "birth_date" ), DATE_PROP ( E_CONTACT_ANNIVERSARY, "anniversary" ), NORMAL_PROP ( E_CONTACT_GIVEN_NAME, "given_name"), NORMAL_PROP ( E_CONTACT_FAMILY_NAME, "family_name"), NORMAL_PROP ( E_CONTACT_HOMEPAGE_URL, "url"), NORMAL_PROP ( E_CONTACT_BLOG_URL, "blog_url"), NORMAL_PROP ( E_CONTACT_CALENDAR_URI, "calurl"), NORMAL_PROP ( E_CONTACT_FREEBUSY_URL, "fburl"), NORMAL_PROP ( E_CONTACT_ICS_CALENDAR, "icscalendar"), NORMAL_PROP ( E_CONTACT_VIDEO_URL, "video_url"), NORMAL_PROP ( E_CONTACT_MAILER, "mailer"),
const gchar *ecard_prop; #define PROP_TYPE_NORMAL 0x01 #define PROP_TYPE_LIST 0x02 #define PROP_TYPE_LISTITEM 0x03 #define PROP_TYPE_ID 0x04 gint prop_type; gboolean (*list_compare)(ECardSimple *ecard, const gchar *str, gchar *(*compare)(const gchar *, const gchar *)); } prop_info_table[] = { #define NORMAL_PROP(f,q,e) {f, q, e, PROP_TYPE_NORMAL, NULL} #define ID_PROP {0, "id", NULL, PROP_TYPE_ID, NULL} #define LIST_PROP(q,e,c) {0, q, e, PROP_TYPE_LIST, c} /* query prop, ecard prop, type, list compare function */ NORMAL_PROP ( E_CARD_SIMPLE_FIELD_FILE_AS, "file_as", "file_as" ), LIST_PROP ( "full_name", "full_name", compare_name), /* not really a list, but we need to compare both full and surname */ NORMAL_PROP ( E_CARD_SIMPLE_FIELD_URL, "url", "url" ), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_MAILER, "mailer", "mailer"), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_ORG, "org", "org"), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_ORG_UNIT, "org_unit", "org_unit"), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_OFFICE, "office", "office"), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_TITLE, "title", "title"), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_ROLE, "role", "role"), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_MANAGER, "manager", "manager"), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_ASSISTANT, "assistant", "assistant"), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_NICKNAME, "nickname", "nickname"), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_SPOUSE, "spouse", "spouse" ), NORMAL_PROP ( E_CARD_SIMPLE_FIELD_NOTE, "note", "note"), ID_PROP, LIST_PROP ( "email", "email", compare_email ),