Function

EBookContactsbook_util_diff_categories

since: 3.48

Declaration [src]

void
e_book_util_diff_categories (
  EContact* old_contact,
  EContact* new_contact,
  GHashTable** out_added,
  GHashTable** out_removed
)

Description [src]

Compares list of categories on the old_contact with the list of categories on the new_contact and fills out_added categories and out_removed categories accordingly, as if the old_contact is replaced with the new_contact. When either of the contacts is NULL, it’s considered as having no categories set. Rather than returning empty GHashTable, the return argument is set to NULL when there are no added/removed categories.

The key of the hash table is the category string, the value is an integer (1). There is used the hash table only for speed.

The returned GHashTable-s should be freed with g_hash_table_unref(), when no longer needed.

Available since: 3.48

Parameters

old_contact

Type: EContact

An old EContact, or NULL.

The argument can be NULL.
The data is owned by the caller of the function.
new_contact

Type: EContact

A new EContact, or NULL.

The argument can be NULL.
The data is owned by the caller of the function.
out_added

Type: GHashTable

A GHashTable with added categories.

The argument will be set by the function.
The caller of the function takes ownership of the returned data container, but not the data inside it.
out_removed

Type: GHashTable

A GHashTable with removed categories.

The argument will be set by the function.
The caller of the function takes ownership of the returned data container, but not the data inside it.