From 667bcf3bbf7133b76552e64e818b8749cafeee26 Mon Sep 17 00:00:00 2001 From: Jan Gosmann Date: Sat, 25 Feb 2012 22:52:36 +0100 Subject: [PATCH] Allow "staged" as result of parse_git_dirty(). If the corresponding parameter is not set "dirty" will be used as before. --- lib/git.zsh | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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