]> git.wh0rd.org Git - nano.git/commitdiff
Redoing cuts at EOF properly.
authorBenno Schulenberg <bensberg@justemail.net>
Mon, 30 Nov 2015 15:49:37 +0000 (15:49 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Mon, 30 Nov 2015 15:49:37 +0000 (15:49 +0000)
This fixes Savannah bug #46541.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5455 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/text.c

index 3ef464877c7a1bb2b7dd82ba84bc51eadc3810a4..9ba5f93587f9d34f4160ac5de289b46f34f80c15 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-11-30  Benno Schulenberg  <bensberg@justemail.net>
+       * src/text.c (redo_cut, update_undo): When cutting reaches the EOF,
+       and NONEWLINES is set, there is no next line at which to put the
+       cutting point for a redo.  So put it at the very end of the cut.
+       This fixes Savannah bug #46541.
+
 2015-11-29  Benno Schulenberg  <bensberg@justemail.net>
        * src/color.c (reset_multis): Evaluate correctly whether to reset
        the multidata cache.  This fixes Savannah bug #46543.
index c0bcc35ba4af667790be5e6698738ac4b205b977..ff9872b76ee06a5d4d49234dfe03927d0256903a 100644 (file)
@@ -451,11 +451,6 @@ void redo_cut(undo *u)
 
     goto_line_posx(u->lineno, u->begin);
 
-    if (ISSET(NO_NEWLINES) && openfile->current->lineno != u->lineno) {
-       openfile->current_x = strlen(openfile->current->data);
-       openfile->placewewant = xplustabs();
-    }
-
     openfile->mark_set = TRUE;
     openfile->mark_begin = fsfromline(u->mark_begin_lineno);
     openfile->mark_begin_x = (u->xflags == WAS_WHOLE_LINE) ? 0 : u->mark_begin_x;
@@ -1140,7 +1135,9 @@ fprintf(stderr, "  >> Updating... action = %d, openfile->last_action = %d, openf
                u->begin = strlen(u->cutbottom->data);
                if (u->lineno == u->mark_begin_lineno)
                    u->begin += u->mark_begin_x;
-           }
+           } else if (openfile->current == openfile->filebot &&
+                       ISSET(NO_NEWLINES))
+               u->begin = strlen(u->cutbottom->data);
        }
        break;
     case REPLACE: