diff options
| author | Josh Hirschkorn <53196448+vortexisalpha@users.noreply.github.com> | 2026-07-27 14:20:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-27 13:20:46 +0000 |
| commit | 97a71ab4846c4b92a1e658ec00ff3eae74bf1256 (patch) | |
| tree | 9d357d8b89b9bfe64fb9d1d4ad9b52c0adf77691 /test/functional/plugin/man_spec.lua | |
| parent | 0b3b12da8d076c9f00511e75e5276816d0b68ebc (diff) | |
| download | rneovim-97a71ab4846c4b92a1e658ec00ff3eae74bf1256.tar.gz rneovim-97a71ab4846c4b92a1e658ec00ff3eae74bf1256.tar.bz2 rneovim-97a71ab4846c4b92a1e658ec00ff3eae74bf1256.zip | |
fix(man): use direct lookup without manpath #40421
Problem:
On NetBSD, `man -w open` can return the exact manpage path, but `:Man`
may still fail when man directories cannot be discovered from `manpath
-q`, bare `man -w`, or `$MANPATH`.
Solution:
Fall back to the direct manpage lookup when directory discovery fails.
Add a test for resolving `open(2)` through `goto_tag()` without manpath
data.
Diffstat (limited to 'test/functional/plugin/man_spec.lua')
| -rw-r--r-- | test/functional/plugin/man_spec.lua | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/functional/plugin/man_spec.lua b/test/functional/plugin/man_spec.lua index 330b10e4dc..40b0dac81f 100644 --- a/test/functional/plugin/man_spec.lua +++ b/test/functional/plugin/man_spec.lua @@ -304,6 +304,31 @@ describe(':Man', function() ) end) + it('uses direct manpage lookup if man directories cannot be determined #25919', function() + eq( + { + { + name = 'open', + filename = 'man://open(2)', + cmd = '1', + }, + }, + exec_lua(function() + local man = require('man') + vim.env.MANPATH = nil + vim.npcall = function() + return nil + end + man._find_path = function(name, sect) + if name == 'open' and sect == '2' then + return '/usr/share/man/man2/open.2' + end + end + return man.goto_tag('open(2)') + end) + ) + end) + it('tries variants with spaces, underscores #22503', function() eq({ { vim.NIL, 'NAME WITH SPACES' }, |