+ } else if (PropertyName == wxT("SORT-AS")){
+
+ if (PropertyValue.Left(1) == wxT("\"") && PropertyValue.Right(1) == wxT("\"") &&
+ PropertyValue.Len() >= 3){
+ NameDisplayAs = PropertyValue.Mid(1, (PropertyValue.Len() - 2));
+ }
+
+ } else if (!PropertyName.IsEmpty() && !PropertyValue.IsEmpty()){
+
+ if (FirstToken == TRUE){
+
+ PropertyTokens.Append(PropertyName + wxT("=") + PropertyValue);
+ FirstToken = FALSE;
+
+ } else {
+
+ PropertyTokens.Append(wxT(";") + PropertyName + wxT("=") + PropertyValue);
+
+ }
+
+ }
+
+ }
+
+ // 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;
+