X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=filter.c;h=62394ca0cf2c1b05fca28541c600b3b1b99e4603;hb=2f465ba5e73ba05745d23f0fca9d5bdb1b350d8c;hp=d2bc6efc0f35fbe801b683270877cfdd089aed8d;hpb=498e95b4f04e4377a63865bde70361f4be570276;p=pkg%2Fabook.git diff --git a/filter.c b/filter.c index d2bc6ef..62394ca 100644 --- a/filter.c +++ b/filter.c @@ -61,6 +61,7 @@ static int mutt_alias_export(FILE *out, struct db_enumerator e); static int elm_alias_export(FILE *out, struct db_enumerator e); static int text_export_database(FILE *out, struct db_enumerator e); static int spruce_export_database(FILE *out, struct db_enumerator e); +static int wl_export_database(FILE *out, struct db_enumerator e); /* * end of function declarations @@ -89,6 +90,7 @@ struct abook_output_filter e_filters[] = { { "palmcsv", N_("Palm comma separated values"), palm_export_database}, { "elm", N_("elm alias"), elm_alias_export }, { "text", N_("plain text"), text_export_database }, + { "wl", N_("Wanderlust address book"), wl_export_database }, { "spruce", N_("Spruce address book"), spruce_export_database }, { "\0", NULL, NULL } }; @@ -320,10 +322,12 @@ export_database() return 1; } - mvaddstr(5+filter, 2, "->"); + mvaddstr(5 + filter, 2, "->"); if(selected_items()) { - switch(statusline_askchoice(_("Export ll, export elected, or ancel?"), S_("keybindings:all/selected/cancel|asc"), 3)) { + switch(statusline_askchoice( + _("Export ll, export elected, or ancel?"), + S_("keybindings:all/selected/cancel|asc"), 3)) { case 1: break; case 2: @@ -791,7 +795,7 @@ ldif_export_database(FILE *out, struct db_enumerator e) int j; get_first_email(email, e.item); - tmp = mkstr("cn=%s,mail=%s", database[e.item][NAME], email); + tmp = strdup_printf("cn=%s,mail=%s", database[e.item][NAME], email); ldif_fput_type_and_value(out, "dn", tmp); free(tmp); @@ -1812,3 +1816,34 @@ spruce_export_database (FILE *out, struct db_enumerator e) * end of Spruce export filter */ +/* + * wanderlust addressbook export filter + */ + +static int +wl_export_database(FILE *out, struct db_enumerator e) +{ + char emails[MAX_EMAILS][MAX_EMAIL_LEN]; + + fprintf (out, "# Wanderlust address book written by %s\n\n", PACKAGE); + db_enumerate_items(e) { + split_emailstr(e.item, emails); + if (**emails) { + fprintf(out, + "%s\t\"%s\"\t\"%s\"\n", + *emails, + safe_str(database[e.item][NICK]), + safe_str(database[e.item][NAME]) + ); + } + } + + fprintf (out, "\n# End of address book file.\n"); + + return 0; +} + +/* + * end of wanderlust addressbook export filter + */ +