mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-06 09:01:13 +02:00
41 lines
1.4 KiB
Bash
41 lines
1.4 KiB
Bash
## vim:ft=zsh
|
|
## Written by Frank Terbeck <ft@bewatermyfriend.org>
|
|
## Distributed under the same BSD-ish license as zsh itself.
|
|
|
|
setopt localoptions noksharrays NO_shwordsplit
|
|
local action=$1 branch=$2 base=$3 staged=$4 unstaged=$5
|
|
local msg
|
|
local -i i j
|
|
|
|
if [[ -n ${action} ]] ; then
|
|
zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" actionformats msgs
|
|
(( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b|%a]-'
|
|
else
|
|
zstyle -a ":vcs_info:${vcs}:${usercontext}:${rrn}" formats msgs
|
|
(( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b]-'
|
|
fi
|
|
|
|
if [[ -n ${staged} ]] ; then
|
|
zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" stagedstr staged
|
|
[[ -z ${staged} ]] && staged='S'
|
|
fi
|
|
|
|
if [[ -n ${unstaged} ]] ; then
|
|
zstyle -s ":vcs_info:${vcs}:${usercontext}:${rrn}" unstagedstr unstaged
|
|
[[ -z ${unstaged} ]] && unstaged='U'
|
|
fi
|
|
|
|
(( ${#msgs} > maxexports )) && msgs[$(( maxexports + 1 )),-1]=()
|
|
for i in {1..${#msgs}} ; do
|
|
zformat -f msg ${msgs[$i]} \
|
|
a:${action} \
|
|
b:${branch} \
|
|
c:${staged} \
|
|
r:${base:t} \
|
|
s:${vcs} \
|
|
u:${unstaged} \
|
|
R:${base} \
|
|
S:"$(VCS_INFO_reposub ${base})"
|
|
msgs[$i]=${msg}
|
|
done
|
|
return 0
|