From b8f2c54675cfd4c89c13941503fb23eda0ad082d Mon Sep 17 00:00:00 2001 From: Albert Cervin Date: Wed, 26 Nov 2025 22:07:54 +0100 Subject: Improve undo a bit by using non-alphanumeric chars When typing a non-alphanumeric char manually, we add a undo boundary to not be too greedy. --- src/dged/buffer_view.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'src/dged') diff --git a/src/dged/buffer_view.c b/src/dged/buffer_view.c index 76a3b5b..2d38ac8 100644 --- a/src/dged/buffer_view.c +++ b/src/dged/buffer_view.c @@ -1,3 +1,4 @@ +#include #include #include "buffer.h" @@ -5,7 +6,6 @@ #include "display.h" #include "settings.h" #include "timers.h" -#include "utf8.h" HOOK_IMPL(modeline, modeline_hook_cb); @@ -61,8 +61,11 @@ void buffer_view_add(struct buffer_view *view, uint8_t *txt, uint32_t nbytes) { maybe_delete_region(view); struct location before = view->dot; view->dot = buffer_add(view->buffer, view->dot, txt, nbytes); + if (view->dot.line > before.line) { buffer_push_undo_boundary(view->buffer); + } else if (nbytes == 1 && !isalnum(txt[0])) { + buffer_push_undo_boundary(view->buffer); } } -- cgit v1.2.3