Showing the changes to Source/Libraries/GSF.Core/StringExtensions.cs (1 of 1 file). Show all
Unified · Split
| @@ -343,6 +343,7 @@ namespace GSF · 342 unmodified lines | |||
| 343 | string escapedKeyValueDelimiter = keyValueDelimiter.RegexEncode(); | 343 | string escapedKeyValueDelimiter = keyValueDelimiter.RegexEncode(); |
| 344 | string escapedStartValueDelimiter = startValueDelimiter.RegexEncode(); | 344 | string escapedStartValueDelimiter = startValueDelimiter.RegexEncode(); |
| 345 | string escapedEndValueDelimiter = endValueDelimiter.RegexEncode(); | 345 | string escapedEndValueDelimiter = endValueDelimiter.RegexEncode(); |
| 346 | string backslashDelimiter = '\\'.RegexEncode(); | ||
| 346 | string[] elements; | 347 | string[] elements; |
| 347 | string key, unescapedValue; | 348 | string key, unescapedValue; |
| 348 | bool valueEscaped = false; | 349 | bool valueEscaped = false; |
| @@ -402,12 +403,17 @@ namespace GSF · 53 unmodified lines | |||
| 402 | escapedValue.Append(escapedStartValueDelimiter); | 403 | escapedValue.Append(escapedStartValueDelimiter); |
| 403 | else if (character == endValueDelimiter) | 404 | else if (character == endValueDelimiter) |
| 404 | escapedValue.Append(escapedEndValueDelimiter); | 405 | escapedValue.Append(escapedEndValueDelimiter); |
| 406 | else if (character == '\\') | ||
| 407 | escapedValue.Append(backslashDelimiter); | ||
| 405 | else | 408 | else |
| 406 | escapedValue.Append(character); | 409 | escapedValue.Append(character); |
| 407 | } | 410 | } |
| 408 | else | 411 | else |
| 409 | { | 412 | { |
| 410 | escapedValue.Append(character); | 413 | if (character == '\\') |
| 414 | escapedValue.Append(backslashDelimiter); | ||
| 415 | else | ||
| 416 | escapedValue.Append(character); | ||
| 411 | } | 417 | } |
| 412 | } | 418 | } |
| 413 | 419 | ||
| @@ -436,7 +442,8 @@ namespace GSF · 22 unmodified lines | |||
| 436 | Replace(escapedParameterDelimiter, parameterDelimiter.ToString()). | 442 | Replace(escapedParameterDelimiter, parameterDelimiter.ToString()). |
| 437 | Replace(escapedKeyValueDelimiter, keyValueDelimiter.ToString()). | 443 | Replace(escapedKeyValueDelimiter, keyValueDelimiter.ToString()). |
| 438 | Replace(escapedStartValueDelimiter, startValueDelimiter.ToString()). | 444 | Replace(escapedStartValueDelimiter, startValueDelimiter.ToString()). |
| 439 | Replace(escapedEndValueDelimiter, endValueDelimiter.ToString()); | 445 | Replace(escapedEndValueDelimiter, endValueDelimiter.ToString()). |
| 446 | Replace(backslashDelimiter, "\\"); | ||
| 440 | 447 | ||
| 441 | // Add key/value pair to dictionary | 448 | // Add key/value pair to dictionary |
| 442 | if (ignoreDuplicateKeys) | 449 | if (ignoreDuplicateKeys) |