forked from aniani/vim
patch 8.1.0416: sort doesn't report deleted lines
Problem: Sort doesn't report deleted lines. Solution: Call msgmore(). (Christian Brabandt, closes #3454)
This commit is contained in:
@@ -649,7 +649,10 @@ ex_sort(exarg_T *eap)
|
|||||||
/* Adjust marks for deleted (or added) lines and prepare for displaying. */
|
/* Adjust marks for deleted (or added) lines and prepare for displaying. */
|
||||||
deleted = (long)(count - (lnum - eap->line2));
|
deleted = (long)(count - (lnum - eap->line2));
|
||||||
if (deleted > 0)
|
if (deleted > 0)
|
||||||
|
{
|
||||||
mark_adjust(eap->line2 - deleted, eap->line2, (long)MAXLNUM, -deleted);
|
mark_adjust(eap->line2 - deleted, eap->line2, (long)MAXLNUM, -deleted);
|
||||||
|
msgmore(-deleted);
|
||||||
|
}
|
||||||
else if (deleted < 0)
|
else if (deleted < 0)
|
||||||
mark_adjust(eap->line2, MAXLNUM, -deleted, 0L);
|
mark_adjust(eap->line2, MAXLNUM, -deleted, 0L);
|
||||||
|
|
||||||
|
@@ -1221,3 +1221,33 @@ func Test_sort_cmd()
|
|||||||
|
|
||||||
enew!
|
enew!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_sort_cmd_report()
|
||||||
|
enew!
|
||||||
|
call append(0, repeat([1], 3) + repeat([2], 3) + repeat([3], 3))
|
||||||
|
$delete _
|
||||||
|
setlocal nomodified
|
||||||
|
let res = execute('%sort u')
|
||||||
|
|
||||||
|
call assert_equal([1,2,3], map(getline(1, '$'), 'v:val+0'))
|
||||||
|
call assert_match("6 fewer lines", res)
|
||||||
|
enew!
|
||||||
|
call append(0, repeat([1], 3) + repeat([2], 3) + repeat([3], 3))
|
||||||
|
$delete _
|
||||||
|
setlocal nomodified report=10
|
||||||
|
let res = execute('%sort u')
|
||||||
|
|
||||||
|
call assert_equal([1,2,3], map(getline(1, '$'), 'v:val+0'))
|
||||||
|
call assert_equal("", res)
|
||||||
|
enew!
|
||||||
|
call append(0, repeat([1], 3) + repeat([2], 3) + repeat([3], 3))
|
||||||
|
$delete _
|
||||||
|
setl report&vim
|
||||||
|
setlocal nomodified
|
||||||
|
let res = execute('1g/^/%sort u')
|
||||||
|
|
||||||
|
call assert_equal([1,2,3], map(getline(1, '$'), 'v:val+0'))
|
||||||
|
" the output comes from the :g command, not from the :sort
|
||||||
|
call assert_match("6 fewer lines", res)
|
||||||
|
enew!
|
||||||
|
endfunc
|
||||||
|
@@ -794,6 +794,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
416,
|
||||||
/**/
|
/**/
|
||||||
415,
|
415,
|
||||||
/**/
|
/**/
|
||||||
|
Reference in New Issue
Block a user