From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 656 invoked from network); 8 Aug 2020 07:37:56 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 8 Aug 2020 07:37:56 -0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=Sender:List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Content-Transfer-Encoding:MIME-Version: Message-Id:Date:Subject:To:From:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:In-Reply-To:References; bh=kq/XR0qPSVbQDd6OI7gW56h8RTyFpF0bHXeH/scL5HU=; b=kHnZS+BGdzU74JrT9QcKR7m9vt fDBEHqCgcAm6mzSA7++fLosyrtu2/uiAbkGOEVnEOdGCaL3TxocK6Fx2sUin1Z3ovOppfPoOG/3M9 ectNMvAzdxio2YjXbVIRmt8BBFZICU2/SoX+HFn/Re9c7YOIAVlIrBsYaZs1q0asn1UG+EtEJG0jK qRGKBTcRhsWED3Dj0U5dZpyx/VvvGmR4wbNouGV0qTmho3kpT0k1OQ/8+qrBuEFVFiZFo5sOm5P9M IQzPk1eFQbbQQhLjBPuwBlumNMeh2SGIy2LAtBZnXdp+GOYEP2NQY62Tu2IdvLDoWVEi23VsziyNc sEiPpm3g==; Received: from authenticated user by zero.zsh.org with local id 1k4JQO-000LXs-AF; Sat, 08 Aug 2020 07:37:52 +0000 Authentication-Results: zsh.org; iprev=pass (out2-smtp.messagingengine.com) smtp.remote-ip=66.111.4.26; dkim=pass header.d=daniel.shahaf.name header.s=fm1 header.a=rsa-sha256; dkim=pass header.d=messagingengine.com header.s=fm3 header.a=rsa-sha256 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:48723) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1k4JIS-000LBp-Do; Sat, 08 Aug 2020 07:29:42 +0000 Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.nyi.internal (Postfix) with ESMTP id B527E5C0063; Sat, 8 Aug 2020 03:29:37 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute4.internal (MEProxy); Sat, 08 Aug 2020 03:29:37 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= daniel.shahaf.name; h=from:to:subject:date:message-id :mime-version:content-transfer-encoding; s=fm1; bh=kq/XR0qPSVbQD d6OI7gW56h8RTyFpF0bHXeH/scL5HU=; b=UseV4Ywbf3cFGGVwF6uWYkA7hHjWn xZpzS8rN6eu1TkJLZh7zBR50WKizcjpdGNl7LnNyKV8ufWRytyRA4/dmaLnwWSSP 9BqH38KALzeNFGxg1rZkgerKWbvI1+lfkuzLj1kiyZmhVBNd43/AnnFJtKPlTow+ Lf3WGKYFUkZQMG+ygqIfBnQHo+3ffysMEJabLZbt5M7ZW+SAIYE+DF73sxXQn5hw iGsieg+HkwvntKfP0mQL4x6Kf8FTJ1cCFVC3c1uac95nug/OOFDtaSfY4nhTAaUt YqywWzP7dBk4+devxhqWM4EfVBr0l5//s9mQXcitSl1uKzJevtyLYMgyQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:date:from :message-id:mime-version:subject:to:x-me-proxy:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; bh=kq/XR0qPSVbQDd6OI 7gW56h8RTyFpF0bHXeH/scL5HU=; b=c+CVIlgi6x7SGJW/fW1MJFru4XuNaaYl7 2IomlV57ShC4FJyi6d6sfV3xhyQXmkCk2lC5Y7RSn88JgJElvQ+bOqkQtHQYHoMP mzTT5+5deIoFmejgK1Yvp6cdcqucknCh2s6nGKFNo/K9rBzEa0TCSfNaWmhXa3lj KSH9vrgbNuw3ZG5GA7sIt+j7ei9JRkiZs2pOeMwKQjPrrxF6JpvvaKE0EJ0jM4RF o5Yl6OoEQYsU7dtbxIeA8tWEqciu+X1JKpK/R38GXkYSQX7fEx0bq0CgsOPWUrrM A4V70D7EskgVV+0FbKGOTrEAxjGKKf2MrnWOIRiXTeg21rSlm6Qzw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduiedrkeefgdduudelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefhvffufffkofgggfestdektddtre dttdenucfhrhhomhepffgrnhhivghlucfuhhgrhhgrfhcuoegurdhssegurghnihgvlhdr shhhrghhrghfrdhnrghmvgeqnecuggftrfgrthhtvghrnhepfffhgeettdeukeeuhfduvd ejveeftdekteejtedvhffhgeekvefgvedtleffgeefnecukfhppeejledrudekvddrjeef rdefvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpe gurdhssegurghnihgvlhdrshhhrghhrghfrdhnrghmvg X-ME-Proxy: Received: from tarpaulin.shahaf.local2 (bzq-79-182-73-32.red.bezeqint.net [79.182.73.32]) by mail.messagingengine.com (Postfix) with ESMTPA id 318DB3280059 for ; Sat, 8 Aug 2020 03:29:37 -0400 (EDT) Received: by tarpaulin.shahaf.local2 (Postfix, from userid 1000) id 4BNv4b2B3Yz2Cc; Sat, 8 Aug 2020 07:29:35 +0000 (UTC) From: Daniel Shahaf To: zsh-workers@zsh.org Subject: [PATCH] vcs_info hg: Fix changing the expansion of %g (hook_com[guards]) in the set-patch-format hook (regression from workers/40480). Date: Sat, 8 Aug 2020 07:29:34 +0000 Message-Id: <20200808072934.30137-1-danielsh@tarpaulin.shahaf.local2> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Zsh-Org-Should-ARC-Sign: true X-Validation-by: d.s@daniel.shahaf.name X-Seq: 47303 X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk X-no-archive: yes List-Id: List-Help: List-Subscribe: List-Unsubscribe: List-Post: List-Owner: List-Archive: Archived-At: Sender: Sympa Owner 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. --- Functions/VCS_Info/Backends/VCS_INFO_get_data_hg | 8 ++++++-- Functions/VCS_Info/VCS_INFO_set-patch-format | 6 ++++-- 2 files changed, 10 insertions(+), 4 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 diff --git a/Functions/VCS_Info/VCS_INFO_set-patch-format b/Functions/VCS_Info/VCS_INFO_set-patch-format index 917ebf6bf..e387110a2 100644 --- a/Functions/VCS_Info/VCS_INFO_set-patch-format +++ b/Functions/VCS_Info/VCS_INFO_set-patch-format @@ -12,7 +12,7 @@ # $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 +# $8 - name of a function that sets $reply to extra arguments for the patch-format zformat call, or '' for none # # The expanded patch-format string is returned in $REPLY. # @@ -68,10 +68,12 @@ hook_com[unapplied]=${hook_com[unapplied]//'%'/%%} fi + reply=() + [[ -n $8 ]] && "$8" 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}"} + "${reply[@]}" else unset applied_needs_escaping unapplied_needs_escaping # the hook deals with escaping REPLY=${hook_com[patch-replace]}