From ace9d8cadb7bf985efed16ce6de6ee04dba3879e Mon Sep 17 00:00:00 2001 From: June McEnroe Date: Sat, 12 Mar 2022 20:17:28 -0500 Subject: Fix r on empty buffer --- edit.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/edit.c b/edit.c index 15188a6..4a2008d 100644 --- a/edit.c +++ b/edit.c @@ -235,7 +235,7 @@ static int viInsert(struct Edit *e, wchar_t ch) { if (!isvalid(ch)) return -1; e->buf[e->pos] = ch; e->pos++; - } else if (e->vi.verb == 'r' && e->pos < e->len) { + } else if (e->vi.verb == 'r') { if (!isvalid(ch)) return -1; size_t pos = e->pos; for (unsigned i = 0; i < (e->vi.count ?: 1); ++i) { @@ -433,6 +433,9 @@ int main(void) { assert(eq(&e, "y\0yo")); vi(&e, "3rz"); assert(eq(&e, "yz\0z")); + fix(&e, ""); + vi(&e, "\33rx"); + assert(eq(&e, "\0")); fix(&e, "foo bar"); vi(&e, "\0330"); -- cgit 1.4.1