From 6a88d8a7372092a060cf5e9520f3c90b981ec80a Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Tue, 1 Dec 2015 11:39:04 +0000 Subject: [PATCH] Marking the current buffer as mofified only when actually something was inserted. This fixes Savannah bug #45409. git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5458 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 4 ++++ src/files.c | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index df063290..3f20969c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2015-12-01 Benno Schulenberg + * src/files.c (do_insertfile): Mark the buffer as mofified only when + actually something was inserted. This fixes Savannah bug #45409. + 2015-11-30 Benno Schulenberg * src/text.c (redo_cut, update_undo): When cutting reaches the EOF, and NONEWLINES is set, there is no next line at which to put the diff --git a/src/files.c b/src/files.c index 4631cd2f..08b86e16 100644 --- a/src/files.c +++ b/src/files.c @@ -1041,6 +1041,7 @@ void do_insertfile( char *ans = mallocstrcpy(NULL, ""); /* The last answer the user typed at the statusbar prompt. */ filestruct *edittop_save = openfile->edittop; + ssize_t was_current_lineno = openfile->current->lineno; size_t current_x_save = openfile->current_x; ssize_t current_y_save = openfile->current_y; bool edittop_inside = FALSE; @@ -1280,8 +1281,10 @@ void do_insertfile( /* Restore the old place we want. */ openfile->placewewant = pww_save; - /* Mark the file as modified. */ - set_modified(); + /* Mark the file as modified if it changed. */ + if (openfile->current->lineno != was_current_lineno || + openfile->current_x != current_x_save) + set_modified(); /* Update the screen. */ edit_refresh(); -- 2.39.5