/* * Build address book entries. * Enter: muttFile MUTT control data. * cache Address cache. * aliasName Alias, * listAddr List of address items. * addrCount Address list count. */ static void mutt_build_address( MuttFile *muttFile, AddressCache *cache, gchar *aliasName, GSList *listAddr, gint addrCount ) { GSList *node = NULL; ItemEMail *email; ItemGroup *group; Mutt_ParsedRec *rec; group = NULL; if( listAddr != NULL && addrCount > 1 ) { group = addritem_create_item_group(); addritem_group_set_name( group, aliasName ); addrcache_id_group( cache, group ); addrcache_add_group( cache, group ); } email = NULL; node = listAddr; while( node ) { rec = node->data; /* Insert person/email */ email = mutt_insert_table( muttFile, cache, rec->address, rec->name ); /* Add email to group */ if( group ) { addritem_group_add_email( group, email ); } mutt_free_rec( rec ); node = g_slist_next( node ); } }
/* * Add EMail address to person. * return: TRUE if item added. */ gboolean addrcache_group_add_email( AddressCache *cache, ItemGroup *group, ItemEMail *email ) { cm_return_val_if_fail( cache != NULL, FALSE ); cm_return_val_if_fail( group != NULL, FALSE ); cm_return_val_if_fail( email != NULL, FALSE ); addritem_group_add_email( group, email ); cache->dirtyFlag = TRUE; return TRUE; }