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