diff options
| author | zeertzjq <zeertzjq@outlook.com> | 2026-02-14 10:49:39 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-14 10:49:39 +0800 |
| commit | 1a1a60bd0526b76ae232cc59cd1eaf5ad3ce9e77 (patch) | |
| tree | 4576137ace5b3095fe9c2762beb8f34f8e9e1302 /test/functional/vimscript/eval_spec.lua | |
| parent | a17d39314d1bda465449cf133e6700abe5abf46f (diff) | |
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.
Diffstat (limited to 'test/functional/vimscript/eval_spec.lua')
| -rw-r--r-- | test/functional/vimscript/eval_spec.lua | 7 |
1 files changed, 3 insertions, 4 deletions
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()')) |
