From 02ac5b04dd446251b1d78cae29064cb510ee26cc Mon Sep 17 00:00:00 2001 From: Simon Ruderich Date: Tue, 21 Apr 2009 21:07:18 +0200 Subject: [PATCH] zsh: Support VCS_Info in versions earlier than 4.3.9. The VCS_Info files must be available in ~/.zsh/functions/vcs_info for this to work. A symbolic link can be used. --- zsh/rc | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/zsh/rc b/zsh/rc index e8792d1..472e92d 100644 --- a/zsh/rc +++ b/zsh/rc @@ -104,8 +104,18 @@ PROMPT="%{${fg[green]}%}%B%m%b%{${fg[default]}%}:\ %(1j.%{${fg[yellow]}%}%j%{${fg[default]}%}.)%(2L.+.)%# \ %(?..(%{${fg[red]}%}%B%?%b%{${fg[default]}%}%) )" -# VCS_Info was added in 4.3.9. -if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ]]; then +# VCS_Info was added in 4.3.9 but it works in earlier versions too. So load it +# if the necessary files are available in ~/.zsh/functions/vcs_info (often a +# symbolic link to current checkout of Zsh's sources). +if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) || + -d ~/.zsh/functions/vcs_info ]]; then + # Update fpath to allow loading the VCS_Info functions. + if [[ -d ~/.zsh/functions/vcs_info ]]; then + fpath=(~/.zsh/functions/vcs_info/ + ~/.zsh/functions/vcs_info/Backends + $fpath) + fi + # Allow substitutions and expansions in the prompt, necessary for # vcs_info. setopt promptsubst @@ -130,7 +140,14 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ]]; then add-zsh-hook precmd prompt_precmd # Display the vcs information in the right prompt. - RPROMPT='${vcs_info_msg_0_}' + if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ]]; then + RPROMPT='${vcs_info_msg_0_}' + # There is a bug in Zsh below 4.3.9 which displays a wrong symbol when + # ${vcs_info_msg_0_} is empty. Provide a workaround for those versions, + # thanks to Frank Terbeck for it. + else + RPROMPT='${vcs_info_msg_0_:- }' + fi fi # When screen or xterm is used set the name of the window to the currently -- 2.45.2