+static void
+vcard_parse_name(list_item item, char *line)
+{
+ // store the "N" field into "NAME" *if* no "FN:"
+ // value has already been stored here
+ if(item[0]) return;
+
+ int i = -1;
+ item[0] = vcard_get_line_element(line, VCARD_VALUE);
+ // "N:" can be multivalued => replace ';' separators by ' '
+ while(item[0][++i]) if(item[0][i] == ';') item[0][i] = ' ';
+
+ // http://www.daniweb.com/software-development/c/code/216919
+ char *original = item[0], *p = original;
+ int trimmed = 0;
+ do {
+ if (*original != ' ' || trimmed) {
+ trimmed = 1; *p++ = *original;
+ }
+ } while(*original++);
+}
+