summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plugins/mercurial/mercurial.plugin.zsh18
1 files changed, 15 insertions, 3 deletions
diff --git a/plugins/mercurial/mercurial.plugin.zsh b/plugins/mercurial/mercurial.plugin.zsh
index 6e72f0b1e..9b85d02f6 100644
--- a/plugins/mercurial/mercurial.plugin.zsh
+++ b/plugins/mercurial/mercurial.plugin.zsh
@@ -91,13 +91,25 @@ function hg_prompt_info {
}
function hg_dirty {
- local hg_status
- if ! hg_status="$(hg status -mar 2>/dev/null)"; then
+ # Do nothing if clean / dirty settings aren't defined
+ if [[ -z "$ZSH_THEME_HG_PROMPT_DIRTY" && -z "$ZSH_THEME_HG_PROMPT_CLEAN" ]]; then
return
fi
+ # Check if there are modifications
+ local hg_status
+ if [[ "$DISABLE_UNTRACKED_FILES_DIRTY" = true ]]; then
+ if ! hg_status="$(hg status -q 2>/dev/null)"; then
+ return
+ fi
+ else
+ if ! hg_status="$(hg status 2>/dev/null)"; then
+ return
+ fi
+ fi
+
# grep exits with 0 when dirty
- if command grep -Eq '^\s*[ACDIM!?L]' <<< "$hg_status"; then
+ if command grep -Eq '^\s*[ACDIMR!?L].*$' <<< "$hg_status"; then
echo $ZSH_THEME_HG_PROMPT_DIRTY
return
fi