diff --git a/lib/git.zsh b/lib/git.zsh index 844a31d16..360fa9086 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -8,12 +8,13 @@ function git_prompt_info() { # Checks if working tree is dirty parse_git_dirty() { - local SUBMODULE_SYNTAX='' - if [[ $POST_1_7_2_GIT -gt 0 ]]; then - SUBMODULE_SYNTAX="--ignore-submodules=dirty" - fi - if [[ -n $(git status -s ${SUBMODULE_SYNTAX} 2> /dev/null) ]]; then - echo "$ZSH_THEME_GIT_PROMPT_DIRTY" + gitstatus=$(git status --porcelain ${SUBMODULE_SYNTAX} 2> /dev/null) + if [[ -n "$gitstatus" ]]; then + if [[ "$gitstatus" =~ '^[MADRCU].*$' ]] && (($+ZSH_THEME_GIT_PROMPT_STAGED)); then + echo "$ZSH_THEME_GIT_PROMPT_STAGED" + else + echo "$ZSH_THEME_GIT_PROMPT_DIRTY" + fi else echo "$ZSH_THEME_GIT_PROMPT_CLEAN" fi