Unfuck the last commit
[grml-etc-core.git] / etc / zsh / zshrc
index 352bd33..754de70 100644 (file)
@@ -1417,17 +1417,21 @@ VCS_INFO_formats () { # {{{
         (( ${#msgs} < 1 )) && msgs[1]=' (%s)-[%b]-'
     fi
 
-    (( ${#msgs} > maxexports )) && msgs[${maxexports},-1]=()
+    (( ${#msgs} > maxexports )) && msgs[$(( maxexports + 1 )),-1]=()
     for i in {1..${#msgs}} ; do
-        zformat -f msg ${msgs[$i]} a:${action} b:${branch} s:${vcs} r:${base:t} R:${base} S:"$(VCS_INFO_reposub ${base})"
+        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
 }
 # }}}
 VCS_INFO_maxexports () { #{{{
-    local -ix maxexports
-
     zstyle -s ":vcs_info:${vcs}:${usercontext}" "max-exports" maxexports || maxexports=2
     if [[ ${maxexports} != <-> ]] || (( maxexports < 1 )); then
         printf 'vcs_info(): expecting numeric arg >= 1 for max-exports (got %s).\n' ${maxexports}
@@ -1859,6 +1863,7 @@ vcs_info () { # {{{
     local -i found
     local -a VCSs disabled dps
     local -x vcs usercontext
+    local -ix maxexports
     local -ax msgs
     local -Ax vcs_comm
 
@@ -1956,6 +1961,8 @@ setopt prompt_subst
 # make sure to use right prompt only when not running a command
 is41 && setopt transient_rprompt
 
+# TODO: revise all these NO* variables and especially their documentation
+#       in zsh-help() below.
 is4 && [[ $NOPRECMD -eq 0 ]] && precmd () {
     [[ $NOPRECMD -gt 0 ]] && return 0
     # update VCS information
@@ -1980,6 +1987,7 @@ is4 && [[ $NOPRECMD -eq 0 ]] && precmd () {
     fi
     # adjust title of xterm
     # see http://www.faqs.org/docs/Linux-mini/Xterm-Title.html
+    [[ ${NOTITLE} -gt 0 ]] && return 0
     case $TERM in
         (xterm*|rxvt*)
             print -Pn "\e]0;%n@%m: %~\a"
@@ -2003,6 +2011,7 @@ preexec () {
         echo -ne "\ek$CMD\e\\"
     fi
 # adjust title of xterm
+    [[ ${NOTITLE} -gt 0 ]] && return 0
     case $TERM in
         (xterm*|rxvt)
             print -Pn "\e]0;%n@%m: $1\a"
@@ -2225,6 +2234,8 @@ the zsh yet. :)
   "NOCOR=1    zsh" => deactivate automatic correction
   "NOMENU=1   zsh" => do not use auto menu completion (note: use ctrl-d for completion instead!)
   "NOPRECMD=1 zsh" => disable the precmd + preexec commands (set GNU screen title)
+  "NOTITLE=1  zsh" => disable setting the title of xterms without disabling
+                      preexec() and precmd() completely
   "BATTERY=1  zsh" => activate battery status (via acpi) on right side of prompt
 
 A value greater than 0 is enables a feature; a value equal to zero