From 948b8e9bcfda6d4a789f4635ccc4c43ddb782e37 Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sat, 14 Jun 2014 14:08:28 +0000 Subject: [PATCH] Putting the cursor back in front of a backwards cut, where it was when the cut was made. Patch by Mark Majeres, edited by Benno Schulenberg. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@4966 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 4 ++++ src/nano.h | 2 +- src/text.c | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3c9a6807..f8b55a18 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2014-06-14 Mark Majeres + * src/nano.h, src/text.c (undo_cut, update_undo): When undoing a + backwards cut, put the cursor back in front of it, where it was. + 2014-06-13 Benno Schulenberg * src/nano.c (do_input): Repositioning the cursor with the mouse (result == 0) should break a series of ^Ks. diff --git a/src/nano.h b/src/nano.h index 4e9a3194..cb2d196a 100644 --- a/src/nano.h +++ b/src/nano.h @@ -574,7 +574,7 @@ enum /* Extra bits for the undo function. */ #define UNdel_del (1<<0) #define UNdel_backspace (1<<1) -#define UNsplit_completed (1<<2) +#define UNcut_marked_backwards (1<<2) #define UNcut_cutline (1<<3) #endif /* !NANO_TINY */ diff --git a/src/text.c b/src/text.c index 6e025765..271ad2d2 100644 --- a/src/text.c +++ b/src/text.c @@ -396,7 +396,7 @@ void undo_cut(undo *u) free_filestruct(cutbuffer); cutbuffer = NULL; - if (u->xflags == UNcut_cutline) + if (u->xflags == UNcut_cutline || u->xflags == UNcut_marked_backwards) goto_line_posx(u->mark_begin_lineno, u->mark_begin_x); } @@ -1072,6 +1072,7 @@ void update_undo(undo_type action) ssize_t line = u->lineno; u->lineno = u->mark_begin_lineno; u->mark_begin_lineno = line; + u->xflags = UNcut_marked_backwards; } } else if (!ISSET(CUT_TO_END)) { /* Compute cutbottom for the uncut using our copy. */ -- 2.39.5