Fabian Boehm 494bdfa013 Revert accidentally pushed fork
Revert "README for this fork"

This reverts commit 97db461e7f19c51e84fbf0dcb10fb25e0f582870.

Revert "Allow foo=bar global variable assignments"

This reverts commit 45a2017580ceb1ef2d79100b6cbf65d1db3c7fa5.

Revert "Interpret () in command position as subshell"

This reverts commit 0199583435c3b584b90769d50252d16105349671.

Revert "Allow special variables $?,$$,$@,$#"

This reverts commit 4a71ee12883a720408419a53482818177a834ec7.

Revert "Allow $() in command position"

This reverts commit 4b99fe2288da07ea1d0bc79ac0c829b65fee230a.

Revert "Turn off full LTO"

This reverts commit b1213f1385ad07578ca4db5f4fa7cb6371cb3be9.

Revert "Back out "bind: Remove "c-" and "a-" shortcut notation""

This reverts commit f43abc42f91adf43bb2dfc65b29dd4f838ea21cf.

Revert "Un-hide documentation of non-fish shell builtins"

This reverts commit 485201ba2e326a0c711c003290d6f6eb2e247012.
2025-01-19 18:34:59 +01:00

56 lines
2.0 KiB
Fish

if not command -qs man
# see #5329 and discussion at https://github.com/fish-shell/fish-shell/commit/13e025bdb01cc4dd08463ec497a0a3495873702f
exit
end
function man --description "Format and display the on-line manual pages"
# Work around the "builtin" manpage that everything symlinks to,
# by prepending our fish datadir to man. This also ensures that man gives fish's
# man pages priority, without having to put fish's bin directories first in $PATH.
# Preserve the existing MANPATH, and default to the system path (the empty string).
set -l manpath
if set -q MANPATH
set manpath $MANPATH
else if set -l p (command man -p 2>/dev/null)
# NetBSD's man uses "-p" to print the path.
# FreeBSD's man also has a "-p" option, but that requires an argument.
# Other mans (men?) don't seem to have it.
#
# Unfortunately NetBSD prints things like "/usr/share/man/man1",
# while not allowing them as $MANPATH components.
# What it needs is just "/usr/share/man".
#
# So we strip the last component.
# This leaves a few wrong directories, but that should be harmless.
set manpath (string replace -r '[^/]+$' '' $p)
else
set manpath ''
end
# Notice the shadowing local exported copy of the variable.
set -lx MANPATH $manpath
# Prepend fish's man directory if available.
set -l fish_manpath $__fish_data_dir/man
if test -d $fish_manpath
set MANPATH $fish_manpath $MANPATH
end
if test (count $argv) -eq 1
# Some of these don't have their own page,
# and adding one would be awkward given that the filename
# isn't guaranteed to be allowed.
# So we override them with the good name.
switch $argv
case :
set argv true
case '['
set argv test
case .
set argv source
end
end
command man $argv
end