about summary refs log tree commit diff
path: root/Functions/VCS_Info/VCS_INFO_set
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2008-09-19 12:58:46 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2008-09-19 12:58:46 +0000
commit23f2b4503c9d7697e382fed550d3bf846b81dd5c (patch)
tree8953de32c2d4126882d9d4c66bcbe7b8615e3419 /Functions/VCS_Info/VCS_INFO_set
parentd9f1432e074872aa3a89515bc65ede5ad6551a47 (diff)
downloadzsh-23f2b4503c9d7697e382fed550d3bf846b81dd5c.tar.gz
zsh-23f2b4503c9d7697e382fed550d3bf846b81dd5c.tar.xz
zsh-23f2b4503c9d7697e382fed550d3bf846b81dd5c.zip
users/13252 and elsewhere: Frank Terbeck plus tweaks:
add VCS_Info function system
Diffstat (limited to 'Functions/VCS_Info/VCS_INFO_set')
-rw-r--r--Functions/VCS_Info/VCS_INFO_set32
1 files changed, 32 insertions, 0 deletions
diff --git a/Functions/VCS_Info/VCS_INFO_set b/Functions/VCS_Info/VCS_INFO_set
new file mode 100644
index 000000000..a2b838cdb
--- /dev/null
+++ b/Functions/VCS_Info/VCS_INFO_set
@@ -0,0 +1,32 @@
+## 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 -i i j
+
+if [[ $1 == '--clear' ]] ; then
+    for i in {0..9} ; do
+        unset vcs_info_msg_${i}_
+    done
+fi
+if [[ $1 == '--nvcs' ]] ; then
+    [[ $2 == '-preinit-' ]] && (( maxexports == 0 )) && (( maxexports = 1 ))
+    for i in {0..$((maxexports - 1))} ; do
+        typeset -gx vcs_info_msg_${i}_=
+    done
+    VCS_INFO_nvcsformats $2
+fi
+
+(( ${#msgs} - 1 < 0 )) && return 0
+for i in {0..$(( ${#msgs} - 1 ))} ; do
+    (( j = i + 1 ))
+    typeset -gx vcs_info_msg_${i}_=${msgs[$j]}
+done
+
+if (( i < maxexports )) ; then
+    for j in {$(( i + 1 ))..${maxexports}} ; do
+        [[ -n ${(P)${:-vcs_info_msg_${j}_}} ]] && typeset -gx vcs_info_msg_${j}_=
+    done
+fi
+return 0