]> git.deb.at Git - pkg/abook.git/blobdiff - filter.c
mutt-query (1/3): moved muttq_print_item() from abook.c to filter.c
[pkg/abook.git] / filter.c
index 184128017b9b4bdd8c4c6942be77535334f90ac6..ff4d116b1ac652afd816e41efe8ee6c93f9bb95d 100644 (file)
--- a/filter.c
+++ b/filter.c
@@ -100,6 +100,10 @@ struct abook_output_filter e_filters[] = {
        { "\0", NULL, NULL }
 };
 
+struct abook_output_item_filter u_filters[] = {
+       { "\0", NULL }
+};
+
 /*
  * common functions
  */
@@ -122,6 +126,13 @@ print_filters()
                        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
@@ -361,6 +372,25 @@ export_database()
        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)
@@ -2008,6 +2038,24 @@ mutt_alias_export(FILE *out, struct db_enumerator e)
        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);
+}
+
 /*
  * end of mutt alias export filter
  */