summary refs log tree commit diff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--bin/edi/buffer.c16
-rw-r--r--bin/edi/edi.h1
2 files changed, 17 insertions, 0 deletions
diff --git a/bin/edi/buffer.c b/bin/edi/buffer.c
index e9422951..62f55bee 100644
--- a/bin/edi/buffer.c
+++ b/bin/edi/buffer.c
@@ -66,6 +66,12 @@ void bufferAppend(struct Buffer *buf, wchar_t ch) {
 	buf->slice.len++;
 }
 
+void bufferDelete(struct Buffer *buf) {
+	if (!buf->slice.len) return;
+	buf->slice.len--;
+	buf->len--;
+}
+
 wchar_t *bufferDest(struct Buffer *buf, size_t len) {
 	if (buf->len + len > buf->cap) {
 		while (len > buf->cap) buf->cap *= 2;
@@ -116,6 +122,16 @@ int main() {
 	bufferFree(&buf);
 
 	buf = bufferAlloc(4);
+	bufferInsert(&buf);
+	bufferAppend(&buf, L'A');
+	bufferAppend(&buf, L'B');
+	bufferDelete(&buf);
+	assert(!wcsncmp(L"A", buf.slice.ptr, buf.slice.len));
+	bufferAppend(&buf, L'C');
+	assert(!wcsncmp(L"AC", buf.slice.ptr, buf.slice.len));
+	bufferFree(&buf);
+
+	buf = bufferAlloc(4);
 
 	wchar_t *dest = bufferDest(&buf, 2);
 	dest[0] = L'A';
diff --git a/bin/edi/edi.h b/bin/edi/edi.h
index 9b300739..4e127b94 100644
--- a/bin/edi/edi.h
+++ b/bin/edi/edi.h
@@ -44,6 +44,7 @@ struct Buffer bufferAlloc(size_t cap);
 void bufferFree(struct Buffer *buf);
 void bufferInsert(struct Buffer *buf);
 void bufferAppend(struct Buffer *buf, wchar_t ch);
+void bufferDelete(struct Buffer *buf);
 wchar_t *bufferDest(struct Buffer *buf, size_t len);
 
 struct Table {
indow's hotness. 2020-02-10Always increase unreadLinesJune McEnroe So that if you switch to a window and some new activity happens before you press M-u, it'll still jump to the right place. 2020-02-10Move scroll marker on resizeJune McEnroe 2020-02-10Update line count for words longer than linesJune McEnroe 2020-02-10Simplify mark, heat, unread trackingJune McEnroe 2020-02-10Update prompt when own nick changesJune McEnroe 2020-02-10Match URLs surrounded by parenthesesJune McEnroe But include a pair of parentheses in the URL itself. 2020-02-10Fix M-a so it properly cycles back to where it startedJune McEnroe 2020-02-09Add M-lJune McEnroe 2020-02-09Add /whoisJune McEnroe 2020-02-09Add /msgJune McEnroe