]> git.wh0rd.org Git - nano.git/commitdiff
Putting the cursor back in front of a backwards cut,
authorBenno Schulenberg <bensberg@justemail.net>
Sat, 14 Jun 2014 14:08:28 +0000 (14:08 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Sat, 14 Jun 2014 14:08:28 +0000 (14:08 +0000)
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
src/nano.h
src/text.c

index 3c9a6807ff88b14549546610b5197d39873e626d..f8b55a18d1fd5e411a9d01fc4d0e83957331e26d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2014-06-14  Mark Majeres  <mark@engine12.com>
+       * 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  <bensberg@justemail.net>
        * src/nano.c (do_input): Repositioning the cursor with the mouse
        (result == 0) should break a series of ^Ks.
index 4e9a3194d4eaa66a8406b69009205b1807c68fef..cb2d196a30db4a40b6f7a14593783a6f7dc3efc8 100644 (file)
@@ -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 */
 
index 6e02576516b546d74a8489ff5d975f3cdefd7160..271ad2d289ae738d4eee9d41104b41cc692d4817 100644 (file)
@@ -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. */