Always reset IncompleteCkInfos.

This commit is contained in:
BDisp
2024-11-23 13:33:01 +00:00
parent e1d727511a
commit be9cb6bbbb
2 changed files with 11 additions and 1 deletions

View File

@@ -331,6 +331,12 @@ public static class EscSeqUtils
break; break;
case "CSI": case "CSI":
// Reset always IncompleteCkInfos
if (IncompleteCkInfos is { })
{
IncompleteCkInfos = null;
}
if (!string.IsNullOrEmpty (code) && code == "<") if (!string.IsNullOrEmpty (code) && code == "<")
{ {
GetMouse (cki, out buttonState, out pos, continuousButtonPressedHandler); GetMouse (cki, out buttonState, out pos, continuousButtonPressedHandler);

View File

@@ -954,6 +954,8 @@ public class EscSeqUtilsTests
ConsoleKeyInfo expectedCki = default; ConsoleKeyInfo expectedCki = default;
Assert.Null (EscSeqUtils.IncompleteCkInfos);
EscSeqUtils.DecodeEscSeq ( EscSeqUtils.DecodeEscSeq (
ref _newConsoleKeyInfo, ref _newConsoleKeyInfo,
ref _key, ref _key,
@@ -983,7 +985,9 @@ public class EscSeqUtilsTests
Assert.False (_isResponse); Assert.False (_isResponse);
Assert.Equal (0, (int)_arg1); Assert.Equal (0, (int)_arg1);
Assert.Equal (Point.Empty, _arg2); Assert.Equal (Point.Empty, _arg2);
Assert.NotNull (EscSeqUtils.IncompleteCkInfos);
Assert.Equal (_cki, EscSeqUtils.IncompleteCkInfos); Assert.Equal (_cki, EscSeqUtils.IncompleteCkInfos);
Assert.Contains (EscSeqUtils.ToString (EscSeqUtils.IncompleteCkInfos), EscSeqUtils.ToString (_cki));
_cki = EscSeqUtils.InsertArray ( _cki = EscSeqUtils.InsertArray (
EscSeqUtils.IncompleteCkInfos, EscSeqUtils.IncompleteCkInfos,
@@ -1032,8 +1036,8 @@ public class EscSeqUtilsTests
Assert.True (_isResponse); Assert.True (_isResponse);
Assert.Equal (0, (int)_arg1); Assert.Equal (0, (int)_arg1);
Assert.Equal (Point.Empty, _arg2); Assert.Equal (Point.Empty, _arg2);
Assert.Null (EscSeqUtils.IncompleteCkInfos);
Assert.NotEqual (_cki, EscSeqUtils.IncompleteCkInfos); Assert.NotEqual (_cki, EscSeqUtils.IncompleteCkInfos);
Assert.Contains (EscSeqUtils.ToString (EscSeqUtils.IncompleteCkInfos), EscSeqUtils.ToString (_cki));
ClearAll (); ClearAll ();
} }