// Split the name data.
+ int intSplitSeek = 0;
+ int intSplitsFound = 0;
+ int intSplitSize = 0;
+ int intPropertyLen = PropertySeg2.Len();
+
+ std::map<int,wxString> NameValues;
+ intPrevValue = 0;
+
+ for (int i = 0; i <= intPropertyLen; i++){
+
+ if (PropertySeg2.Mid(i, 1) == wxT(";") && PropertySeg2.Mid((i - 1), 1) != wxT("\\")){
+
+ NameValues.insert(std::make_pair(++intSplitsFound, PropertySeg2.Mid(intSplitSeek, intSplitSize)));
+
+ intSplitSeek = i;
+ intSplitSeek++;
+
+ if (intSplitsFound == 4){
+
+ NameValues.insert(std::make_pair(++intSplitsFound, PropertySeg2.Mid(intSplitSeek, wxString::npos)));
+ break;
+
+ }
+
+ intSplitSize = 0;
+ continue;
+
+ }
+
+ intSplitSize++;
+
+ }
+
+ // Split the data into several parts.
+
+ for (std::map<int, wxString>::iterator iter = NameValues.begin();
+ iter != NameValues.end(); ++iter){
+
+ if (iter->first == 1){
+
+ // Deal with family name.
+
+ NameSurname = iter->second;
+
+ } else if (iter->first == 2){
+
+ // Deal with given names.
+
+ NameForename = iter->second;
+
+ } else if (iter->first == 3){
+
+ // Deal with additional names.
+
+ NameOtherNames = iter->second;
+
+ } else if (iter->first == 4){
+
+ // Deal with honorifix prefixes and suffixes.
+
+ NameTitle = iter->second;
+
+ iter++;
+
+ if (iter == NameValues.end()){
+
+ break;
+
+ }
+
+ NameSuffix = iter->second;
+
+ }
+
+ }
+
// Add the name token data.
if (!PropertyTokens.IsEmpty()){
MEMBER;ALTID=35;PID=40;PREF=45;MEDIATYPE=text/plain;EXAMPLE=Meep:7a2af44d-64
31-4797-a55f-d86d56304fda
FN;TYPE=work;LANGUAGE=kw;ALTID=500;PID=40;PREF=45;EXAMPLE=Baaa:Test Contact
-N;ALTID=3;LANGUAGE=kw;SORT-AS="Contact,Test";TEST=Yes:Test
+N;ALTID=3;LANGUAGE=kw;SORT-AS="Contact,Test";TEST=Yes:Contact;Test;Example;R
+ obot;LOONY
END:VCARD
// Check that the name has been read (N).
+ ASSERT_EQ("Contact", TestFile.NameSurname);
ASSERT_EQ("Test", TestFile.NameForename);
+ ASSERT_EQ("Example", TestFile.NameOtherNames);
+ ASSERT_EQ("Robot", TestFile.NameTitle);
+ ASSERT_EQ("LOONY", TestFile.NameSuffix);
// Check the ALTID parameter.