commit df80bfd2fceb0843773937402f250733f90f41e1
parent 4a1835fd9387344eb916a922957adeff659242fd
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Sat, 31 Oct 2015 20:17:09 +0000
Improving comments and combining two conditions.
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5385 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
2 files changed, 14 insertions(+), 14 deletions(-)
diff --git 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
diff --git a/src/nano.c b/src/nano.c
@@ -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