X-Git-Url: https://git.deb.at/?a=blobdiff_plain;ds=sidebyside;f=filter.c;h=2ea5a2dd77bfa3acafa196f5f324a7b47cee2ed6;hb=126dbdaf881905b0406be15a27fa842fd91d11e1;hp=7f8bcd5ce3da16f61d61fa0b670b8ae44dbbc1e6;hpb=a2d4ea58437d93297c7f7e2e8efd4d48297ca46a;p=pkg%2Fabook.git
diff --git a/filter.c b/filter.c
index 7f8bcd5..2ea5a2d 100644
--- a/filter.c
+++ b/filter.c
@@ -1069,23 +1069,26 @@ html_export_database(FILE *out, struct db_enumerator e)
html_export_write_head(out);
db_enumerate_items(e) {
- fprintf(out, "
");
+ fprintf(out, "
\n");
for(cur = index_elements; cur; cur = cur->next) {
if(cur->type != INDEX_FIELD)
continue;
-
+
get_list_field(e.item, cur, &f);
+ fprintf(out, " ");
+
if(f.type == FIELD_EMAILS) {
- fprintf(out, " | ");
html_print_emails(out, &f);
- fprintf(out, " | ");
- continue;
} else {
- fprintf(out, "%s | ", safe_str(f.data));
+ if (strcmp(safe_str(f.data), "") == 0)
+ fprintf(out, " ");
+ else
+ fprintf(out, "%s", safe_str(f.data));
}
+ fprintf(out, "\n");
}
- fprintf(out, "
\n");
+ fprintf(out, " \n");
}
html_export_write_tail(out);
@@ -1099,22 +1102,45 @@ html_export_write_head(FILE *out)
char *realname = get_real_name(), *str;
struct index_elem *cur;
- fprintf(out, "\n");
- fprintf(out, "\n\n %s's addressbook",
- realname );
- fprintf(out, "\n\n\n");
- fprintf(out, "\n%s's addressbook
\n", realname );
- fprintf(out, "
\n\n");
-
- fprintf(out, "\n");
+ fprintf(out, "\n");
+ fprintf(out, "\n");
+ fprintf(out, "\n");
+ fprintf(out, " \n");
+ fprintf(out, " ");
+ fprintf(out, _("%s's addressbook"), realname );
+ fprintf(out, "\n");
+ fprintf(out, " \n");
+ fprintf(out, "\n");
+ fprintf(out, "\n");
+ fprintf(out, "");
+ fprintf(out, _("%s's addressbook"), realname);
+ fprintf(out, "
\n");
+
+ fprintf(out, "\n");
+ fprintf(out, "\n");
+ fprintf(out, " \n");
for(cur = index_elements; cur; cur = cur->next) {
if(cur->type != INDEX_FIELD)
continue;
get_field_info(cur->d.field.id, NULL, &str, NULL);
- fprintf(out, "%s | ", str);
+
+ fprintf(out, " ");
+
+ if (strcmp(str, "") == 0)
+ fprintf(out, " ");
+ else
+ fprintf(out, "%s", str);
+
+ fprintf(out, " | \n");
}
- fprintf(out, "
\n\n");
+ fprintf(out, " \n");
+ fprintf(out, "\n");
+ fprintf(out, "\n");
free(realname);
}
@@ -1122,8 +1148,9 @@ html_export_write_head(FILE *out)
static void
html_export_write_tail(FILE *out)
{
- fprintf(out, "\n
\n");
- fprintf(out, "\n\n\n");
+ fprintf(out, "
\n");
+ fprintf(out, "\n");
+ fprintf(out, "");
}
/*
@@ -1557,8 +1584,9 @@ static char *vcard_fields[] = {
"NICKNAME", /* NICK */
"URL", /* URL */
"NOTE", /* NOTES */
+ "BDAY", /* ANNIVERSARY */
"N", /* NAME: special case/mapping in vcard_parse_line() */
- NULL /* not implemented: ANNIVERSARY, ITEM_FIELDS */
+ NULL /* ITEM_FIELDS */
};
enum {
@@ -2065,6 +2093,13 @@ vcard_export_item(FILE *out, int item)
free(name);
+ if(db_fget(item, NICK))
+ fprintf(out, "NICKNAME:%s\r\n",
+ safe_str(db_fget(item, NICK)));
+ if(db_fget(item, ANNIVERSARY))
+ fprintf(out, "BDAY:%s\r\n",
+ safe_str(db_fget(item, ANNIVERSARY)));
+
// see rfc6350 section 6.3.1
if(db_fget(item, ADDRESS)) {
fprintf(out, "ADR:;%s;%s;%s;%s;%s;%s\r\n",
@@ -2612,7 +2647,7 @@ parse_custom_format(char *s, char *fmt_string, enum field_types *ft)
cannotparse:
fprintf(stderr, _("%s: invalid format, index %ld\n"), __FUNCTION__, (start - s));
free(fmt_string);
- while(*ft) free(ft--);
+ free(ft);
exit(EXIT_FAILURE);
}
@@ -2688,11 +2723,10 @@ extern char custom_format[FORMAT_STRING_LEN];
static int
custom_export_database(FILE *out, struct db_enumerator e)
{
- char *format_string =
- (char *)malloc(FORMAT_STRING_LEN * sizeof(char*));
+ char *format_string = (char *)malloc(FORMAT_STRING_LEN);
enum field_types *ft =
- (enum field_types *)malloc(FORMAT_STRING_MAX_FIELDS * sizeof(enum field_types *));
+ (enum field_types *)malloc(FORMAT_STRING_MAX_FIELDS * sizeof(enum field_types));
parse_custom_format(custom_format, format_string, ft);