From bb325e497a26046f3a77e3566a5ef56525c0044c Mon Sep 17 00:00:00 2001 From: Johannes Altmanninger Date: Fri, 13 May 2022 20:39:20 +0200 Subject: [PATCH] __fish_man_page: simplify This helps the next commit. No functional change. --- share/functions/__fish_man_page.fish | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/share/functions/__fish_man_page.fish b/share/functions/__fish_man_page.fish index 8615f5946..5d687c21d 100644 --- a/share/functions/__fish_man_page.fish +++ b/share/functions/__fish_man_page.fish @@ -8,7 +8,7 @@ function __fish_man_page return end - # Skip leading commands and display then manpage of following command + # Skip leading commands and display the manpage of following command while set -q args[2] and string match -qr -- '^(and|begin|builtin|caffeinate|command|doas|entr|env|exec|if|mosh|nice|not|or|pipenv|prime-run|setsid|sudo|systemd-nspawn|time|watch|while|xargs|.*=.*)$' $args[1] set -e args[1] @@ -17,19 +17,14 @@ function __fish_man_page # If there are at least two tokens not starting with "-", the second one might be a subcommand. # Try "man first-second" and fall back to "man first" if that doesn't work out. set -l maincmd (basename $args[1]) + # HACK: If stderr is not attached to a terminal `less` (the default pager) + # wouldn't use the alternate screen. + # But since we don't know what pager it is, and because `man` is totally underspecified, + # the best we can do is to *try* the man page, and assume that `man` will return false if it fails. + # See #7863. if set -q args[2] - # HACK: If stderr is not attached to a terminal `less` (the default pager) - # wouldn't use the alternate screen. - # But since we don't know what pager it is, and because `man` is totally underspecified, - # the best we can do is to *try* the man page, and assume that `man` will return false if it fails. - # See #7863. - if man "$maincmd-$args[2]" &>/dev/null - man "$maincmd-$args[2]" - else if man "$maincmd" &>/dev/null - man "$maincmd" - else - printf \a - end + and man "$maincmd-$args[2]" &>/dev/null + man "$maincmd-$args[2]" else if man "$maincmd" &>/dev/null man "$maincmd"