OSDN Git Service

git-prompt.sh: do not print duplicate clean color code
authorEduardo R. D'Avila <erdavila@gmail.com>
Wed, 26 Jun 2013 03:05:16 +0000 (00:05 -0300)
committerJunio C Hamano <gitster@pobox.com>
Wed, 26 Jun 2013 20:03:01 +0000 (13:03 -0700)
Do not print a duplicate clean color code when there
is no other indicators other than the current branch
in colored prompt.

Acked-by: SZEDER Gábor <szeder@ira.uka.de>
Signed-off-by: Eduardo R. D'Avila <erdavila@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-prompt.sh
t/t9903-bash-prompt.sh

index fdedb45..545518a 100644 (file)
@@ -253,8 +253,8 @@ __git_ps1_colorize_gitstring ()
                branch_color="$bad_color"
        fi
        c="$branch_color$c"
-       b="$b$c_clear"
 
+       z="$c_clear$z"
        if [ "$w" = "*" ]; then
                w="$bad_color$w"
        fi
index f250dfc..5cd138e 100755 (executable)
@@ -551,7 +551,7 @@ test_expect_success 'prompt - pc mode' '
 '
 
 test_expect_success 'prompt - bash color pc mode - branch name' '
-       printf "BEFORE: (${c_green}master${c_clear}${c_clear}):AFTER" >expected &&
+       printf "BEFORE: (${c_green}master${c_clear}):AFTER" >expected &&
        (
                GIT_PS1_SHOWCOLORHINTS=y &&
                __git_ps1 "BEFORE:" ":AFTER" >"$actual"
@@ -561,7 +561,7 @@ test_expect_success 'prompt - bash color pc mode - branch name' '
 '
 
 test_expect_success 'prompt - bash color pc mode - detached head' '
-       printf "BEFORE: (${c_red}(%s...)${c_clear}${c_clear}):AFTER" $(git log -1 --format="%h" b1^) >expected &&
+       printf "BEFORE: (${c_red}(%s...)${c_clear}):AFTER" $(git log -1 --format="%h" b1^) >expected &&
        git checkout b1^ &&
        test_when_finished "git checkout master" &&
        (
@@ -627,7 +627,7 @@ test_expect_success 'prompt - bash color pc mode - dirty status indicator - befo
 '
 
 test_expect_success 'prompt - bash color pc mode - inside .git directory' '
-       printf "BEFORE: (${c_green}GIT_DIR!${c_clear}${c_clear}):AFTER" >expected &&
+       printf "BEFORE: (${c_green}GIT_DIR!${c_clear}):AFTER" >expected &&
        echo "dirty" >file &&
        test_when_finished "git reset --hard" &&
        (
@@ -666,7 +666,7 @@ test_expect_success 'prompt - bash color pc mode - untracked files status indica
 '
 
 test_expect_success 'prompt - zsh color pc mode' '
-       printf "BEFORE: (%%F{green}master%%f%%f):AFTER" >expected &&
+       printf "BEFORE: (%%F{green}master%%f):AFTER" >expected &&
        (
                ZSH_VERSION=5.0.0 &&
                GIT_PS1_SHOWCOLORHINTS=y &&