--- e-book-backend-couchdb-old.c 2010-04-08 18:15:23.000000000 +0200 +++ evolution-couchdb-0.4.5/addressbook/e-book-backend-couchdb.c 2010-09-12 21:19:49.167055578 +0200 @@ -760,15 +760,37 @@ desktopcouch_document_contact_set_nick_name (document, (const char *) e_contact_get_const (contact, E_CONTACT_NICKNAME)); desktopcouch_document_contact_set_spouse_name (document, (const char *) e_contact_get_const (contact, E_CONTACT_SPOUSE)); - - desktopcouch_document_contact_set_company (document, (const char *) e_contact_get_const (contact, E_CONTACT_ORG)); - desktopcouch_document_contact_set_department (document, (const char *) e_contact_get_const (contact, E_CONTACT_ORG_UNIT)); - desktopcouch_document_contact_set_job_title (document, (const char *) e_contact_get_const (contact, E_CONTACT_TITLE)); - desktopcouch_document_contact_set_manager_name (document, (const char *) e_contact_get_const (contact, E_CONTACT_MANAGER)); - desktopcouch_document_contact_set_assistant_name (document, (const char *) e_contact_get_const (contact, E_CONTACT_ASSISTANT)); - desktopcouch_document_contact_set_office (document, (const char *) e_contact_get_const (contact, E_CONTACT_OFFICE)); - desktopcouch_document_contact_set_categories (document, (const char *) e_contact_get_const (contact, E_CONTACT_CATEGORIES)); - desktopcouch_document_contact_set_notes (document, (const char *) e_contact_get_const (contact, E_CONTACT_NOTE)); + + /*Fixed by levu on 2010-09-12: + * e_contact_get_const can return NULL and + * desktopcouch_document_contact_set_company + * fails if NULL is given as 2nd argument... + */ + + str = (const char *) e_contact_get_const (contact, E_CONTACT_ORG); + if (str) + desktopcouch_document_contact_set_company (document, str); + str = (const char *) e_contact_get_const (contact, E_CONTACT_UNIT); + if (str) + desktopcouch_document_contact_set_department (document, str); + str = (const char *) e_contact_get_const (contact, E_CONTACT_TITLE); + if (str) + desktopcouch_document_contact_set_job_title (document, str); + str = (const char *) e_contact_get_const (contact, E_CONTACT_MANAGER); + if (str) + desktopcouch_document_contact_set_manager_name (document, str); + str = (const char *) e_contact_get_const (contact, E_CONTACT_ASSISTANT); + if (str) + desktopcouch_document_contact_set_assistant_name (document, str); + str = (const char *) e_contact_get_const (contact, E_CONTACT_OFFICE); + if (str) + desktopcouch_document_contact_set_office (document, str); + str = (const char *) e_contact_get_const (contact, E_CONTACT_CATEGORIES); + if (str) + desktopcouch_document_contact_set_categories (document, str); + str = (const char *) e_contact_get_const (contact, E_CONTACT_NOTE); + if (str) + desktopcouch_document_contact_set_notes (document, str); /* email addresses */ list = NULL;