#include "list.h"
#include "misc.h"
#include "options.h"
+#include "ui.h"
#include "xmalloc.h"
#include <assert.h>
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
{ "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 }
};
{ "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 }
};
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);
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 <a>ll, export <s>elected, or <c>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();
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);
* 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
+ */
+