Skip to content

Commit f657c8b

Browse files
springcompdaxian-dbw
authored andcommitted
Fix an assertion in debug build that crashes PSReadLine (#1199)
1 parent e7f28ff commit f657c8b

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

PSReadLine/ViRegister.cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,10 @@ public void Record(StringBuilder buffer)
6060
/// <param name="count"></param>
6161
public void Record(StringBuilder buffer, int offset, int count)
6262
{
63-
System.Diagnostics.Debug.Assert(offset >= 0 && offset < buffer.Length);
63+
System.Diagnostics.Debug.Assert(
64+
offset >= 0 &&
65+
(buffer.Length == 0 || offset < buffer.Length)
66+
);
6467
System.Diagnostics.Debug.Assert(offset + count <= buffer.Length);
6568

6669
HasLinewiseText = false;

test/YankPasteTest.VI.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,16 @@ public void ViPasteAfterDeleteWord()
189189
));
190190
}
191191

192+
[SkippableFact()]
193+
public void ViDeleteLine_EmptyBuffer_Defect1197()
194+
{
195+
TestSetup(KeyMode.Vi);
196+
197+
Test("", Keys(
198+
_.Escape, "dd", CheckThat(() => AssertLineIs(""))
199+
));
200+
}
201+
192202
[SkippableFact]
193203
public void ViPasteAfterDeleteLine()
194204
{

0 commit comments

Comments
 (0)