commit 4a3879f1edf2c6055fe8bf591915f2db5c1a3db8
parent 56cf034a125995a1b7736db03de89abc7fce06e7
Author: David Lawrence Ramsey <pooka109@gmail.com>
Date: Mon, 15 Nov 2004 20:42:31 +0000
fix cursor placement problem when inserting into the current buffer at
the top of the edit window
git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@2097 35c25a1d-7b9e-4130-9fde-d3aeb78583b8
Diffstat:
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/files.c b/src/files.c
@@ -499,6 +499,8 @@ void do_insertfile(
char *ans = mallocstrcpy(NULL, "");
/* The last answer the user typed on the statusbar. */
filestruct *edittop_save = edittop;
+ bool at_edittop = FALSE;
+ /* Whether we're at the top of the edit window. */
#ifndef DISABLE_WRAPPING
wrap_reset();
@@ -591,11 +593,12 @@ void do_insertfile(
#endif
/* If we're not inserting into a new buffer, partition
* the filestruct so that it contains no text and hence
- * looks like a new buffer, and set edittop to the top
- * of the partition. */
+ * looks like a new buffer, and keep track of whether
+ * the top of the partition is the top of the edit
+ * window. */
filepart = partition_filestruct(current, current_x,
current, current_x);
- edittop = fileage;
+ at_edittop = (fileage == edittop);
#ifdef ENABLE_MULTIBUFFER
}
#endif
@@ -628,6 +631,12 @@ void do_insertfile(
* partition. */
renumber(top_save);
+ /* If we were at the top of the edit window before, set
+ * the saved value of edittop to the new top of the edit
+ * window. */
+ if (at_edittop)
+ edittop_save = fileage;
+
/* Set edittop back to what it was before. */
edittop = edittop_save;
}