mirror of
https://github.com/fish-shell/fish-shell
synced 2024-12-26 21:03:12 +00:00
Use mandoc when nroff not available
mandoc users do not need to install nroff to be able to format and view manual pages. If both nroff and mandoc cannot be found it will show an error.
This commit is contained in:
parent
1f897d2c43
commit
827bce6c88
2 changed files with 26 additions and 11 deletions
|
@ -13,6 +13,7 @@
|
||||||
- nothing yet...
|
- nothing yet...
|
||||||
- Lots of improvements to completions.
|
- Lots of improvements to completions.
|
||||||
- fish_clipboard_* now supports wayland by means of [wl-clipboard](https://github.com/bugaevc/wl-clipboard).
|
- fish_clipboard_* now supports wayland by means of [wl-clipboard](https://github.com/bugaevc/wl-clipboard).
|
||||||
|
- mandoc can now be used to format the output from `--help` if nroff is not installed
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
|
@ -10,21 +10,35 @@ function __fish_print_help --description "Print help message for the specified f
|
||||||
|
|
||||||
# Render help output, save output into the variable 'help'
|
# Render help output, save output into the variable 'help'
|
||||||
set -l help
|
set -l help
|
||||||
set -l cols $COLUMNS
|
set -l format
|
||||||
set -l rLL
|
set -l cols
|
||||||
if test -n "$cols"
|
if test -n "$COLUMNS"
|
||||||
set cols (math $cols - 4) # leave a bit of space on the right
|
set cols (math $COLUMNS - 4) # leave a bit of space on the right
|
||||||
set rLL -rLL=$cols[1]n
|
|
||||||
end
|
end
|
||||||
set -lx GROFF_TMAC_PATH $__fish_data_dir/groff
|
|
||||||
set -l mfish
|
# Pick which command we are using to render output or fail if none
|
||||||
if test -e $GROFF_TMAC_PATH/fish.tmac
|
if command -qs nroff
|
||||||
set mfish -mfish
|
set format nroff -c -man -t
|
||||||
|
if test -e $__fish_data_dir/groff/fish.tmac
|
||||||
|
set -a format -M$__fish_data_dir/groff -mfish
|
||||||
|
end
|
||||||
|
if test -n "$cols"
|
||||||
|
set -a format -rLL={$cols}n
|
||||||
|
end
|
||||||
|
else if command -qs mandoc
|
||||||
|
set format mandoc -c
|
||||||
|
if test -n "$cols"
|
||||||
|
set -a format -O width=$cols
|
||||||
|
end
|
||||||
|
else
|
||||||
|
echo fish: (_ "Cannot format help; no parser found")
|
||||||
|
return 1
|
||||||
end
|
end
|
||||||
|
|
||||||
if test -e "$__fish_data_dir/man/man1/$item.1"
|
if test -e "$__fish_data_dir/man/man1/$item.1"
|
||||||
set help (nroff -c -man $mfish -t $rLL "$__fish_data_dir/man/man1/$item.1" 2>/dev/null)
|
set help ($format "$__fish_data_dir/man/man1/$item.1" 2>/dev/null)
|
||||||
else if test -e "$__fish_data_dir/man/man1/$item.1.gz"
|
else if test -e "$__fish_data_dir/man/man1/$item.1.gz"
|
||||||
set help (gunzip -c "$__fish_data_dir/man/man1/$item.1.gz" 2>/dev/null | nroff -c -man $mfish -t $rLL 2>/dev/null)
|
set help (gunzip -c "$__fish_data_dir/man/man1/$item.1.gz" 2>/dev/null | $format 2>/dev/null)
|
||||||
end
|
end
|
||||||
|
|
||||||
# The original implementation trimmed off the top 5 lines and bottom 3 lines
|
# The original implementation trimmed off the top 5 lines and bottom 3 lines
|
||||||
|
|
Loading…
Reference in a new issue