From 9b656e87115edc0060041f14adb40dd6ea32d3d8 Mon Sep 17 00:00:00 2001 From: Frank Terbeck Date: Wed, 27 Aug 2008 01:06:15 +0200 Subject: [PATCH] zshrc: Fix for detecting bzr repos with vcs_info() --- etc/zsh/zshrc | 31 ++++++++++++++++++------------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 6de5c64..1c38fcd 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -1252,10 +1252,23 @@ VCS_INFO_bzr_get_data () { # {{{ # }}} # VCS_INFO_*_detect () {{{ +VCS_INFO_detect_by_dir() { + local tool=${1} dirname=${2} + local basedir="." + + check_com -c ${tool} || return 1 + while [[ ! -d ${basedir}/${dirname} ]]; do + basedir=${basedir}/.. + [[ $(VCS_INFO_realpath ${basedir}) = "/" ]] && return 1 + done + + printf '%s' $(VCS_INFO_realpath ${basedir}) + return 0 +} + VCS_INFO_bzr_detect() { - check_com -c bzr || return 1 - [[ -d ".bzr" ]] && return 0 - return 1 + VCS_INFO_detect_by_dir 'bzr' '.bzr' + return $? } VCS_INFO_git_detect() { @@ -1264,16 +1277,8 @@ VCS_INFO_git_detect() { } VCS_INFO_hg_detect() { - local basedir="." - - check_com -c hg || return 1 - while [[ ! -d ${basedir}/.hg ]]; do - basedir=${basedir}/.. - [[ $(VCS_INFO_realpath ${basedir}) = "/" ]] && return 1 - done - - printf '%s' $(VCS_INFO_realpath ${basedir}) - return 0 + VCS_INFO_detect_by_dir 'hg' '.hg' + return $? } VCS_INFO_svk_detect() { -- 2.1.4