27fff27253ec7f631f3f9e51f0a9f37214d67f17

Author
Yuichi Tanikawa <t.yuichi111@gmail.com>
Committer
Marc Cornellà <marc.cornella@live.com>
Date

Message

Fix git_prompt_status() not showing ahead/behind/diverged status correctly (#5388)

Diff

 1diff --git a/lib/git.zsh b/lib/git.zsh
 2index b9069ff12c9c04701b82ac2cf5ff1b631178a680..f7eccb81d933ca2a59a98824e5eb561bcc94312e 100644
 3--- a/lib/git.zsh
 4+++ b/lib/git.zsh
 5@@ -165,13 +165,13 @@ function git_prompt_status() {
 6   if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
 7     STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
 8   fi
 9-  if $(echo "$INDEX" | grep '^## .*ahead' &> /dev/null); then
10+  if $(echo "$INDEX" | grep '^## [^ ]\+ .*ahead' &> /dev/null); then
11     STATUS="$ZSH_THEME_GIT_PROMPT_AHEAD$STATUS"
12   fi
13-  if $(echo "$INDEX" | grep '^## .*behind' &> /dev/null); then
14+  if $(echo "$INDEX" | grep '^## [^ ]\+ .*behind' &> /dev/null); then
15     STATUS="$ZSH_THEME_GIT_PROMPT_BEHIND$STATUS"
16   fi
17-  if $(echo "$INDEX" | grep '^## .*diverged' &> /dev/null); then
18+  if $(echo "$INDEX" | grep '^## [^ ]\+ .*diverged' &> /dev/null); then
19     STATUS="$ZSH_THEME_GIT_PROMPT_DIVERGED$STATUS"
20   fi
21   echo $STATUS