From 1a1a60bd0526b76ae232cc59cd1eaf5ad3ce9e77 Mon Sep 17 00:00:00 2001 From: zeertzjq Date: Sat, 14 Feb 2026 10:49:39 +0800 Subject: fix(terminal): resuming doesn't work with command in fish (#37857) Problem: Resuming terminal process doesn't work with command in fish. Solution: Send SIGCONT to the entire process group. Use killpg() like what bash and zsh do on `fg`: https://cgit.git.savannah.gnu.org/cgit/bash.git/tree/jobs.c?id=637f5c8696a6adc9b4519f1cd74aa78492266b7f#n3928 https://sourceforge.net/p/zsh/code/ci/77045ef899e53b9598bebc5a41db93a548a40ca6/tree/Src/jobs.c#l2674 https://sourceforge.net/p/zsh/code/ci/77045ef899e53b9598bebc5a41db93a548a40ca6/tree/Src/signals.c#l538 Install fish on CI to test this. --- test/functional/vimscript/eval_spec.lua | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'test/functional/vimscript') diff --git a/test/functional/vimscript/eval_spec.lua b/test/functional/vimscript/eval_spec.lua index 49cb5cfee5..29f17fee19 100644 --- a/test/functional/vimscript/eval_spec.lua +++ b/test/functional/vimscript/eval_spec.lua @@ -24,6 +24,7 @@ local eval = n.eval local command = n.command local write_file = t.write_file local api = n.api +local fn = n.fn local sleep = vim.uv.sleep local assert_alive = n.assert_alive local poke_eventloop = n.poke_eventloop @@ -88,10 +89,8 @@ describe('backtick expansion', function() end) it('with shell=fish', function() - if eval("executable('fish')") == 0 then - pending('missing "fish" command') - return - end + t.skip(fn.executable('fish') == 0, 'missing "fish" command') + command('set shell=fish') command(':silent args `echo ***2`') eq({ 'file2' }, eval('argv()')) -- cgit