mirror of
https://github.com/vim/vim.git
synced 2025-09-24 03:44:06 -04:00
patch 8.1.0516: :move command marks buffer modified when nothing changed
Problem: :move command marks buffer modified when nothing changed. Solution: Do not set 'modified'. Add a test. (Jason Franklin)
This commit is contained in:
@@ -899,9 +899,9 @@ do_move(linenr_T line1, linenr_T line2, linenr_T dest)
|
||||
{
|
||||
char_u *str;
|
||||
linenr_T l;
|
||||
linenr_T extra; /* Num lines added before line1 */
|
||||
linenr_T num_lines; /* Num lines moved */
|
||||
linenr_T last_line; /* Last line in file after adding new text */
|
||||
linenr_T extra; // Num lines added before line1
|
||||
linenr_T num_lines; // Num lines moved
|
||||
linenr_T last_line; // Last line in file after adding new text
|
||||
#ifdef FEAT_FOLDING
|
||||
win_T *win;
|
||||
tabpage_T *tp;
|
||||
@@ -909,10 +909,24 @@ do_move(linenr_T line1, linenr_T line2, linenr_T dest)
|
||||
|
||||
if (dest >= line1 && dest < line2)
|
||||
{
|
||||
EMSG(_("E134: Move lines into themselves"));
|
||||
EMSG(_("E134: Cannot move a range of lines into itself"));
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
// Do nothing if we are not actually moving any lines. This will prevent
|
||||
// the 'modified' flag from being set without cause.
|
||||
if (dest == line1 - 1 || dest == line2)
|
||||
{
|
||||
// Move the cursor as if lines were moved (see below) to be backwards
|
||||
// compatible.
|
||||
if (dest >= line1)
|
||||
curwin->w_cursor.lnum = dest;
|
||||
else
|
||||
curwin->w_cursor.lnum = dest + (line2 - line1) + 1;
|
||||
|
||||
return OK;
|
||||
}
|
||||
|
||||
num_lines = line2 - line1 + 1;
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user