zshrc: Fix for detecting bzr repos with vcs_info() 0.3.52
authorFrank Terbeck <ft@grml.org>
Tue, 26 Aug 2008 23:06:15 +0000 (01:06 +0200)
committerFrank Terbeck <ft@grml.org>
Tue, 26 Aug 2008 23:06:15 +0000 (01:06 +0200)
etc/zsh/zshrc

index 6de5c64..1c38fcd 100644 (file)
@@ -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() {