git-prompt.sh: if pc mode, immediately set PS1 to a plain prompt
authorRichard Hansen <rhansen@bbn.com>
Wed, 7 Jan 2015 01:22:26 +0000 (20:22 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 7 Jan 2015 18:27:53 +0000 (10:27 -0800)
At the beginning of __git_ps1, right after determining that the
function is running in pc mode, set PS1 to a plain (undecorated)
prompt. This makes it possible to simply return early without having
to set PS1 if the prompt should not be decorated.

Signed-off-by: Richard Hansen <rhansen@bbn.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
contrib/completion/git-prompt.sh
index 729f7694795d1116ccedfc653f82da757e6e4ef4..b0de082202b1ad912f68969fff2613794dac8bc4 100644 (file)
@@ -299,6 +299,10 @@ __git_ps1 ()
                        ps1pc_start="$1"
                        ps1pc_end="$2"
                        printf_format="${3:-$printf_format}"
+                       # set PS1 to a plain prompt so that we can
+                       # simply return early if the prompt should not
+                       # be decorated
+                       PS1="$ps1pc_start$ps1pc_end"
                ;;
                0|1)    printf_format="${1:-$printf_format}"
                ;;
@@ -350,10 +354,6 @@ __git_ps1 ()
        rev_parse_exit_code="$?"
 
        if [ -z "$repo_info" ]; then
-               if [ $pcmode = yes ]; then
-                       #In PC mode PS1 always needs to be set
-                       PS1="$ps1pc_start$ps1pc_end"
-               fi
                return
        fi
 
@@ -412,9 +412,6 @@ __git_ps1 ()
                else
                        local head=""
                        if ! __git_eread "$g/HEAD" head; then
-                               if [ $pcmode = yes ]; then
-                                       PS1="$ps1pc_start$ps1pc_end"
-                               fi
                                return
                        fi
                        # is it a symbolic ref?