From 0362e538666d6c8522a835a2e839c63d545e385c Mon Sep 17 00:00:00 2001 From: Frank Terbeck Date: Fri, 29 Aug 2008 22:22:44 +0200 Subject: [PATCH] zshrc: Adding support for darcs repositories to vcs_info() This is pretty basic support; but at least it detects darcs repositories correctly. Since darcs has no concept of branches, but rather implements them by using multiple repositories, %b expands to the same thing %r does. --- debian/changelog | 3 ++- etc/zsh/zshrc | 23 ++++++++++++++++++++--- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/debian/changelog b/debian/changelog index b7e70e2..f4a3238 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,8 +8,9 @@ grml-etc-core (0.3.53) unstable; urgency=low of a mercurial repository. Found by Karl Voit. * zshrc: Give the user the opportunity to switch the vcs_info prompt off for certain version control systems. + * zshrc: Adding support for darcs repositories to vcs_info() - -- Frank Terbeck Fri, 29 Aug 2008 19:46:35 +0200 + -- Frank Terbeck Fri, 29 Aug 2008 22:19:38 +0200 grml-etc-core (0.3.52) unstable; urgency=low diff --git a/etc/zsh/zshrc b/etc/zsh/zshrc index 6488a51..cb261bf 100644 --- a/etc/zsh/zshrc +++ b/etc/zsh/zshrc @@ -1037,10 +1037,11 @@ fi # vcs_info() documentation: {{{ # -# The vcs_info () feature can be configured via zstyle: +# The vcs_info() feature can be configured via zstyle: # First, the context in which we are working: # :vcs_info: -# ...where is one of: git, hg, bzr, svn or svk +# ...where is one of: +# - git, git-svn, hg, darcs, bzr, svn or svk # # You can of course use ':vcs_info:*' to match all VCSs at once. # @@ -1222,6 +1223,15 @@ VCS_INFO_git_get_data () { # {{{ printf '%s' ${msg} } # }}} +VCS_INFO_darcs_get_data () { # {{{ + local msg darcsbase + + darcsbase=${vcs_comm[basedir]} + msg=$(VCS_INFO_format) + zformat -f msg "${msg}" "a:" "b:${darcsbase:t}" "s:${vcs}" "r:${darcsbase:t}" "R:${darcsbase}" + printf '%s' ${msg} +} +# }}} VCS_INFO_hg_get_data () { # {{{ local msg hgbranch hgbase @@ -1314,6 +1324,13 @@ VCS_INFO_bzr_detect() { return $? } +VCS_INFO_darcs_detect() { + check_com -c darcs || return 1 + vcs_comm[detect_need_file]=format + VCS_INFO_detect_by_dir '_darcs' + return $? +} + VCS_INFO_git_detect() { if check_com -c git && git rev-parse --is-inside-work-tree &> /dev/null ; then vcs_comm[gitdir]="$(git rev-parse --git-dir 2> /dev/null)" || return 1 @@ -1360,7 +1377,7 @@ vcs_info () { # {{{ zstyle -T ":vcs_info:${vcs}" "enable" || return 0 zstyle -a ":vcs_info:${vcs}" "disable" disabled - VCSs=(git hg bzr svn svk) + VCSs=(git hg bzr darcs svn svk) (( found = 0 )) for vcs in ${VCSs} ; do -- 2.1.4