Re: [PATCH] prompt: fix tracked files for zsh
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:56:56
Felipe Contreras [off-list ref] writes:
When this option is enabled, the prompt gets totally screwed in zsh because all the codes start with % in zsh (like they are \ in bas). So we need to escape the % character.
It is not that I do not believe that $u needs to duplicate %% in ZSH, but I hate it when I do not understand the explanation. Could you help me clarify what you meant by "codes" and "like they are \ in bas"? Are you referring to things like \u (user) \h (host) as "code" and "bas" was a simple typo of "bash"? In other words, is my reading below: ... because '%' is used as an introducer of prompt customization in zsh (just like bash prompt uses '\' to introduce \u, \h, etc.), we need to give '%%' to get a literal per-cent character. match what you meant to say?
quoted hunk
Signed-off-by: Felipe Contreras <redacted> --- contrib/completion/git-prompt.sh | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)diff --git a/contrib/completion/git-prompt.sh b/contrib/completion/git-prompt.sh index 756a951..4bedbcc 100644 --- a/contrib/completion/git-prompt.sh +++ b/contrib/completion/git-prompt.sh@@ -340,7 +340,11 @@ __git_ps1 () [ "$(git config --bool bash.showUntrackedFiles)" != "false" ] && [ -n "$(git ls-files --others --exclude-standard)" ] then - u="%" + if [ -n "${ZSH_VERSION-}" ]; then + u="%%" + else + u="%" + fi fi if [ -n "${GIT_PS1_SHOWUPSTREAM-}" ]; then