From 749c51c25f73a4bc2c1a8161168b8fa07de2a045 Mon Sep 17 00:00:00 2001 From: Steve Brokenshire Date: Mon, 28 Dec 2015 04:05:41 +0000 Subject: [PATCH] Replaced string processing in NICKNAME with ProcessStringValue. --- source/contacteditor/ContactDataObject.cpp | 88 +++++++--------------- 1 file changed, 29 insertions(+), 59 deletions(-) diff --git a/source/contacteditor/ContactDataObject.cpp b/source/contacteditor/ContactDataObject.cpp index 56b2846..fab6aaf 100644 --- a/source/contacteditor/ContactDataObject.cpp +++ b/source/contacteditor/ContactDataObject.cpp @@ -1067,39 +1067,22 @@ void ContactDataObject::ProcessClientPIDMap(wxString PropertySeg1, wxString Prop intPrevValue = intiter->second; // Process properties. - - size_t intPropertyValueLen = PropertyValue.Len(); - - if (PropertyValue.Mid((intPropertyValueLen - 1), 1) == wxT("\"")){ - - PropertyValue.Trim(); - PropertyValue.RemoveLast(); - - } - - if (PropertyValue.Mid(0, 1) == wxT("\"")){ - - PropertyValue.Remove(0, 1); - - } - + CaptureString(&PropertyValue, FALSE); - - if (PropertyName.IsEmpty() || PropertyName.IsEmpty()){ - - continue; - - } + + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){ - if (FirstToken == TRUE){ + if (FirstToken == TRUE){ - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - } else { + } else { - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); + } + } } @@ -1180,6 +1163,7 @@ void ContactDataObject::ProcessNickname(wxString PropertySeg1, wxString Property wxString PropertyValue; wxString PropertyTokens; bool FirstToken = TRUE; + bool PropertyMatched = FALSE; for (std::map::iterator intiter = SplitPoints.begin(); intiter != SplitPoints.end(); ++intiter){ @@ -1196,45 +1180,31 @@ void ContactDataObject::ProcessNickname(wxString PropertySeg1, wxString Property CaptureString(&PropertyValue, FALSE); - if (PropertyName == wxT("ALTID")){ - - NicknamesListAltID->erase(*NicknameCount); - NicknamesListAltID->insert(std::make_pair(*NicknameCount, PropertyValue)); + ProcessStringValue(&PropertyName, "ALTID", NicknamesListAltID, &PropertyValue, NicknameCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "PID", NicknamesListPID, &PropertyValue, NicknameCount, &PropertyMatched); + ProcessStringValue(&PropertyName, "LANGUAGE", NicknamesListLanguage, &PropertyValue, NicknameCount, &PropertyMatched); + ProcessIntegerValue(&PropertyName, "PREF", NicknamesListPref, &PropertyValue, NicknameCount, &PropertyMatched); - } else if (PropertyName == wxT("PID")){ - - NicknamesListPID->erase(*NicknameCount); - NicknamesListPID->insert(std::make_pair(*NicknameCount, PropertyValue)); - - } else if (PropertyName == wxT("PREF")){ - - ProcessIntegerValue(NicknamesListPref, &PropertyValue, NicknameCount); + if (PropertyMatched == TRUE){ - } else if (PropertyName == wxT("LANGUAGE")){ - - NicknamesListLanguage->erase(*NicknameCount); - NicknamesListLanguage->insert(std::make_pair(*NicknameCount, PropertyValue)); - - } else { + PropertyMatched = FALSE; + continue; - // Something else we don't know about so append - // to the tokens variable. + } - if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty() && PropertyName != wxT("TYPE")){ + + if (FirstToken == TRUE){ - if (FirstToken == TRUE){ - - PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); - FirstToken = FALSE; - - } else { - - PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); - - } + PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue); + FirstToken = FALSE; - } + } else { + PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue); + + } + } } -- 2.39.2