ProcessNameValue(&PropertyData, &PropertyName, &PropertyValue);
intPrevValue = intiter->second;
- CaptureString(&PropertyValue, FALSE);
+ if (PropertyName == "GEO"){
+
+ CaptureString(&PropertyValue, TRUE);
+
+ } else {
+
+ CaptureString(&PropertyValue, FALSE);
+
+ }
// Process properties.
std::map<int, wxString> *IMListAltID = NULL;
std::map<int, wxString> *IMListPID = NULL;
std::map<int, wxString> *IMListTokens = NULL;
- std::map<int, wxString> *IMListMediatype = NULL;
+ std::map<int, wxString> *IMListMediatype = NULL;
+ std::map<int, wxString> *IMListTypeInfo = NULL;
std::map<int, int> *IMListPref = NULL;
switch(PropType){
IMListPID = &GeneralIMListPID;
IMListTokens = &GeneralIMListTokens;
IMListMediatype = &GeneralIMListMediatype;
+ IMListTypeInfo = &GeneralIMListTypeInfo;
IMListPref = &GeneralIMListPref;
break;
case PROPERTY_HOME:
IMListAltID = &HomeIMListAltID;
IMListPID = &HomeIMListPID;
IMListTokens = &HomeIMListTokens;
- IMListMediatype = &HomeIMListMediatype;
+ IMListMediatype = &HomeIMListMediatype;
+ IMListTypeInfo = &HomeIMListTypeInfo;
IMListPref = &HomeIMListPref;
break;
case PROPERTY_WORK:
IMListAltID = &BusinessIMListAltID;
IMListPID = &BusinessIMListPID;
IMListTokens = &BusinessIMListTokens;
- IMListMediatype = &BusinessIMListMediatype;
+ IMListMediatype = &BusinessIMListMediatype;
+ IMListTypeInfo = &BusinessIMListTypeInfo;
IMListPref = &BusinessIMListPref;
break;
}
}
- IMList->insert(std::make_pair(*IMCount, PropertySeg2));
+ wxStringTokenizer IMPPSplitData(PropertySeg2, wxT(":"));
+
+ if (IMPPSplitData.CountTokens() > 1){
+
+ IMListTypeInfo->insert(std::make_pair(*IMCount, IMPPSplitData.GetNextToken()));
+ IMList->insert(std::make_pair(*IMCount, IMPPSplitData.GetString()));
+
+ } else {
+
+ IMList->insert(std::make_pair(*IMCount, PropertySeg2));
+ IMListTypeInfo->insert(std::make_pair(*IMCount, "none"));
+
+ }
// Add the name token data.
TypeSplitLength.insert(std::make_pair(intSplitsFound, intSplitSize));
int intTypeSeek = 0;
+ bool TypeFound = FALSE;
for (std::map<int, int>::iterator typeiter = TypeSplitPoints.begin();
typeiter != TypeSplitPoints.end(); ++typeiter){
-
+
wxString TypePropertyName;
TSLiter = TypeSplitLength.find(typeiter->first);
TelTypeUI.Append(wxT(","));
}
-
- if (TypePropertyName == wxT("home")){
+
+ if (TypePropertyName == wxT("home") && TypeFound == FALSE){
PropType = PROPERTY_HOME;
+ TelTypeUI.Append("home");
+ intTypeSeek++;
+ TypeFound = TRUE;
- } else if (TypePropertyName == wxT("work")){
+ } else if (TypePropertyName == wxT("work") && TypeFound == FALSE){
PropType = PROPERTY_WORK;
-
+ TelTypeUI.Append("work");
+ intTypeSeek++;
+ TypeFound = TRUE;
+
}
-
if (TypePropertyName == wxT("text")){
TelTypeUI.Append(_("text"));
} else if (TypePropertyName == wxT("cell")){
- TelTypeUI.Append(_("mobile"));
+ TelTypeUI.Append(_("cell"));
intTypeSeek++;
} else if (TypePropertyName == wxT("video")){
std::map<int, wxString> *TelephoneListAltID = NULL;
std::map<int, wxString> *TelephoneListPID = NULL;
std::map<int, wxString> *TelephoneListTokens = NULL;
- std::map<int, wxString> *TelephoneListTypeInfo = NULL;
+ std::map<int, wxString> *TelephoneListTypeInfo = NULL;
+ std::map<int, wxString> *TelephoneListDataType = NULL;
std::map<int, int> *TelephoneListPref = NULL;
switch(PropType){
TelephoneListPID = &GeneralTelephoneListPID;
TelephoneListTokens = &GeneralTelephoneListTokens;
TelephoneListTypeInfo = &GeneralTelephoneListTypeInfo;
+ TelephoneListDataType = &GeneralTelephoneListDataType;
TelephoneListPref = &GeneralTelephoneListPref;
break;
case PROPERTY_HOME:
TelephoneListAltID = &HomeTelephoneListAltID;
TelephoneListPID = &HomeTelephoneListPID;
TelephoneListTokens = &HomeTelephoneListTokens;
- TelephoneListTypeInfo = &HomeTelephoneListTypeInfo;
+ TelephoneListTypeInfo = &HomeTelephoneListTypeInfo;
+ TelephoneListDataType = &HomeTelephoneListDataType;
TelephoneListPref = &HomeTelephoneListPref;
break;
case PROPERTY_WORK:
TelephoneListAltID = &BusinessTelephoneListAltID;
TelephoneListPID = &BusinessTelephoneListPID;
TelephoneListTokens = &BusinessTelephoneListTokens;
- TelephoneListTypeInfo = &BusinessTelephoneListTypeInfo;
+ TelephoneListTypeInfo = &BusinessTelephoneListTypeInfo;
+ TelephoneListDataType = &BusinessTelephoneListDataType;
TelephoneListPref = &BusinessTelephoneListPref;
break;
}
}
- TelephoneList->insert(std::make_pair(*TelephoneCount, PropertySeg2));
- TelephoneListTypeInfo->insert(std::make_pair(*TelephoneCount, TelTypeUI));
+ // Check for the type information and split it down.
+
+ wxStringTokenizer TelSplitData(PropertySeg2, wxT(":"));
+
+ if (TelSplitData.CountTokens() > 1){
+
+ TelephoneListDataType->insert(std::make_pair(*TelephoneCount, TelSplitData.GetNextToken()));
+ TelephoneList->insert(std::make_pair(*TelephoneCount, TelSplitData.GetString()));
+
+ } else {
+ TelephoneList->insert(std::make_pair(*TelephoneCount, PropertySeg2));
+ TelephoneListDataType->insert(std::make_pair(*TelephoneCount, "tel"));
+
+ }
+
+ TelephoneListTypeInfo->insert(std::make_pair(*TelephoneCount, TelTypeUI));
+
// Add the name token data.
if (!PropertyTokens.IsEmpty()){
std::map<int, wxString> *GeopositionListPID = NULL;
std::map<int, wxString> *GeopositionListTokens = NULL;
std::map<int, wxString> *GeopositionListMediatype = NULL;
+ std::map<int, wxString> *GeopositionListDataType = NULL;
std::map<int, int> *GeopositionListPref = NULL;
switch(PropType){
GeopositionListPID = &GeneralGeographyListPID;
GeopositionListTokens = &GeneralGeographyListTokens;
GeopositionListMediatype = &GeneralGeographyListMediatype;
+ GeopositionListDataType = &GeneralGeographyListDataType;
GeopositionListPref = &GeneralGeographyListPref;
break;
case PROPERTY_HOME:
GeopositionListPID = &HomeGeographyListPID;
GeopositionListTokens = &HomeGeographyListTokens;
GeopositionListMediatype = &HomeGeographyListMediatype;
+ GeopositionListDataType = &HomeGeographyListDataType;
GeopositionListPref = &HomeGeographyListPref;
break;
case PROPERTY_WORK:
GeopositionListAltID = &BusinessGeographyListAltID;
GeopositionListPID = &BusinessGeographyListPID;
GeopositionListTokens = &BusinessGeographyListTokens;
- GeopositionListMediatype = &BusinessGeographyListMediatype;
+ GeopositionListMediatype = &BusinessGeographyListMediatype;
+ GeopositionListDataType = &BusinessGeographyListDataType;
GeopositionListPref = &BusinessGeographyListPref;
break;
}
ProcessTokens(&PropertyName, &PropertyValue, &PropertyTokens, &FirstToken);
}
+
+ wxStringTokenizer GeoSplitData(PropertySeg2, wxT(":"));
- GeopositionList->insert(std::make_pair(*GeographicCount, PropertySeg2));
+ if (GeoSplitData.CountTokens() > 1){
+
+ GeopositionListDataType->insert(std::make_pair(*GeographicCount, GeoSplitData.GetNextToken()));
+ GeopositionList->insert(std::make_pair(*GeographicCount, GeoSplitData.GetString()));
+ } else {
+
+ GeopositionList->insert(std::make_pair(*GeographicCount, PropertySeg2));
+ GeopositionListDataType->insert(std::make_pair(*GeographicCount, "tel"));
+
+ }
+
// Add the name token data.
if (!PropertyTokens.IsEmpty()){