[pacman-dev] [PATCH 1/3] makepkg: fallback to legacy termcap capabilities
Nezmer
git at nezmer.info
Thu Oct 14 12:49:07 EDT 2010
On Thu, Oct 14, 2010 at 12:02:45PM -0430, Carlos Diaz wrote:
> In some systems, such as Freebsd, the base tput isn't linked against a
> terminfo capable ncurses.
>
> This means that there's no portable way to set color, so instead of
> guessing, makepkg fallbacks on using legacy termcap output manipulation.
>
> For reference, see terminfo(5) and termcap(5) for a comparison between
> the abilities.
>
> The hardcoded list of terminals is taken from freebsdports/shells/tcshrc
> and tmux [1]. This prevents echoing gibberish in dumb and otherwise
> incapacitated terminals.
>
> 1:
> http://www.openbsd.org/cgi-bin/cvsweb/src/usr.bin/tmux/tty.c?rev=1.91;content-type=text%2Fplain
>
> Signed-off-by: Carlos Diaz <839273 at gmail.com>
> ---
> scripts/makepkg.sh.in | 13 +++++++++++--
> 1 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
> index bdf63ef..3d29d26 100644
> --- a/scripts/makepkg.sh.in
> +++ b/scripts/makepkg.sh.in
> @@ -1660,21 +1660,30 @@ PACMAN=${PACMAN:-pacman}
> # check if messages are to be printed using color
> unset ALL_OFF BOLD BLUE GREEN RED YELLOW
> if [[ -t 2 && ! $USE_COLOR = "n" && $(check_buildenv color) = "y" ]]; then
> - # prefer terminal safe colored and bold text when tput is supported
> if tput setaf 0 &>/dev/null; then
> + # tput linked against a compliant terminfo ncurses
> ALL_OFF="$(tput sgr0)"
> BOLD="$(tput bold)"
> BLUE="${BOLD}$(tput setaf 4)"
> GREEN="${BOLD}$(tput setaf 2)"
> RED="${BOLD}$(tput setaf 1)"
> YELLOW="${BOLD}$(tput setaf 3)"
> - else
> + elif [[ $TERM =~ ^(dtterm|rxvt|screen|xterm) ]]; then
> + # no terminfo, but don't fallback to ugly reverse text just yet
> ALL_OFF="\033[1;0m"
> BOLD="\033[1;1m"
> BLUE="${BOLD}\033[1;34m"
> GREEN="${BOLD}\033[1;32m"
> RED="${BOLD}\033[1;31m"
> YELLOW="${BOLD}\033[1;33m"
> + elif tput me &>/dev/null; then
> + # rely on termcap capabilities; no portable way of using color
> + ALL_OFF="$(tput me)"
> + BOLD="$(tput md)"
> + BLUE="$(tput mr)" # reverse
> + GREEN="$(tput us)" # underline
> + RED="$(tput so)" # standout
> + YELLOW="$(tput mh)" # half-bright
> fi
> fi
> readonly ALL_OFF BOLD BLUE GREEN RED YELLOW
> --
> 1.7.3.1
>
>
This is already fixed in master!
More information about the pacman-dev
mailing list