Browse Source

Fix IncompleteCkInfos bug.

BDisp 8 months ago
parent
commit
012d47e28f

+ 2 - 1
Terminal.Gui/ConsoleDrivers/AnsiEscapeSequence/AnsiEscapeSequenceRequestUtils.cs

@@ -1394,7 +1394,8 @@ public static class AnsiEscapeSequenceRequestUtils
             case ConsoleKey.Oem102:
             case ConsoleKey.Oem102:
                 if (keyInfo.KeyChar == 0)
                 if (keyInfo.KeyChar == 0)
                 {
                 {
-                    // If the keyChar is 0, keyInfo.Key value is not a printable character. 
+                    // If the keyChar is 0, keyInfo.Key value is not a printable character.
+                    System.Diagnostics.Debug.Assert (keyInfo.Key == 0);
 
 
                     return KeyCode.Null; // MapToKeyCodeModifiers (keyInfo.Modifiers, KeyCode)keyInfo.Key);
                     return KeyCode.Null; // MapToKeyCodeModifiers (keyInfo.Modifiers, KeyCode)keyInfo.Key);
                 }
                 }

+ 1 - 1
Terminal.Gui/ConsoleDrivers/NetDriver/NetEvents.cs

@@ -125,7 +125,7 @@ internal class NetEvents : IDisposable
 
 
                         if (AnsiEscapeSequenceRequestUtils.IncompleteCkInfos is { })
                         if (AnsiEscapeSequenceRequestUtils.IncompleteCkInfos is { })
                         {
                         {
-                            AnsiEscapeSequenceRequestUtils.InsertArray (AnsiEscapeSequenceRequestUtils.IncompleteCkInfos, _cki);
+                            _cki = AnsiEscapeSequenceRequestUtils.InsertArray (AnsiEscapeSequenceRequestUtils.IncompleteCkInfos, _cki);
                         }
                         }
 
 
                         if ((consoleKeyInfo.KeyChar == (char)KeyCode.Esc && !_isEscSeq)
                         if ((consoleKeyInfo.KeyChar == (char)KeyCode.Esc && !_isEscSeq)

+ 4 - 2
UnitTests/Input/AnsiEscapeSequenceRequestUtilsTests.cs

@@ -1547,12 +1547,14 @@ public class AnsiEscapeSequenceRequestUtilsTests
 
 
         if (index is null)
         if (index is null)
         {
         {
-            Assert.Equal (result, AnsiEscapeSequenceRequestUtils.InsertArray (toIns, cki));
+            cki = AnsiEscapeSequenceRequestUtils.InsertArray (toIns, cki);
         }
         }
         else
         else
         {
         {
-            Assert.Equal (result, AnsiEscapeSequenceRequestUtils.InsertArray (toIns, cki, (int)index));
+            cki = AnsiEscapeSequenceRequestUtils.InsertArray (toIns, cki, (int)index);
         }
         }
+
+        Assert.Equal (result, cki);
     }
     }
 
 
     private void ClearAll ()
     private void ClearAll ()