]> git.deb.at Git - pkg/abook.git/blobdiff - filter.c
ldif: removed ldif_fix_string()
[pkg/abook.git] / filter.c
index 31b6f2d259fab66e7a4c58fe4705b87541409310..ecbcfd953d6db411267f9b04f12f0be6cd486757 100644 (file)
--- 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,