To: vim_dev@googlegroups.com Subject: Patch 8.2.1702 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 8.2.1702 Problem: Crash when using undo after deleting folded lines. Solution: Check for NULL pointer. (closes #6968) Files: src/fold.c, src/testdir/test_fold.vim *** ../vim-8.2.1701/src/fold.c 2020-09-01 21:20:11.918075824 +0200 --- src/fold.c 2020-09-17 19:34:24.462489494 +0200 *************** *** 2422,2429 **** && flp->lvl > 0) { (void)foldFind(gap, startlnum - 1, &fp); ! if (fp >= ((fold_T *)gap->ga_data) + gap->ga_len ! || fp->fd_top >= startlnum) fp = NULL; } --- 2422,2429 ---- && flp->lvl > 0) { (void)foldFind(gap, startlnum - 1, &fp); ! if (fp != NULL && (fp >= ((fold_T *)gap->ga_data) + gap->ga_len ! || fp->fd_top >= startlnum)) fp = NULL; } *** ../vim-8.2.1701/src/testdir/test_fold.vim 2020-08-12 18:50:31.879655802 +0200 --- src/testdir/test_fold.vim 2020-09-17 19:33:52.658598036 +0200 *************** *** 816,819 **** --- 816,838 ---- close! 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(['']) + + set fdm&vim + bwipe! + endfunc + " vim: shiftwidth=2 sts=2 expandtab *** ../vim-8.2.1701/src/version.c 2020-09-16 23:23:33.030882137 +0200 --- src/version.c 2020-09-17 19:32:42.686838498 +0200 *************** *** 752,753 **** --- 752,755 ---- { /* Add new patch number below this line */ + /**/ + 1702, /**/ -- To keep milk from turning sour: Keep it in the cow. /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ \\\ an exciting new programming language -- http://www.Zimbu.org /// \\\ help me help AIDS victims -- http://ICCF-Holland.org ///