From: Junio C Hamano Date: Sun, 21 Apr 2013 08:43:05 GMT Subject: Re: [PATCH] prompt: fix tracked files for zsh Message-ID: <7vr4i4uvdy.fsf@alter.siamese.dyndns.org> In-Reply-To: <1366531890-19899-1-git-send-email-felipe.contreras@gmail.com> Felipe Contreras 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? > Signed-off-by: Felipe Contreras > --- > 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