From 499c2af3853c25539278eabb23f409bac37b7494 Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
Date: Thu, 29 Oct 2015 17:27:33 +0000
Subject: [PATCH] Removing an 'if' that will never be true, and removing some
 assignments that have already been done.

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

diff --git a/ChangeLog b/ChangeLog
index 785da688..d4d38b88 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -4,6 +4,8 @@
 	typing text is broken by an undo+redo.  Fixes Savannah bug #46323.
 	* src/text.c (do_redo): Check for "nothing to redo" earlier, so we
 	can restore the possible warning about an internal error.
+	* src/text.c (add_undo): Remove an 'if' that will never be true,
+	and remove some assignments that have already been done.
 
 2015-10-29  David Lawrence Ramsey  <pooka109@gmail.com>
 	* src/files.c (do_writeout), src/nano.c (no_current_file_name_warning,
diff --git a/src/text.c b/src/text.c
index c24ddeb1..5c1c8518 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1026,12 +1026,8 @@ void add_undo(undo_type action)
 	if (!cutbuffer)
 	    statusbar(_("Internal error: cannot set up uncut.  Please save your work."));
 	else {
-	    if (u->cutbuffer)
-		free_filestruct(u->cutbuffer);
 	    u->cutbuffer = copy_filestruct(cutbuffer);
-	    u->mark_begin_lineno = fs->current->lineno;
-	    u->mark_begin_x = fs->current_x;
-	    u->lineno = fs->current->lineno + cutbottom->lineno - cutbuffer->lineno;
+	    u->lineno += cutbottom->lineno - cutbuffer->lineno;
 	    u->mark_set = TRUE;
 	}
 	break;
-- 
GitLab