X-Git-Url: https://git.deb.at/?a=blobdiff_plain;f=filter.c;h=51445ee1f1bf9947c323bc478a4f7fcafb22f9da;hb=a6762de0a3ccf6ff7a11f43c3cfe517f38fbb111;hp=184128017b9b4bdd8c4c6942be77535334f90ac6;hpb=e39ba13b9c7e5518770173245751780896ae542f;p=pkg%2Fabook.git diff --git a/filter.c b/filter.c index 1841280..51445ee 100644 --- 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)