]> git.wh0rd.org Git - nano.git/commitdiff
Improving comments and combining two conditions.
authorBenno Schulenberg <bensberg@justemail.net>
Sat, 31 Oct 2015 20:17:09 +0000 (20:17 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Sat, 31 Oct 2015 20:17:09 +0000 (20:17 +0000)
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5385 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/nano.c

index 77cc02caeac561d4f7183914b7d0d68106565fda..072a434ab23cb7111e8792218ef298341e5cd7bf 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,8 @@
        on, the mark's pointer needs to be refreshed only when it is on the
        same line as the cursor, and the mark's x coordinate only when the
        mark is located after the cursor.  This fixes Savannah bug #46347.
+       * src/nano.c (copy_from_filestruct): Improve comments and combine
+       two conditions.
 
 2015-10-29  Benno Schulenberg  <bensberg@justemail.net>
        * src/text.c (add_undo): Only skip adding an undo when the current
index c88ce0b4f7ddba7a84d3f8b87a9d3b4dbcfd1f2f..8e50848a243807bff7d0a16cb3ecc3ceb777e166 100644 (file)
@@ -451,11 +451,12 @@ void copy_from_filestruct(filestruct *somebuffer)
     while (openfile->filebot->next != NULL)
        openfile->filebot = openfile->filebot->next;
 
-    /* Restore the current line and cursor position.  If the mark begins
-     * inside the partition, adjust the mark coordinates to compensate
-     * for the change in the current line. */
+    /* Put the cursor at the end of the pasted text. */
     openfile->current = openfile->filebot;
     openfile->current_x = strlen(openfile->filebot->data);
+
+    /* Refresh the mark's pointer, and compensate the mark's
+     * x coordinate for the change in the current line. */
     if (openfile->fileage == openfile->filebot) {
 #ifndef NANO_TINY
        if (openfile->mark_set && single_line) {
@@ -464,20 +465,17 @@ void copy_from_filestruct(filestruct *somebuffer)
                openfile->mark_begin_x += openfile->current_x;
        }
 #endif
+       /* When the pasted stuff contains no newline, adjust the cursor's
+        * x coordinate for the text that is before the pasted stuff. */
        openfile->current_x += current_x_save;
     }
 #ifndef NANO_TINY
-    else if (openfile->mark_set) {
-       if (right_side_up) {
-           if (single_line)
-               /* Get the new data, stuff was inserted on the mark line. */
-               openfile->mark_begin = openfile->fileage;
-               /* The x is okay, it did not move. */
-       } else {
-           if (single_line) {
-               openfile->mark_begin = openfile->current;
-               openfile->mark_begin_x += openfile->current_x - current_x_save;
-           }
+    else if (openfile->mark_set && single_line) {
+       if (right_side_up)
+           openfile->mark_begin = openfile->fileage;
+       else {
+           openfile->mark_begin = openfile->current;
+           openfile->mark_begin_x += openfile->current_x - current_x_save;
        }
     }
 #endif