X-Git-Url: https://git.deb.at/w?a=blobdiff_plain;f=filter.c;h=ecbcfd953d6db411267f9b04f12f0be6cd486757;hb=29712efb58a9520824b4b0d7d1b9b9e2d1f59694;hp=31b6f2d259fab66e7a4c58fe4705b87541409310;hpb=2f827e0ef00d2c90e00adf976147faaa448b1651;p=pkg%2Fabook.git diff --git a/filter.c b/filter.c index 31b6f2d..ecbcfd9 100644 --- a/filter.c +++ b/filter.c @@ -503,8 +503,6 @@ export_file(char filtname[FILTNAME_LEN], char *filename) #include "ldif.h" -static void ldif_fix_string(char *str); - /* During LDIF import we need more fields than the ITEM_FIELDS of a *list_item. Eg: "objectclass" to test valid records, ... @@ -789,8 +787,6 @@ ldif_parse_file(FILE *handle) continue; /* just skip the errors */ } - ldif_fix_string(value); - ldif_convert(item, type, value); xfree(line); @@ -802,19 +798,6 @@ ldif_parse_file(FILE *handle) return 0; } -static void -ldif_fix_string(char *str) -{ - int i, j; - - for(i = 0, j = 0; j < (int)strlen(str); i++, j++) - str[i] = ( str[j] == (char)0xc3 ? - (char) str[++j] + (char) 0x40 : - str[j] ); - - str[i] = 0; -} - /* * end of ldif import */ @@ -998,6 +981,7 @@ static int ldif_export_database(FILE *out, struct db_enumerator e) { char email[MAX_EMAILSTR_LEN]; + abook_list *emails, *em; fprintf(out, "version: 1\n"); @@ -1018,10 +1002,15 @@ ldif_export_database(FILE *out, struct db_enumerator e) for(j = 0; j < ITEM_FIELDS; j++) { if(j == EMAIL) { - if(*email) // don't dump an empty email field - ldif_fput_type_and_value(out, - ldif_field_names[j], - email); + if(*email) { + tmp = db_email_get(e.item); + emails = csv_to_abook_list(tmp); + free(tmp); + for(em = emails; em; em = em->next) + ldif_fput_type_and_value(out, + ldif_field_names[EMAIL], + em->data); + } } else if(db_fget(e.item,j)) { ldif_fput_type_and_value(out,