commit 6a88d8a7372092a060cf5e9520f3c90b981ec80a
parent 42ac5368e1505094dd006418f049e2b8b1d80b92
Author: Benno Schulenberg <bensberg@justemail.net>
Date: Tue, 1 Dec 2015 11:39:04 +0000
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
Diffstat:
2 files changed, 9 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,7 @@
+2015-12-01 Benno Schulenberg <bensberg@justemail.net>
+ * 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 <bensberg@justemail.net>
* 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
@@ -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();