Improving comments and combining two conditions.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5385 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
master
Benno Schulenberg 2015-10-31 20:17:09 +00:00
parent 4a1835fd93
commit df80bfd2fc
2 changed files with 14 additions and 14 deletions

View File

@ -3,6 +3,8 @@
on, the mark's pointer needs to be refreshed only when it is on the 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 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. 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> 2015-10-29 Benno Schulenberg <bensberg@justemail.net>
* src/text.c (add_undo): Only skip adding an undo when the current * src/text.c (add_undo): Only skip adding an undo when the current

View File

@ -451,11 +451,12 @@ void copy_from_filestruct(filestruct *somebuffer)
while (openfile->filebot->next != NULL) while (openfile->filebot->next != NULL)
openfile->filebot = openfile->filebot->next; openfile->filebot = openfile->filebot->next;
/* Restore the current line and cursor position. If the mark begins /* Put the cursor at the end of the pasted text. */
* inside the partition, adjust the mark coordinates to compensate
* for the change in the current line. */
openfile->current = openfile->filebot; openfile->current = openfile->filebot;
openfile->current_x = strlen(openfile->filebot->data); 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) { if (openfile->fileage == openfile->filebot) {
#ifndef NANO_TINY #ifndef NANO_TINY
if (openfile->mark_set && single_line) { if (openfile->mark_set && single_line) {
@ -464,20 +465,17 @@ void copy_from_filestruct(filestruct *somebuffer)
openfile->mark_begin_x += openfile->current_x; openfile->mark_begin_x += openfile->current_x;
} }
#endif #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; openfile->current_x += current_x_save;
} }
#ifndef NANO_TINY #ifndef NANO_TINY
else if (openfile->mark_set) { else if (openfile->mark_set && single_line) {
if (right_side_up) { if (right_side_up)
if (single_line) openfile->mark_begin = openfile->fileage;
/* Get the new data, stuff was inserted on the mark line. */ else {
openfile->mark_begin = openfile->fileage; openfile->mark_begin = openfile->current;
/* The x is okay, it did not move. */ openfile->mark_begin_x += openfile->current_x - current_x_save;
} else {
if (single_line) {
openfile->mark_begin = openfile->current;
openfile->mark_begin_x += openfile->current_x - current_x_save;
}
} }
} }
#endif #endif