X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=filter.c;h=6946f9a5da0fbe6ac685bb411562530a9ecb99f2;hb=f3c64248f69b12b759775cbc7e0e01c13fae274f;hp=04b9a3b5343f46f778bbd4044ec494214cc7521d;hpb=6a182e3e9a932830341308eb5fb58eb92f5c3682;p=pkg%2Fabook.git diff --git a/filter.c b/filter.c index 04b9a3b..6946f9a 100644 --- a/filter.c +++ b/filter.c @@ -1627,15 +1627,46 @@ mutt_alias_export(FILE *out, struct db_enumerator e) { char email[MAX_EMAIL_LEN]; char *alias = NULL; + int email_addresses; + char *ptr; db_enumerate_items(e) { alias = mutt_alias_genalias(e.item); get_first_email(email, e.item); - fprintf(out, *email ? "alias %s %s <%s>\n": "alias %s %s%s\n", - alias, - db_name_get(e.item), - email); - xfree(alias); + + /* do not output contacts without email address */ + /* cause this does not make sense in mutt aliases */ + if (*email) { + + /* output first email address */ + fprintf(out, "alias %s %s <%s>\n", + alias, + db_name_get(e.item), + email); + + /* number of email addresses */ + email_addresses = 1; + ptr = db_email_get(e.item); + while (*ptr != '\0') { + if (*ptr == ',') { + email_addresses++; + } + ptr++; + } + + /* output other email addresses */ + while (email_addresses-- > 1) { + roll_emails(e.item, ROTATE_RIGHT); + get_first_email(email, e.item); + fprintf(out, "alias %s__%s %s <%s>\n", + alias, + email, + db_name_get(e.item), + email); + } + roll_emails(e.item, ROTATE_RIGHT); + xfree(alias); + } } return 0; @@ -1890,7 +1921,8 @@ bsdcal_export_database(FILE *out, struct db_enumerator e) char *anniversary = db_fget(e.item, ANNIVERSARY); if(anniversary) { - parse_date_string(anniversary, &day, &month, &year); + if(!parse_date_string(anniversary, &day, &month, &year)) + continue; fprintf(out, _("%02d/%02d\tAnniversary of %s\n"),