mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-25 17:20:25 +02:00
Frank Terbeck, Seth House: 27712, 22713, 27714:
VCS Info hooks and Mercurial improvements
This commit is contained in:
parent
94777f64e8
commit
4523ff9383
2 changed files with 43 additions and 0 deletions
|
|
@ -6,6 +6,7 @@ VCS_INFO_bydir_detect
|
|||
VCS_INFO_check_com
|
||||
VCS_INFO_formats
|
||||
VCS_INFO_get_cmd
|
||||
VCS_INFO_hook
|
||||
vcs_info_lastmsg
|
||||
VCS_INFO_maxexports
|
||||
VCS_INFO_nvcsformats
|
||||
|
|
|
|||
42
Functions/VCS_Info/VCS_INFO_hook
Normal file
42
Functions/VCS_Info/VCS_INFO_hook
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
### vim:ft=zsh:foldmethod=marker
|
||||
## Written by Frank Terbeck <ft@bewatermyfriend.org>
|
||||
## Distributed under the same BSD-ish license as zsh itself.
|
||||
|
||||
local hook func
|
||||
local -x context hook_name
|
||||
local -xi ret
|
||||
local -a hooks
|
||||
local -i debug
|
||||
|
||||
ret=0
|
||||
hook_name="$1"
|
||||
shift
|
||||
context=":vcs_info:${vcs}+${hook_name}:${usercontext}:${rrn}"
|
||||
|
||||
zstyle -t "${context}" debug && debug=1 || debug=0
|
||||
if (( debug )); then
|
||||
printf 'VCS_INFO_hook: running hook: "%s"\n' "${hook_name}"
|
||||
printf 'VCS_INFO_hook: current context: "%s"\n' "${context}"
|
||||
fi
|
||||
|
||||
zstyle -a "${context}" hooks hooks || return 0
|
||||
# protect some internal variables in hooks
|
||||
typeset -r vcs rrn usercontext maxexports msgs vcs_comm
|
||||
for hook in ${hooks} ; do
|
||||
func="+vi-${hook}"
|
||||
if (( ${+functions[$func]} == 0 )); then
|
||||
(( debug )) && printf ' + Unknown function: "%s"\n' "${func}"
|
||||
continue
|
||||
fi
|
||||
(( debug )) && printf ' + Running function: "%s"\n' "${func}"
|
||||
${func} "$@"
|
||||
case $? in
|
||||
(0)
|
||||
;;
|
||||
(*)
|
||||
break
|
||||
;;
|
||||
esac
|
||||
done
|
||||
typeset +r vcs rrn usercontext maxexports msgs vcs_comm
|
||||
return $ret
|
||||
Loading…
Add table
Add a link
Reference in a new issue