X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=filter.c;h=5c0a23ed12314aa4d9c497a5e7cf8af750dd1ab3;hb=0cd708a881cb4c6f398381b43be3521a36ca8bd4;hp=4b5330e4b383eadd8e59e25b645f0a458cb1696a;hpb=4b8f9231090ada43f7e16987ec46ac7f45a914ec;p=pkg%2Fabook.git diff --git a/filter.c b/filter.c index 4b5330e..5c0a23e 100644 --- a/filter.c +++ b/filter.c @@ -23,6 +23,7 @@ #include "list.h" #include "misc.h" #include "options.h" +#include "ui.h" #include "xmalloc.h" #include @@ -60,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 @@ -71,7 +73,7 @@ struct abook_input_filter i_filters[] = { { "mutt", N_("mutt alias"), mutt_parse_file }, { "pine", N_("pine addressbook"), pine_parse_file }, { "csv", N_("comma separated values"), csv_parse_file }, - { "allcsv", N_("comma separated all values"), allcsv_parse_file }, + { "allcsv", N_("comma separated values (all fields)"), allcsv_parse_file }, { "palmcsv", N_("Palm comma separated values"), palmcsv_parse_file }, { "\0", NULL, NULL } }; @@ -84,10 +86,11 @@ struct abook_output_filter e_filters[] = { { "pine", N_("pine addressbook"), pine_export_database }, { "gcrd", N_("GnomeCard (VCard) addressbook"), gcrd_export_database }, { "csv", N_("comma separated values"), csv_export_database }, - { "allcsv", N_("comma separated all values"), allcsv_export_database }, + { "allcsv", N_("comma separated values (all fields)"), allcsv_export_database }, { "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 } }; @@ -213,7 +216,7 @@ import_database() if(i_read_file(filename, i_filters[filter].func )) statusline_msg(_("Error occured while opening the file")); else if(tmp == items) - statusline_msg(_("Hmm.., file seems not to be a valid file")); + statusline_msg(_("File does not seem to be a valid addressbook")); refresh_screen(); free(filename); @@ -319,17 +322,20 @@ export_database() return 1; } - mvaddstr(5+filter, 2, "->"); + mvaddstr(5 + filter, 2, "->"); if(selected_items()) { - /* TODO gettext: handle translated keypresses? */ - statusline_addstr(_("Export All/Selected/Cancel (A/s/c)")); - switch( tolower(getch()) ) { - case 's': + switch(statusline_askchoice( + _("Export ll, export elected, or ancel?"), + S_("keybindings:all/selected/cancel|asc"), 3)) { + case 1: + break; + case 2: enum_mode = ENUM_SELECTED; break; - case 'c': - clear_statusline(); + case 0: + case 3: + refresh_screen(); return 1; } clear_statusline(); @@ -1810,3 +1816,35 @@ 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 'abook'\n\n"); + 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 + */ +