The manual can be much longer than one page, and it is easy to tell
whether stdout is associated with a terminal. The new _gsu_isatty()
takes care of that. It has been verified to work on FreeBSD, NetBSD
and Linux.
+_gsu_isatty()
+{(
+ exec 3<&1
+ stty 0<&3 &> /dev/null
+)}
+
complete_prefs()
{
gsu_complete_options "$com_prefs_options" "$@"
}
complete_prefs()
{
gsu_complete_options "$com_prefs_options" "$@"
}
+Usage: man
+
+If stdout associated with a terminal device, output is piped to
+$PAGER. If $PAGER is unset, less(1) is assumed.
+'
com_man()
{
local equal_signs="=================================================="
local minus_signs="--------------------------------------------------"
com_man()
{
local equal_signs="=================================================="
local minus_signs="--------------------------------------------------"
+ local com num pager='cat'
+ _gsu_isatty && pager="${PAGER:-less}"
+ [[ "$pager" == 'less' ]] && export LESS=${LESS-RI}
+ {
echo "$gsu_name (_${gsu_banner_txt}_) manual"
echo "${equal_signs:0:${#gsu_name} + ${#gsu_banner_txt} + 16}"
echo
echo "$gsu_name (_${gsu_banner_txt}_) manual"
echo "${equal_signs:0:${#gsu_name} + ${#gsu_banner_txt} + 16}"
echo