mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
vim-patch:8.2.1702: crash when using undo after deleting folded lines
Problem: Crash when using undo after deleting folded lines.
Solution: Check for NULL pointer. (closes vim/vim#6968)
da697645d5
This commit is contained in:
parent
292037ef9b
commit
cb368e1bff
@ -2227,8 +2227,9 @@ static linenr_T foldUpdateIEMSRecurse(
|
|||||||
if (getlevel == foldlevelMarker && flp->start <= flp->lvl - level
|
if (getlevel == foldlevelMarker && flp->start <= flp->lvl - level
|
||||||
&& flp->lvl > 0) {
|
&& flp->lvl > 0) {
|
||||||
(void)foldFind(gap, startlnum - 1, &fp);
|
(void)foldFind(gap, startlnum - 1, &fp);
|
||||||
if (fp >= ((fold_T *)gap->ga_data) + gap->ga_len
|
if (fp != NULL
|
||||||
|| fp->fd_top >= startlnum) {
|
&& (fp >= ((fold_T *)gap->ga_data) + gap->ga_len
|
||||||
|
|| fp->fd_top >= startlnum)) {
|
||||||
fp = NULL;
|
fp = NULL;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -796,6 +796,26 @@ func Test_fold_delete_first_line()
|
|||||||
set foldmethod&
|
set foldmethod&
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_undo_fold_deletion()
|
||||||
|
new
|
||||||
|
set fdm=marker
|
||||||
|
let lines =<< trim END
|
||||||
|
" {{{
|
||||||
|
" }}}1
|
||||||
|
" {{{
|
||||||
|
END
|
||||||
|
call setline(1, lines)
|
||||||
|
3d
|
||||||
|
g/"/d
|
||||||
|
undo
|
||||||
|
redo
|
||||||
|
" eval getline(1, '$')->assert_equal([''])
|
||||||
|
eval assert_equal(getline(1, '$'), [''])
|
||||||
|
|
||||||
|
set fdm&vim
|
||||||
|
bwipe!
|
||||||
|
endfunc
|
||||||
|
|
||||||
" this was crashing
|
" this was crashing
|
||||||
func Test_move_no_folds()
|
func Test_move_no_folds()
|
||||||
new
|
new
|
||||||
|
Loading…
Reference in New Issue
Block a user