]> git.wh0rd.org Git - nano.git/commitdiff
fix breakage when NO_NEWLINES is FALSE and we copy text that would
authorDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 26 Apr 2006 19:03:50 +0000 (19:03 +0000)
committerDavid Lawrence Ramsey <pooka109@gmail.com>
Wed, 26 Apr 2006 19:03:50 +0000 (19:03 +0000)
require adding a new magicline then

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

src/cut.c

index e3ca576e4bd29a6f4da14e406b6856cccc65523f..ec224b9f0cb9a34d177b6d0e9e65f31ab7692743 100644 (file)
--- a/src/cut.c
+++ b/src/cut.c
@@ -115,6 +115,7 @@ void do_cut_text(
        /* The current end of the cutbuffer, before we add text to
         * it. */
     bool old_mark_set = openfile->mark_set;
+    bool old_no_newlines = ISSET(NO_NEWLINES);
 #endif
 
     assert(openfile->current != NULL && openfile->current->data != NULL);
@@ -132,11 +133,17 @@ void do_cut_text(
     }
 
 #ifndef NANO_TINY
-    if (cutbuffer != NULL) {
-       /* If the cutbuffer isn't empty, save where it currently ends.
-        * This is where the new text will be added. */
-       cb_save = cutbottom;
-       cb_save->data += strlen(cb_save->data);
+    if (copy_text) {
+       if (cutbuffer != NULL) {
+           /* If the cutbuffer isn't empty, save where it currently
+            * ends.  This is where the new text will be added. */
+           cb_save = cutbottom;
+           cb_save->data += strlen(cb_save->data);
+       }
+
+       /* Set NO_NEWLINES to TRUE, so that we don't disturb the last
+        * line of the file when moving text to the cutbuffer. */
+       SET(NO_NEWLINES);
     }
 #endif
 
@@ -169,6 +176,11 @@ void do_cut_text(
        if (cutbuffer != NULL)
            copy_from_filestruct((cb_save != NULL) ? cb_save :
                cutbuffer, cutbottom);
+
+       /* Set NO_NEWLINES back to what it was before, since we're done
+        * disturbing the text. */
+       if (!old_no_newlines)
+           UNSET(NO_NEWLINES);
     } else
 #endif
        /* Leave the text in the cutbuffer, and mark the file as