mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge pull request #13039 from janlazo/vim-8.2.1790
vim-patch:8.1.{1812,2024,2239,2242,2247,2249,2253},8.2.{354,603,609,665,1570,1790,1792,1801}
This commit is contained in:
commit
f8a5b4bdce
@ -2497,8 +2497,12 @@ int do_ecmd(
|
|||||||
new_name = NULL;
|
new_name = NULL;
|
||||||
}
|
}
|
||||||
set_bufref(&bufref, buf);
|
set_bufref(&bufref, buf);
|
||||||
if (p_ur < 0 || curbuf->b_ml.ml_line_count <= p_ur) {
|
|
||||||
// Save all the text, so that the reload can be undone.
|
// If the buffer was used before, store the current contents so that
|
||||||
|
// the reload can be undone. Do not do this if the (empty) buffer is
|
||||||
|
// being re-used for another file.
|
||||||
|
if (!(curbuf->b_flags & BF_NEVERLOADED)
|
||||||
|
&& (p_ur < 0 || curbuf->b_ml.ml_line_count <= p_ur)) {
|
||||||
// Sync first so that this is a separate undo-able action.
|
// Sync first so that this is a separate undo-able action.
|
||||||
u_sync(false);
|
u_sync(false);
|
||||||
if (u_savecommon(0, curbuf->b_ml.ml_line_count + 1, 0, true)
|
if (u_savecommon(0, curbuf->b_ml.ml_line_count + 1, 0, true)
|
||||||
|
@ -25,6 +25,14 @@ func CheckFunction(name)
|
|||||||
endif
|
endif
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Command to check for the presence of python. Argument should have been
|
||||||
|
" obtained with PythonProg()
|
||||||
|
func CheckPython(name)
|
||||||
|
if a:name == ''
|
||||||
|
throw 'Skipped: python command not available'
|
||||||
|
endif
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Command to check for running on MS-Windows
|
" Command to check for running on MS-Windows
|
||||||
command CheckMSWindows call CheckMSWindows()
|
command CheckMSWindows call CheckMSWindows()
|
||||||
func CheckMSWindows()
|
func CheckMSWindows()
|
||||||
|
@ -364,6 +364,25 @@ func Test_wundo_errors()
|
|||||||
bwipe!
|
bwipe!
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
" Check that reading a truncted undo file doesn't hang.
|
||||||
|
func Test_undofile_truncated()
|
||||||
|
throw 'skipped: TODO: '
|
||||||
|
new
|
||||||
|
call setline(1, 'hello')
|
||||||
|
set ul=100
|
||||||
|
wundo Xundofile
|
||||||
|
let contents = readfile('Xundofile', 'B')
|
||||||
|
|
||||||
|
" try several sizes
|
||||||
|
for size in range(20, 500, 33)
|
||||||
|
call writefile(contents[0:size], 'Xundofile')
|
||||||
|
call assert_fails('rundo Xundofile', 'E825:')
|
||||||
|
endfor
|
||||||
|
|
||||||
|
bwipe!
|
||||||
|
call delete('Xundofile')
|
||||||
|
endfunc
|
||||||
|
|
||||||
func Test_rundo_errors()
|
func Test_rundo_errors()
|
||||||
call assert_fails('rundo XfileDoesNotExist', 'E822:')
|
call assert_fails('rundo XfileDoesNotExist', 'E822:')
|
||||||
|
|
||||||
@ -373,6 +392,26 @@ func Test_rundo_errors()
|
|||||||
call delete('Xundofile')
|
call delete('Xundofile')
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_undofile_next()
|
||||||
|
set undofile
|
||||||
|
new Xfoo.txt
|
||||||
|
execute "norm ix\<c-g>uy\<c-g>uz\<Esc>"
|
||||||
|
write
|
||||||
|
bwipe
|
||||||
|
|
||||||
|
next Xfoo.txt
|
||||||
|
call assert_equal('xyz', getline(1))
|
||||||
|
silent undo
|
||||||
|
call assert_equal('xy', getline(1))
|
||||||
|
silent undo
|
||||||
|
call assert_equal('x', getline(1))
|
||||||
|
bwipe!
|
||||||
|
|
||||||
|
call delete('Xfoo.txt')
|
||||||
|
call delete('.Xfoo.txt.un~')
|
||||||
|
set undofile&
|
||||||
|
endfunc
|
||||||
|
|
||||||
" Test for undo working properly when executing commands from a register.
|
" Test for undo working properly when executing commands from a register.
|
||||||
" Also test this in an empty buffer.
|
" Also test this in an empty buffer.
|
||||||
func Test_cmd_in_reg_undo()
|
func Test_cmd_in_reg_undo()
|
||||||
|
@ -878,7 +878,12 @@ static u_header_T *unserialize_uhp(bufinfo_T *bi,
|
|||||||
for (;; ) {
|
for (;; ) {
|
||||||
int len = undo_read_byte(bi);
|
int len = undo_read_byte(bi);
|
||||||
|
|
||||||
if (len == 0 || len == EOF) {
|
if (len == EOF) {
|
||||||
|
corruption_error("truncated", file_name);
|
||||||
|
u_free_uhp(uhp);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
if (len == 0) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
int what = undo_read_byte(bi);
|
int what = undo_read_byte(bi);
|
||||||
|
Loading…
Reference in New Issue
Block a user