From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10648 invoked by alias); 1 Feb 2017 19:09:51 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 40480 Received: (qmail 1393 invoked from network); 1 Feb 2017 19:09:51 -0000 X-Qmail-Scanner-Diagnostics: from out1-smtp.messagingengine.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(66.111.4.25):SA:0(-0.7/5.0):. Processed in 0.388935 secs); 01 Feb 2017 19:09:51 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.1 X-Envelope-From: d.s@daniel.shahaf.name X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | Received-SPF: none (ns1.primenet.com.au: domain at daniel.shahaf.name does not designate permitted sender hosts) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= daniel.shahaf.name; h=date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=fHiwpDI0B2xuc4LR3wx0bqtKSnY=; b=elZDaT AeEXyNGY/c8U2qur/4eJBae2kQ4qvmcV2HOvnaTcFJ0wViVbEbLXkzYQuFfVCKut 7J1ap1Wql/NZX4potHayB/jH10iBaarpiIQVW8zXcQqhPxEdw6g9hIan1vvlw8KG BwXgSR7Cs9ulfl7J7ng5Irv4Ya4GN/W3GSNVU= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=date:from:in-reply-to:message-id :references:subject:to:x-me-sender:x-me-sender:x-sasl-enc :x-sasl-enc; s=smtpout; bh=fHiwpDI0B2xuc4LR3wx0bqtKSnY=; b=ONBlA mbt9wtfYge2PasrrmdqRG8a17u49OkIZs6/9mk41lv5ThQ1xhp2wgbccdM7y5i0W kaUVRmeLO/SbkIOWHp/2XYUrqOxOeWmuc9PpxRL85RYPMUaaSR2QolBLrEhFyLvg BbOmffPODsqABPU35HBtfTY7KZMCUUGafldVtU= X-ME-Sender: X-Sasl-enc: TanWNKwd4UCkcmWLXH8oEkyIDQKkrgJb1N5gB2wljI3b 1485976187 From: Daniel Shahaf To: zsh-workers@zsh.org Subject: [PATCH 4/4] vcs_info set-patch-format: Eliminate the remaining code duplication. Date: Wed, 1 Feb 2017 19:05:45 +0000 Message-Id: <1485975945-26420-4-git-send-email-danielsh@fujitsu.shahaf.local2> X-Mailer: git-send-email 2.1.4 In-Reply-To: <1485975945-26420-1-git-send-email-danielsh@fujitsu.shahaf.local2> References: <1485975945-26420-1-git-send-email-danielsh@fujitsu.shahaf.local2> --- Functions/VCS_Info/Backends/VCS_INFO_get_data_git | 12 ++---------- Functions/VCS_Info/Backends/VCS_INFO_get_data_hg | 14 +++----------- Functions/VCS_Info/VCS_INFO_quilt | 10 ++-------- Functions/VCS_Info/VCS_INFO_set-patch-format | 13 ++++++++++++- 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git index 84a91a7..1b25b1c 100644 --- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_git +++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_git @@ -127,16 +127,8 @@ VCS_INFO_git_handle_patches () { VCS_INFO_set-patch-format 'git_patches_applied' 'git_applied_s' \ 'git_patches_unapplied' 'git_unapplied_s' \ ":vcs_info:${vcs}:${usercontext}:${rrn}" gitmsg \ - '' - - if VCS_INFO_hook 'set-patch-format' "${gitmsg}"; then - zformat -f gitmisc "${gitmsg}" "p:${hook_com[applied]}" "u:${hook_com[unapplied]}" \ - "n:${#git_patches_applied}" "c:${#git_patches_unapplied}" \ - "a:${hook_com[all-n]}" - else - gitmisc=${hook_com[patch-replace]} - fi - hook_com=() + '' '' + gitmisc=$REPLY } gitdir=${vcs_comm[gitdir]} diff --git a/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg b/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg index 32ecb1c..143eb42 100644 --- a/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg +++ b/Functions/VCS_Info/Backends/VCS_INFO_get_data_hg @@ -207,21 +207,13 @@ 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}" ) VCS_INFO_set-patch-format 'mqpatches' 'applied_string' \ 'mqunapplied' 'unapplied_string' \ ":vcs_info:${vcs}:${usercontext}:${rrn}" hgmqstring \ - extra_hook_com - if VCS_INFO_hook 'set-patch-format' ${hgmqstring}; then - zformat -f hgmqstring "${hgmqstring}" \ - "p:${hook_com[applied]}" "u:${hook_com[unapplied]}" \ - "n:${#mqpatches}" "c:${#mqunapplied}" "a:${hook_com[all-n]}" \ - "g:${hook_com[guards]}" "G:${#mqguards}" - else - hgmqstring=${hook_com[patch-replace]} - fi - - hook_com=() + extra_hook_com extra_zformats + hgmqstring=$REPLY fi diff --git a/Functions/VCS_Info/VCS_INFO_quilt b/Functions/VCS_Info/VCS_INFO_quilt index 1874c8b..381b584 100644 --- a/Functions/VCS_Info/VCS_INFO_quilt +++ b/Functions/VCS_Info/VCS_INFO_quilt @@ -174,14 +174,8 @@ function VCS_INFO_quilt() { VCS_INFO_set-patch-format 'applied' 'applied_string' \ 'unapplied' 'unapplied_string' \ ${context} qstring \ - '' - if VCS_INFO_hook 'set-patch-format' ${qstring}; then - zformat -f qstring "${qstring}" "p:${hook_com[applied]}" "u:${hook_com[unapplied]}" \ - "n:${#applied}" "c:${#unapplied}" "a:${hook_com[all-n]}" - else - qstring=${hook_com[patch-replace]} - fi - hook_com=() + '' '' + qstring=$REPLY case ${mode} in (standalone) diff --git a/Functions/VCS_Info/VCS_INFO_set-patch-format b/Functions/VCS_Info/VCS_INFO_set-patch-format index 5534e48..c5da368 100644 --- a/Functions/VCS_Info/VCS_INFO_set-patch-format +++ b/Functions/VCS_Info/VCS_INFO_set-patch-format @@ -10,12 +10,14 @@ # $6 - name of a parameter to store a patch-format format string in # $7 - name of an assoc parameter with extra $hook_com key-value pairs for the # set-patch-format hook invocation, or '' for none +# $8 - name of an array parameter with extra arguments for the patch-format zformat call, or '' for empty +# +# The expanded patch-format string is returned in $REPLY. # # Output: # - $hook_com is overwritten and the keys 'applied', 'applied-n', # 'unapplied', 'unapplied-n', 'all-n' are set. { - local REPLY if VCS_INFO_hook 'gen-applied-string' "${(@P)1}"; then if (( ${(P)#1} )); then REPLY=${(P)1[1]} @@ -51,4 +53,13 @@ ) hook_com[all-n]=$(( ${hook_com[applied-n]} + ${hook_com[unapplied-n]} )) hook_com+=( ${7:+"${(@kvP)7}"} ) + if VCS_INFO_hook 'set-patch-format' "${(P)6}"; then + zformat -f REPLY "${(P)6}" "p:${hook_com[applied]}" "u:${hook_com[unapplied]}" \ + "n:${hook_com[applied-n]}" "c:${hook_com[unapplied-n]}" \ + "a:${hook_com[all-n]}" \ + ${8:+"${(@P)8}"} + else + REPLY=${hook_com[patch-replace]} + fi + hook_com=() }