neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

commit 544bde3accf33370d1ac1b3306abb23bdbb2d01a
parent 6061169183c02e6e6cabae09a56dd68989afe257
Author: zeertzjq <zeertzjq@outlook.com>
Date:   Wed, 17 Dec 2025 06:46:22 +0800

vim-patch:9.1.1987: assert_equal() prepends unnecessary ':' when typed

Problem:  assert_equal() prepends unnecessary ':' when typed
          (after 9.0.1758).
Solution: Don't change a NULL stacktrace to an empty string (zeertzjq).

closes: vim/vim#18936

https://github.com/vim/vim/commit/c4b3aefd0d5f81693e7098f224d3e4bfe24a7aa7

Diffstat:
Msrc/nvim/runtime.c | 5++++-
Mtest/old/testdir/test_assert.vim | 13+++++++++++++
2 files changed, 17 insertions(+), 1 deletion(-)

diff --git a/src/nvim/runtime.c b/src/nvim/runtime.c @@ -229,7 +229,10 @@ char *estack_sfile(estack_arg_T which) } } - ga_append(&ga, NUL); + // Only NUL-terminate when not returning NULL. + if (ga.ga_data != NULL) { + ga_append(&ga, NUL); + } return (char *)ga.ga_data; } diff --git a/test/old/testdir/test_assert.vim b/test/old/testdir/test_assert.vim @@ -386,6 +386,19 @@ func Test_assert_fails_in_timer() call StopVimInTerminal(buf) endfunc +" Check that a typed assert_equal() doesn't prepend an unnecessary ':'. +func Test_assert_equal_typed() + let after =<< trim END + call feedkeys(":call assert_equal(0, 1)\<CR>", 't') + call feedkeys(":call writefile(v:errors, 'Xerrors')\<CR>", 't') + call feedkeys(":qa!\<CR>", 't') + END + call assert_equal(1, RunVim([], after, '')) + call assert_equal(['Expected 0 but got 1'], readfile('Xerrors')) + + call delete('Xerrors') +endfunc + func Test_assert_beeps() new call assert_equal(0, assert_beeps('normal h'))