- } else if (!strncasecmp(val, "FN:", 3)) {
- if (vcard->full_name)
- break;
- if (len - 3)
- vcard->full_name = silc_memdup(val + 3, len - 3);
- } else if (!strncasecmp(val, "N:", 2)) {
+ goto next;
+ }
+ if (!strncasecmp(val, VCARD_FOOTER, strlen(VCARD_FOOTER))) {
+ has_end = TRUE;
+ goto next;
+ }
+
+ /* Get single fields */
+ VCARD_FIELD(val, "FN:", vcard->full_name);
+ VCARD_FIELD(val, "NICKNAME:", vcard->nickname);
+ VCARD_FIELD(val, "BDAY:", vcard->bday);
+ VCARD_FIELD(val, "TITLE:", vcard->title);
+ VCARD_FIELD(val, "ROLE:", vcard->role);
+ VCARD_FIELD(val, "CATEGORIES:", vcard->categories);
+ VCARD_FIELD(val, "CLASS:", vcard->catclass);
+ VCARD_FIELD(val, "URL:", vcard->url);
+ VCARD_FIELD(val, "LABEL;", vcard->label);
+ VCARD_FIELD(val, "NOTE:", vcard->note);
+ VCARD_FIELD(val, "REV:", vcard->rev);
+
+ /* Get multi-column fields */
+
+ if (!strncasecmp(val, "N:", 2)) {