To add a literal percent character to a Zsh prompt, the string "%%" is
used in PS1.  Bash and POSIX shells simply use "%".  To accommodate
this difference, use ${percent} where a percent character is expected
and define the percent variable in the set_ps1_format_vars function.

Signed-off-by: Richard Hansen <rhan...@bbn.com>
---
 t/lib-bash.sh         |  1 +
 t/lib-prompt-tests.sh | 15 ++++++++-------
 2 files changed, 9 insertions(+), 7 deletions(-)

diff --git a/t/lib-bash.sh b/t/lib-bash.sh
index 9d428bd..8a030ac 100644
--- a/t/lib-bash.sh
+++ b/t/lib-bash.sh
@@ -19,6 +19,7 @@ shellname=Bash
 ps1_expansion_enable () { shopt -s promptvars; }
 ps1_expansion_disable () { shopt -u promptvars; }
 set_ps1_format_vars () {
+       percent='%%'
        c_red='\\[\\e[31m\\]'
        c_green='\\[\\e[32m\\]'
        c_lblue='\\[\\e[1;34m\\]'
diff --git a/t/lib-prompt-tests.sh b/t/lib-prompt-tests.sh
index ba22acc..c6226b1 100644
--- a/t/lib-prompt-tests.sh
+++ b/t/lib-prompt-tests.sh
@@ -12,10 +12,11 @@
 #      (non-zero) and ps1_expansion_disable should simply return
 #      non-zero (0)
 #   3. define a function named set_ps1_format_vars that sets the
-#      variables c_red, c_green, c_lblue, and c_clear to the strings
-#      that __git_ps1 uses to add color to the prompt.  The values of
-#      these variables are used in the first argument to the printf
-#      command, so they must be escaped appropriately.
+#      variables percent, c_red, c_green, c_lblue, and c_clear to the
+#      strings that __git_ps1 uses to add percent characters and color
+#      to the prompt.  The values of these variables are used in the
+#      first argument to the printf command, so they must be escaped
+#      appropriately.
 #   4. source this library
 #   5. invoke the run_prompt_tests function
 
@@ -403,7 +404,7 @@ newline'
        '
 
        test_expect_success "$pfx - untracked files status indicator - 
untracked files" '
-               printf " (master %%)" >expected &&
+               printf " (master ${percent})" >expected &&
                (
                        GIT_PS1_SHOWUNTRACKEDFILES=y &&
                        __git_ps1 >"$actual"
@@ -442,7 +443,7 @@ newline'
        '
 
        test_expect_success "$pfx - untracked files status indicator - shell 
variable set with config enabled" '
-               printf " (master %%)" >expected &&
+               printf " (master ${percent})" >expected &&
                test_config bash.showUntrackedFiles true &&
                (
                        GIT_PS1_SHOWUNTRACKEDFILES=y &&
@@ -632,7 +633,7 @@ _run_pcmode_tests () {
 
        test_expect_success "$pfx - untracked files status indicator" '
                set_ps1expansion &&
-               pcmode_expected "BEFORE: (${c_green}%s${c_clear} 
${c_red}%%${c_clear}):AFTER\\n%s" master &&
+               pcmode_expected "BEFORE: (${c_green}%s${c_clear} 
${c_red}${percent}${c_clear}):AFTER\\n%s" master &&
                (
                        GIT_PS1_SHOWUNTRACKEDFILES=y &&
                        GIT_PS1_SHOWCOLORHINTS=y &&
-- 
2.0.0

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to