about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2022-03-12 20:17:28 -0500
committerJune McEnroe <june@causal.agency>2022-03-12 20:17:28 -0500
commitace9d8cadb7bf985efed16ce6de6ee04dba3879e (patch)
tree81f32b727f691db3d1981a669e1de98266b6c0dc
parentImplement $, 0, A, I, a (diff)
downloadcatgirl-ace9d8cadb7bf985efed16ce6de6ee04dba3879e.tar.gz
catgirl-ace9d8cadb7bf985efed16ce6de6ee04dba3879e.zip
Fix r on empty buffer
-rw-r--r--edit.c5
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");
ct'>Exit focus and paste modes on err exitJune McEnroe 2020-02-11Add startup GPLv3 note and URLJune McEnroe I am a degenerate. 2020-02-11Make sure -D_GNU_SOURCE ends up in CFLAGS on LinuxJune McEnroe 2020-02-11Add note about setting PKG_CONFIG_PATHJune McEnroe 2020-02-11Rename query ID on nick changeJune McEnroe 2020-02-11Call completeClear when closing a windowJune McEnroe 2020-02-11Don't insert color codes for non-mentionsJune McEnroe 2020-02-11Take first two words in colorMentionsJune McEnroe This lets phrases like "hi june" get colored, but still doesn't get carried away. 2020-02-11Use time_t for save signatureJune McEnroe It's actually more likely to be 64-bit than size_t anyway, and it eliminates some helper functions. Also don't error when reading an empty save file. 2020-02-11Set self.nick to * initiallyJune McEnroe Allows removing a bunch of checks that self.nick is set, and it's what the server usually calls you before registration. Never highlight notices as mentions. 2020-02-11Define ColorCap instead of hardcoding 100June McEnroe 2020-02-11Move hash to top of chat.hJune McEnroe 2020-02-11Move base64 out of chat.hJune McEnroe 2020-02-11Move XDG_SUBDIR out of chat.hJune McEnroe 2020-02-11Fix whois idle unit calculationJune McEnroe Rookie mistake. 2020-02-11Cast towupper to wchar_tJune McEnroe For some reason it takes and returns wint_t... 2020-02-11Cast set but unused variables to voidJune McEnroe 2020-02-11Declare strlcatJune McEnroe 2020-02-11Check if VDSUSP existsJune McEnroe 2020-02-11Fix completeReplace iterationJune McEnroe 2020-02-11Use pkg(8) to configure on FreeBSDJune McEnroe 2020-02-11Remove legacy codeJune McEnroe 2020-02-11Add INSTALLING section to READMEJune McEnroe