From cc89513f141da926f97082d873b98a393874e203 Mon Sep 17 00:00:00 2001
From: David Lawrence Ramsey <pooka109@gmail.com>
Date: Tue, 23 Nov 2004 23:42:12 +0000
Subject: [PATCH] oops; Pico's adding a new magicline unconditionally when
 uncutting leaves the cursor on the current magicline is actually consistent
 (and hence not a bug), so duplicate that behavior again

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2130 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
---
 ChangeLog |  4 ----
 src/cut.c | 10 +++++++++-
 2 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index d2fcef3e..70c3b7a7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -16,10 +16,6 @@ CVS code -
   do_cut_text()
 	- If keep_cutbuffer is FALSE, only blow away the text in the
 	  cutbuffer if the cutbuffer isn't empty. (DLR)
-  do_uncut_text()
-	- No longer duplicate Pico's adding an extra magicline to the
-	  file if uncutting leaves the cursor on the current one, as
-	  it's actually a bug. (DLR)
 - global.c:
   shortcut_init()
 	- Fix misplaced #endif keeping the "Full Justify" shortcut in
diff --git a/src/cut.c b/src/cut.c
index 1d4cac6c..68159250 100644
--- a/src/cut.c
+++ b/src/cut.c
@@ -156,9 +156,17 @@ void do_uncut_text(void)
 	return;
 
     /* Add a copy of the text in the cutbuffer to the current filestruct
-     * at the current cursor position. */
+     * at the current cursor position.  Note that if the text in the
+     * cutbuffer doesn't end in a newline and the current cursor
+     * position is on the magicline, a new magicline will be added. */
     copy_from_filestruct(cutbuffer, cutbottom);
 
+    /* If the text in the cutbuffer does end in a newline and the
+     * current cursor position is on the magicline, add a new magicline
+     * for consistency. */
+    if (current == filebot)
+	new_magicline();
+
     /* Set the current place we want to where the text from the
      * cutbuffer ends. */
     placewewant = xplustabs();
-- 
GitLab