]> git.deb.at Git - pkg/abook.git/blobdiff - filter.c
ldif: Don't process the whole list of ldif fields, once one
[pkg/abook.git] / filter.c
index fd81174bcf102ed6e10db7d81aecf82303dca8f5..ff3e511872f0e2bd3619680fa67c70de7699eff4 100644 (file)
--- a/filter.c
+++ b/filter.c
@@ -29,7 +29,7 @@
 #include "xmalloc.h"
 #include <assert.h>
 
-#ifdef VFORMAT
+#ifdef HAVE_VFORMAT
 #include "vcard.h"
 #endif
 
@@ -297,7 +297,7 @@ import_file(char filtname[FILTNAME_LEN], char *filename)
        if(i < 0)
                return -1;
 
-#ifdef VFORMAT
+#ifdef HAVE_VFORMAT
        // this is a special case for
        // libvformat whose API expects a filename
        if(!strcmp(filtname, "vcard")) {
@@ -631,8 +631,8 @@ ldif_convert(ldif_item item, char *type, char *value)
        }
 
        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(!strcasecmp(ldif_field_names[i], type) && *value) {
+                        if(i == LDIF_ITEM_FIELDS - 1) /* this is a dirty hack */
                                if(safe_strcmp("person", value))
                                        break;
 
@@ -640,6 +640,7 @@ ldif_convert(ldif_item item, char *type, char *value)
                                free(item_fget(item, i));
 
                        item_fput(item, i, xstrdup(value));
+                       break;
                }
        }
 }