Browse Source

Merge branch 'tf/prompt-preserve-exit-status'

Using the exit status of the last command in the prompt, e.g.
PS1='$(__git_ps1) $? ', did not work well because the helper
function stomped on the exit status.

* tf/prompt-preserve-exit-status:
  git-prompt: preserve value of $? in all cases
maint
Junio C Hamano 10 years ago
parent
commit
9920c71825
  1. 10
      contrib/completion/git-prompt.sh

10
contrib/completion/git-prompt.sh

@ -293,6 +293,7 @@ __git_eread () @@ -293,6 +293,7 @@ __git_eread ()
# In this mode you can request colored hints using GIT_PS1_SHOWCOLORHINTS=true
__git_ps1 ()
{
# preserve exit status
local exit=$?
local pcmode=no
local detached=no
@ -312,7 +313,7 @@ __git_ps1 () @@ -312,7 +313,7 @@ __git_ps1 ()
;;
0|1) printf_format="${1:-$printf_format}"
;;
*) return
*) return $exit
;;
esac

@ -360,7 +361,7 @@ __git_ps1 () @@ -360,7 +361,7 @@ __git_ps1 ()
rev_parse_exit_code="$?"

if [ -z "$repo_info" ]; then
return
return $exit
fi

local short_sha
@ -380,7 +381,7 @@ __git_ps1 () @@ -380,7 +381,7 @@ __git_ps1 ()
[ "$(git config --bool bash.hideIfPwdIgnored)" != "false" ] &&
git check-ignore -q .
then
return
return $exit
fi

local r=""
@ -426,7 +427,7 @@ __git_ps1 () @@ -426,7 +427,7 @@ __git_ps1 ()
else
local head=""
if ! __git_eread "$g/HEAD" head; then
return
return $exit
fi
# is it a symbolic ref?
b="${head#ref: }"
@ -523,6 +524,5 @@ __git_ps1 () @@ -523,6 +524,5 @@ __git_ps1 ()
printf -- "$printf_format" "$gitstring"
fi

# preserve exit status
return $exit
}

Loading…
Cancel
Save