#include "xmalloc.h"
#include <assert.h>
+#ifdef HAVE_VFORMAT
+#include "vcard.h"
+#endif
+
extern abook_field_list *fields_list;
extern int fields_count;
*/
void vcard_export_item(FILE *out, int item);
-
+void muttq_print_item(FILE *file, int item);
+void custom_print_item(FILE *out, int item);
/*
* end of function declarations
{
int i;
- puts(_("input:"));
+ puts(_("input formats:"));
for(i=0; *i_filters[i].filtname ; i++)
printf("\t%s\t%s\n", i_filters[i].filtname,
gettext(i_filters[i].desc));
putchar('\n');
- puts(_("output:"));
+ puts(_("output formats:"));
for(i=0; *e_filters[i].filtname ; i++)
printf("\t%s\t%s\n", e_filters[i].filtname,
gettext(e_filters[i].desc));
putchar('\n');
- puts(_("output (with query):"));
+ puts(_("query-compatible output formats:"));
for(i=0; *u_filters[i].filtname ; i++)
printf("\t%s\t%s\n", u_filters[i].filtname,
gettext(u_filters[i].desc));
if(i < 0)
return -1;
+#ifdef HAVE_VFORMAT
+ // this is a special case for
+ // libvformat whose API expects a filename
+ if(!strcmp(filtname, "vcard")) {
+ if(!strcmp(filename, "-"))
+ ret = vcard_parse_file_libvformat("/dev/stdin");
+ else
+ ret = vcard_parse_file_libvformat(filename);
+ }
+ else
+#endif
+
if(!strcmp(filename, "-")) {
struct stat s;
if((fstat(fileno(stdin), &s)) == -1 || S_ISDIR(s.st_mode))
return;
}
- for(i=0; i < LDIF_ITEM_FIELDS; i++) {
- if(!safe_strcmp(ldif_field_names[i], type) && *value) {
- if(i == LDIF_ITEM_FIELDS - 1) /* this is a dirty hack */
- if(safe_strcmp("person", value))
- break;
-
- if(item_fget(item, i))
- free(item_fget(item, i));
-
+ for(i=0; i < LDIF_ITEM_FIELDS - 1; i++) {
+ if(!strcasecmp(ldif_field_names[i], type) && *value) {
item_fput(item, i, xstrdup(value));
+ break;
}
}
}