diff --git a/ChangeLog b/ChangeLog index 05118e5a..574c44cb 100644 --- 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 a0466605..8ba6763f 100644 --- 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 42927a94..a5ba5f0e 100644 --- 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);