summaryrefslogtreecommitdiff
path: root/zshfunc/vcs-info/VCS_INFO_formats
diff options
context:
space:
mode:
Diffstat (limited to 'zshfunc/vcs-info/VCS_INFO_formats')
-rw-r--r--zshfunc/vcs-info/VCS_INFO_formats27
1 files changed, 27 insertions, 0 deletions
diff --git a/zshfunc/vcs-info/VCS_INFO_formats b/zshfunc/vcs-info/VCS_INFO_formats
new file mode 100644
index 0000000..b22d5aa
--- /dev/null
+++ b/zshfunc/vcs-info/VCS_INFO_formats
@@ -0,0 +1,27 @@
+VCS_INFO_formats () { # {{{
+ setopt localoptions noksharrays
+ local action=$1 branch=$2 base=$3
+ local msg
+ local -i i
+
+ if [[ -n ${action} ]] ; then
+ zstyle -a ":vcs_info:${vcs}:${usercontext}" actionformats msgs
+ (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b|%a]-'
+ else
+ zstyle -a ":vcs_info:${vcs}:${usercontext}" formats msgs
+ (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b]-'
+ fi
+
+ (( ${#msgs} > maxexports )) && msgs[$(( maxexports + 1 )),-1]=()
+ for i in {1..${#msgs}} ; do
+ zformat -f msg ${msgs[$i]} \
+ a:${action} \
+ b:${branch} \
+ r:${base:t} \
+ s:${vcs} \
+ R:${base} \
+ S:"$(VCS_INFO_reposub ${base})"
+ msgs[$i]=${msg}
+ done
+ return 0
+}