diff options
author | June McEnroe <june@causal.agency> | 2022-03-12 20:17:28 -0500 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2022-03-12 20:17:28 -0500 |
commit | ace9d8cadb7bf985efed16ce6de6ee04dba3879e (patch) | |
tree | 81f32b727f691db3d1981a669e1de98266b6c0dc | |
parent | Implement $, 0, A, I, a (diff) | |
download | catgirl-ace9d8cadb7bf985efed16ce6de6ee04dba3879e.tar.gz catgirl-ace9d8cadb7bf985efed16ce6de6ee04dba3879e.zip |
Fix r on empty buffer
-rw-r--r-- | edit.c | 5 |
1 files changed, 4 insertions, 1 deletions
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"); |