static gchar * set_organizer (ECalComponent *comp, CamelMimeMessage *message, CamelFolder *folder, const gchar *message_uid) { EShell *shell; ESource *source = NULL; ESourceRegistry *registry; ESourceMailIdentity *extension; const gchar *extension_name; const gchar *address, *name; ECalComponentOrganizer organizer = {NULL, NULL, NULL, NULL}; gchar *mailto = NULL; gchar *identity_name = NULL, *identity_address = NULL; shell = e_shell_get_default (); registry = e_shell_get_registry (shell); source = em_utils_guess_mail_identity_with_recipients (registry, message, folder, message_uid, &identity_name, &identity_address); if (!source && folder) { CamelStore *store; store = camel_folder_get_parent_store (folder); source = em_utils_ref_mail_identity_for_store (registry, store); } if (source == NULL) source = e_source_registry_ref_default_mail_identity (registry); g_return_val_if_fail (source != NULL, NULL); extension_name = E_SOURCE_EXTENSION_MAIL_IDENTITY; extension = e_source_get_extension (source, extension_name); name = identity_name; if (!name || !*name) name = e_source_mail_identity_get_name (extension); address = identity_address; if (!address || !*address) { name = e_source_mail_identity_get_name (extension); address = e_source_mail_identity_get_address (extension); } if (address && *address) { mailto = g_strconcat ("mailto:", address, NULL); organizer.value = mailto; organizer.cn = name; e_cal_component_set_organizer (comp, &organizer); } g_object_unref (source); g_free (identity_name); g_free (identity_address); return mailto; }
static gchar * set_organizer (ECalComponent *comp, CamelFolder *folder) { EShell *shell; ESource *source = NULL; ESourceRegistry *registry; ESourceMailIdentity *extension; const gchar *extension_name; const gchar *address, *name; ECalComponentOrganizer organizer = {NULL, NULL, NULL, NULL}; gchar *mailto = NULL; shell = e_shell_get_default (); registry = e_shell_get_registry (shell); if (folder != NULL) { CamelStore *store; store = camel_folder_get_parent_store (folder); source = em_utils_ref_mail_identity_for_store (registry, store); } if (source == NULL) source = e_source_registry_ref_default_mail_identity (registry); g_return_val_if_fail (source != NULL, NULL); extension_name = E_SOURCE_EXTENSION_MAIL_IDENTITY; extension = e_source_get_extension (source, extension_name); name = e_source_mail_identity_get_name (extension); address = e_source_mail_identity_get_address (extension); if (name != NULL && address != NULL) { mailto = g_strconcat ("mailto:", address, NULL); organizer.value = mailto; organizer.cn = name; e_cal_component_set_organizer (comp, &organizer); } g_object_unref (source); return mailto; }