History

GSF.Core: Fixed issue in StringExtensions.ParseKeyValuePairs where certain character encodings would be decoded automatically by the parser.

StephenCWills committed 11 years ago

Commit 90c35bc1 parent 95638601 file · +9 −2Browse files

Unified · Split

Source/Libraries/GSF.Core/StringExtensions.cs+9−2
@@ -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 else408 else
406 escapedValue.Append(character);409 escapedValue.Append(character);
407 }410 }
408 else411 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 dictionary448 // Add key/value pair to dictionary
442 if (ignoreDuplicateKeys)449 if (ignoreDuplicateKeys)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t