]> git.wh0rd.org Git - nano.git/commitdiff
Don't keep cutbufer on reset, fix -k cut on first line if blank
authorChris Allegretta <chrisa@asty.org>
Mon, 11 Jun 2001 06:56:10 +0000 (06:56 +0000)
committerChris Allegretta <chrisa@asty.org>
Mon, 11 Jun 2001 06:56:10 +0000 (06:56 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@682 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
cut.c
move.c

index 05118e5a43a53e82c99821bda0a13e73063f8d7a..574c44cb96ec1653f9bb295af86f7b47f91c8d12 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -73,6 +73,8 @@ Cvs code -
   page_up()
        - Rewritten with a loop to make screen updates work when
          mark is set (fixes bug #59).
+  do_home(), do_end()
+       - Don't keep cutbuffer.
 - nano.1:
        - Added the missing -r flag (Jordi).
 - nano.c:
diff --git a/cut.c b/cut.c
index a0466605c68e664cd12e9c34fb0f9bd89a9d06ff..8ba6763f74bc071bd43b7b3321ad17f5c3c67045 100644 (file)
--- a/cut.c
+++ b/cut.c
@@ -187,10 +187,15 @@ int do_cut_text(void)
 
            /* If the next line is empty, create a dummy line and add it
                to the cutbuffer */
-           if (current->next != NULL && strlen(current->next->data) == 0) {
+           if ((current->next != NULL && strlen(current->next->data) == 0) ||
+               (current == fileage && strlen(current->data) == 0)) {
                filestruct *junk;
 
-               junk = copy_node(current->next);
+               if (current == fileage)
+                   junk = copy_node(current);
+               else
+                   junk = copy_node(current->next);
+
                add_to_cutbuffer(junk);
            }
            do_delete();
diff --git a/move.c b/move.c
index 42927a94ed66afce686a72e498ebe80eb40bdbe7..a5ba5f0e235ad284eeb136cfe968e0b60e3538e8 100644 (file)
--- a/move.c
+++ b/move.c
@@ -86,6 +86,7 @@ int page_down(void)
 
 int do_home(void)
 {
+    UNSET(KEEP_CUTBUFFER);
     current_x = 0;
     placewewant = 0;
     update_line(current, current_x);
@@ -94,6 +95,7 @@ int do_home(void)
 
 int do_end(void)
 {
+    UNSET(KEEP_CUTBUFFER);
     current_x = strlen(current->data);
     placewewant = xplustabs();
     update_line(current, current_x);