summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rw-r--r--plugins/mercurial/mercurial.plugin.zsh27
1 files changed, 22 insertions, 5 deletions
diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh
index 68a3d9a5c..f110507fd 100644
--- a/plugins/mercurial/mercurial.plugin.zsh
+++ b/plugins/mercurial/mercurial.plugin.zsh
@@ -35,12 +35,29 @@ function hg_get_branch_name() {
}
function hg_prompt_info {
- _DISPLAY=`hg branch 2>/dev/null`
- if [ $? -eq 0 ]; then
- echo "$ZSH_PROMPT_BASE_COLOR$ZSH_THEME_HG_PROMPT_PREFIX\
-$ZSH_THEME_REPO_NAME_COLOR$_DISPLAY$ZSH_PROMPT_BASE_COLOR$ZSH_PROMPT_BASE_COLOR$(hg_dirty)$ZSH_THEME_HG_PROMPT_SUFFIX$ZSH_PROMPT_BASE_COLOR"
+ local info rev branch dirty
+
+ if ! info=$(hg id --id --branch 2>/dev/null); then
+ return
+ fi
+
+ rev="${info[(w)1]}"
+ branch="${${info[(w)2]}:gs/%/%%}"
+
+ if [[ "$rev" = *+ ]]; then
+ dirty="$ZSH_THEME_HG_PROMPT_DIRTY"
+ else
+ dirty="$ZSH_THEME_HG_PROMPT_CLEAN"
fi
- unset _DISPLAY
+
+ echo "${ZSH_PROMPT_BASE_COLOR}\
+${ZSH_THEME_HG_PROMPT_PREFIX}\
+${ZSH_THEME_REPO_NAME_COLOR}\
+${branch}\
+${ZSH_PROMPT_BASE_COLOR}\
+${dirty}\
+${ZSH_THEME_HG_PROMPT_SUFFIX}\
+${ZSH_PROMPT_BASE_COLOR}"
}
function hg_dirty_choose {