static int palm_export_database(FILE *out, struct db_enumerator e);
static int vcard_export_database(FILE *out, struct db_enumerator e);
static int mutt_alias_export(FILE *out, struct db_enumerator e);
+static int mutt_query_export_database(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);
{ "ldif", N_("ldif / Netscape addressbook (.4ld)"), ldif_export_database },
{ "vcard", N_("vCard 2 file"), vcard_export_database },
{ "mutt", N_("mutt alias"), mutt_alias_export },
+ { "muttq", N_("mutt query format (internal use)"), mutt_query_export_database },
{ "html", N_("html document"), html_export_database },
{ "pine", N_("pine addressbook"), pine_export_database },
{ "csv", N_("comma separated values"), csv_export_database },
{ "\0", NULL, NULL }
};
+struct abook_output_item_filter u_filters[] = {
+ { "muttq", N_("mutt alias"), muttq_print_item },
+ { "\0", NULL }
+};
+
/*
* common functions
*/
gettext(e_filters[i].desc));
putchar('\n');
+
+ puts(_("output (with query):"));
+ for(i=0; *u_filters[i].filtname ; i++)
+ printf("\t%s\t%s\n", u_filters[i].filtname,
+ gettext(u_filters[i].desc));
+
+ putchar('\n');
}
static int
return 0;
}
+struct abook_output_item_filter select_output_item_filter(char filtname[FILTNAME_LEN]) {
+ int i;
+ for(i=0;; i++) {
+ if(!strncasecmp(u_filters[i].filtname, filtname, FILTNAME_LEN))
+ break;
+ if(!*u_filters[i].filtname) {
+ i = -1;
+ break;
+ }
+ }
+ return u_filters[i];
+}
+
+void
+e_write_item(FILE *out, int item, void (*func) (FILE *in, int item))
+{
+ (*func) (out, item);
+}
+
static int
e_write_file(char *filename, int (*func) (FILE *in, struct db_enumerator e),
int mode)
return 0;
}
+void muttq_print_item(FILE *file, int item)
+{
+ abook_list *emails, *e;
+ char *tmp = db_email_get(item);
+
+ emails = csv_to_abook_list(tmp);
+ free(tmp);
+
+ for(e = emails; e; e = e->next) {
+ fprintf(file, "%s\t%s\t%s\n", e->data, db_name_get(item),
+ !db_fget(item, NOTES) ?" " :db_fget(item, NOTES)
+ );
+ if(!opt_get_bool(BOOL_MUTT_RETURN_ALL_EMAILS))
+ break;
+ }
+ abook_list_free(&emails);
+}
+
+static int
+mutt_query_export_database(FILE *out, struct db_enumerator e)
+{
+ fprintf(out, "All items\n");
+ db_enumerate_items(e)
+ muttq_print_item(out, e.item);
+ return 0;
+}
+
/*
* end of mutt alias export filter
*/