Skip to content

Commit

Permalink
Revert "test-lib.sh: do tests for color support after changing HOME"
Browse files Browse the repository at this point in the history
This reverts commit 102fc80.

There are two issues with that commit:

  * It is buggy.  In pseudocode, it is doing:

       color is set || TERM != dumb && color works && color=t

    when it should be doing:

       color is set || { TERM != dumb && color works && color=t }

  * It unnecessarily disables color when tput needs to read
    ~/.terminfo to get the control sequences.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Richard Hansen authored and Junio C Hamano committed Jun 17, 2015
1 parent 102fc80 commit ca92a66
Showing 1 changed file with 43 additions and 47 deletions.
90 changes: 43 additions & 47 deletions t/test-lib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -184,8 +184,16 @@ export _x05 _x40 _z40 LF u200c
# This test checks if command xyzzy does the right thing...
# '
# . ./test-lib.sh
test "x$ORIGINAL_TERM" != "xdumb" && (
TERM=$ORIGINAL_TERM &&
export TERM &&
test -t 1 &&
tput bold >/dev/null 2>&1 &&
tput setaf 1 >/dev/null 2>&1 &&
tput sgr0 >/dev/null 2>&1
) &&
color=t

unset color
while test "$#" -ne 0
do
case "$1" in
Expand Down Expand Up @@ -250,6 +258,40 @@ then
verbose=t
fi

if test -n "$color"
then
say_color () {
(
TERM=$ORIGINAL_TERM
export TERM
case "$1" in
error)
tput bold; tput setaf 1;; # bold red
skip)
tput setaf 4;; # blue
warn)
tput setaf 3;; # brown/yellow
pass)
tput setaf 2;; # green
info)
tput setaf 6;; # cyan
*)
test -n "$quiet" && return;;
esac
shift
printf "%s" "$*"
tput sgr0
echo
)
}
else
say_color() {
test -z "$1" && test -n "$quiet" && return
shift
printf "%s\n" "$*"
}
fi

error () {
say_color error "error: $*"
GIT_EXIT_OK=t
Expand Down Expand Up @@ -815,52 +857,6 @@ HOME="$TRASH_DIRECTORY"
GNUPGHOME="$HOME/gnupg-home-not-used"
export HOME GNUPGHOME

# run the tput tests *after* changing HOME (in case ncurses needs
# ~/.terminfo for $TERM)
test -n "${color+set}" || test "x$ORIGINAL_TERM" != "xdumb" && (
TERM=$ORIGINAL_TERM &&
export TERM &&
test -t 1 &&
tput bold >/dev/null 2>&1 &&
tput setaf 1 >/dev/null 2>&1 &&
tput sgr0 >/dev/null 2>&1
) &&
color=t

if test -n "$color"
then
say_color () {
(
TERM=$ORIGINAL_TERM
export TERM
case "$1" in
error)
tput bold; tput setaf 1;; # bold red
skip)
tput setaf 4;; # blue
warn)
tput setaf 3;; # brown/yellow
pass)
tput setaf 2;; # green
info)
tput setaf 6;; # cyan
*)
test -n "$quiet" && return;;
esac
shift
printf "%s" "$*"
tput sgr0
echo
)
}
else
say_color() {
test -z "$1" && test -n "$quiet" && return
shift
printf "%s\n" "$*"
}
fi

if test -z "$TEST_NO_CREATE_REPO"
then
test_create_repo "$TRASH_DIRECTORY"
Expand Down

0 comments on commit ca92a66

Please sign in to comment.