r/o

3cc829f0154301e79e43623db7afeca992bc6027 parent ba4d7d5e

authored by Yuki Izumi <yuki@kivikakk.ee> 10 years ago

Delete at end of line.

qb.c | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/qb.c b/qb.c
index 5791da7..1dcdeaf 100644
--- a/qb.c
+++ b/qb.c
@@ -125,6 +125,24 @@ static void delete_at(doc_line_t *d, int offset, int dir) {
bcopy(d->line + offset, d->line + offset - 1, d->stored - offset);
--d->stored;
--cursor_x;
+ } else if (offset == d->stored) {
+ doc_line_t *n = d->next;
+
+ if (!n) {
+ return;
+ }
+
+ ensure_available(d, n->stored);
+ memcpy(d->line + d->stored, n->line, n->stored);
+ d->stored += n->stored;
+
+ d->next = n->next;
+ if (n->next) {
+ n->next->prev = d;
+ }
+
+ free_doc_line(n);
+ --total_lines;
}
}