|
|
|
|
@ -1,34 +1,43 @@ |
|
|
|
|
if [[ "$OSTYPE" = solaris* ]] |
|
|
|
|
then |
|
|
|
|
if [[ ! -x "$HOME/bin/nroff" ]] |
|
|
|
|
then |
|
|
|
|
mkdir -p "$HOME/bin" |
|
|
|
|
cat > "$HOME/bin/nroff" <<EOF |
|
|
|
|
#!/bin/sh |
|
|
|
|
if [ -n "\$_NROFF_U" -a "\$1,\$2,\$3" = "-u0,-Tlp,-man" ]; then |
|
|
|
|
shift |
|
|
|
|
exec /usr/bin/nroff -u\$_NROFF_U "\$@" |
|
|
|
|
fi |
|
|
|
|
#-- Some other invocation of nroff |
|
|
|
|
exec /usr/bin/nroff "\$@" |
|
|
|
|
EOF |
|
|
|
|
chmod +x "$HOME/bin/nroff" |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
# Requires colors autoload. |
|
|
|
|
# See termcap(5). |
|
|
|
|
|
|
|
|
|
# Set up once, and then reuse. This way it supports user overrides after the |
|
|
|
|
# plugin is loaded. |
|
|
|
|
typeset -AHg less_termcap |
|
|
|
|
|
|
|
|
|
# bold & blinking mode |
|
|
|
|
less_termcap[mb]="${fg_bold[red]}" |
|
|
|
|
less_termcap[md]="${fg_bold[red]}" |
|
|
|
|
less_termcap[me]="${reset_color}" |
|
|
|
|
# standout mode |
|
|
|
|
less_termcap[so]="${fg_bold[yellow]}${bg[blue]}" |
|
|
|
|
less_termcap[se]="${reset_color}" |
|
|
|
|
# underlining |
|
|
|
|
less_termcap[us]="${fg_bold[green]}" |
|
|
|
|
less_termcap[ue]="${reset_color}" |
|
|
|
|
|
|
|
|
|
# Absolute path to this file's directory. |
|
|
|
|
typeset __colored_man_pages_dir="${0:A:h}" |
|
|
|
|
|
|
|
|
|
function colored() { |
|
|
|
|
command env \ |
|
|
|
|
LESS_TERMCAP_mb=$(printf "\e[1;31m") \ |
|
|
|
|
LESS_TERMCAP_md=$(printf "\e[1;31m") \ |
|
|
|
|
LESS_TERMCAP_me=$(printf "\e[0m") \ |
|
|
|
|
LESS_TERMCAP_se=$(printf "\e[0m") \ |
|
|
|
|
LESS_TERMCAP_so=$(printf "\e[1;44;33m") \ |
|
|
|
|
LESS_TERMCAP_ue=$(printf "\e[0m") \ |
|
|
|
|
LESS_TERMCAP_us=$(printf "\e[1;32m") \ |
|
|
|
|
PAGER="${commands[less]:-$PAGER}" \ |
|
|
|
|
_NROFF_U=1 \ |
|
|
|
|
PATH="$HOME/bin:$PATH" \ |
|
|
|
|
"$@" |
|
|
|
|
local -a environment |
|
|
|
|
|
|
|
|
|
# Convert associative array to plain array of NAME=VALUE items. |
|
|
|
|
local k v |
|
|
|
|
for k v in "${(@kv)less_termcap}"; do |
|
|
|
|
environment+=( "LESS_TERMCAP_${k}=${v}" ) |
|
|
|
|
done |
|
|
|
|
|
|
|
|
|
# Prefer `less` whenever available, since we specifically configured |
|
|
|
|
# environment for it. |
|
|
|
|
environment+=( PAGER="${commands[less]:-$PAGER}" ) |
|
|
|
|
|
|
|
|
|
# See ./nroff script. |
|
|
|
|
if [[ "$OSTYPE" = solaris* ]]; then |
|
|
|
|
environment+=( PATH="${__colored_man_pages_dir}:$PATH" ) |
|
|
|
|
fi |
|
|
|
|
|
|
|
|
|
command env $environment "$@" |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
# Colorize man and dman/debman (from debian-goodies) |
|
|
|
|
|