Re: [PATCH v2 1/1] contrib/hooks: escape left brace in regex in the paranoid update hook
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Sep 12, 2019, 08:56 UTC
- Message-ID
- <nycvar.QRO.7.76.6.1909121055580.47@tvgsbejvaqbjf.bet>
- In-Reply-To
- <0d762cfb503fef081af9aa3cb0fe373863237745.1568238440.git.gitgitgadget@gmail.com>
Hi Dominic,
On Wed, 11 Sep 2019, Dominic Winkler via GitGitGadget wrote:
Show 10 quoted lines
> From: Dominic Winkler <d.winkler@flexarts.at>
>
> A literal "{" should now be escaped in a pattern starting from perl
> versions >= v5.26. In perl v5.22, using a literal { in a regular
> expression was deprecated, and will emit a warning if it isn't escaped: \{.
> In v5.26, this won't just warn, it'll cause a syntax error.
>
> (see https://metacpan.org/pod/release/RJBS/perl-5.22.0/pod/perldelta.pod)
>
> Signed-off-by: Dominic Winkler <d.winkler@flexarts.at>Thank you for addressing my concern so promptly. I am far from a Perl expert, so take this with a train of salt: the patch now looks good to me!
Ciao, Johannes
Show 27 quoted lines
> ---
> contrib/hooks/update-paranoid | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/contrib/hooks/update-paranoid b/contrib/hooks/update-paranoid
> index d18b317b2f..fc0a242a4e 100755
> --- a/contrib/hooks/update-paranoid
> +++ b/contrib/hooks/update-paranoid
> @@ -302,13 +302,13 @@ $op = 'U' if ($op eq 'R'
>
> RULE:
> foreach (@$rules) {
> - while (/\${user\.([a-z][a-zA-Z0-9]+)}/) {
> + while (/\$\{user\.([a-z][a-zA-Z0-9]+)}/) {
> my $k = lc $1;
> my $v = $data{"user.$k"};
> next RULE unless defined $v;
> next RULE if @$v != 1;
> next RULE unless defined $v->[0];
> - s/\${user\.$k}/$v->[0]/g;
> + s/\$\{user\.$k}/$v->[0]/g;
> }
>
> if (/^([AMD ]+)\s+of\s+([^\s]+)\s+for\s+([^\s]+)\s+diff\s+([^\s]+)$/) {
> --
> gitgitgadget
>