about summary refs log tree commit diff
path: root/Functions/VCS_Info/Backends
diff options
context:
space:
mode:
authorDaniel Shahaf <d.s@daniel.shahaf.name>2020-08-08 07:29:34 +0000
committerDaniel Shahaf <d.s@daniel.shahaf.name>2020-08-09 08:07:01 +0000
commit5448e1611d2cc4cb436fedfc3e7ff0f1ebfc766b (patch)
tree62911241550cf4575faa4f72f23c8b520eebf22e /Functions/VCS_Info/Backends
parente2be2d061a2ea1c941a3316349d6aa81c48fc378 (diff)
downloadzsh-5448e1611d2cc4cb436fedfc3e7ff0f1ebfc766b.tar.gz
zsh-5448e1611d2cc4cb436fedfc3e7ff0f1ebfc766b.tar.xz
zsh-5448e1611d2cc4cb436fedfc3e7ff0f1ebfc766b.zip
47303: vcs_info hg: Fix changing the expansion of %g (hook_com[guards]) in the set-patch-format hook (regression from workers/40480).
To reproduce, go to a hg repository with active mq guards and configure
vcs_info as follows:

    zstyle '*' get-unapplied true
    zstyle ':vcs_info:*set-patch-format*' hooks f
    zstyle '*' patch-format '[%g : %G]'
    zstyle '*' nopatch-format '[%g : %G]'
    zstyle '*' formats '%m'
    +vi-f () {
    	hook_com[guards]+=XXX
    }

The regression was first released in 5.3.1-test-2, over three years ago.
Diffstat (limited to 'Functions/VCS_Info/Backends')
-rw-r--r--Functions/VCS_Info/Backends/VCS_INFO_get_data_hg8
1 files changed, 6 insertions, 2 deletions
diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg b/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg
index 9f61aeaf4..f7e9d6f45 100644
--- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg
+++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg
@@ -217,12 +217,16 @@ if zstyle -T ":vcs_info:${vcs}:${usercontext}:${rrn}" get-mq \
     fi
 
     local -A extra_hook_com=( guards "${guards_string}"   guards-n ${#mqguards} )
-    local -a extra_zformats=( "g:${extra_hook_com[guards]}" "G:${#mqguards}" )
+
+    (( ${+functions[VCS_INFO_hg_extra_zformats]} )) || 
+    VCS_INFO_hg_extra_zformats() {
+        reply=( "g:${hook_com[guards]}" "G:${#mqguards}" )
+    }
 
     VCS_INFO_set-patch-format 'mqpatches' 'applied_string' \
                               'mqunapplied' 'unapplied_string' \
                               ":vcs_info:${vcs}:${usercontext}:${rrn}" hgmqstring \
-                              extra_hook_com extra_zformats
+                              extra_hook_com VCS_INFO_hg_extra_zformats
     hgmqstring=$REPLY
 fi