%{^CAPTURE_ALL} was intended to be an alias for %-; make it so.
authorVickenty Fesunov <kent@setattr.net>
Fri, 22 Sep 2017 23:00:46 +0000 (19:00 -0400)
committerTony Cook <tony@develop-help.com>
Wed, 19 Jun 2019 04:22:10 +0000 (14:22 +1000)
For: RT #131867

Committer: Increment $VERSION in ext/Tie-Hash-NamedCapture/NamedCapture.pm.
Add Vickenty Fesunov to AUTHORS.

AUTHORS
ext/Tie-Hash-NamedCapture/NamedCapture.pm
ext/Tie-Hash-NamedCapture/NamedCapture.xs
ext/Tie-Hash-NamedCapture/t/tiehash.t

diff --git a/AUTHORS b/AUTHORS
index 0091100..c920d52 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -1265,6 +1265,7 @@ Unicode Consortium                <unicode.org>
 Vadim Konovalov                        <vkonovalov@lucent.com>
 Valeriy E. Ushakov             <uwe@ptc.spbu.ru>
 Vernon Lyon                    <vlyon@cpan.org>
+Vickenty Fesunov                       <kent@setattr.net>
 Victor Adam                    <victor@drawall.cc>
 Victor Efimov                  <victor@vsespb.ru>
 Viktor Turskyi                 <koorchik@gmail.com>
index 32a0029..fb505f7 100644 (file)
@@ -1,7 +1,7 @@
 use strict;
 package Tie::Hash::NamedCapture;
 
-our $VERSION = "0.10";
+our $VERSION = "0.11";
 
 require XSLoader;
 XSLoader::load(); # This returns true, which makes require happy.
index 7eaae56..a607c10 100644 (file)
@@ -25,8 +25,11 @@ _tie_it(SV *sv)
     GV * const gv = (GV *)sv;
     HV * const hv = GvHVn(gv);
     SV *rv = newSV_type(SVt_RV);
+    const char *gv_name = GvNAME(gv);
   CODE:
-    SvRV_set(rv, newSVuv(*GvNAME(gv) == '-' ? RXapif_ALL : RXapif_ONE));
+    SvRV_set(rv, newSVuv(
+        strEQ(gv_name, "-") || strEQ(gv_name, "\003APTURE_ALL")
+            ? RXapif_ALL : RXapif_ONE));
     SvROK_on(rv);
     sv_bless(rv, GvSTASH(CvGV(cv)));
 
index 3ebc81a..9627540 100644 (file)
@@ -3,7 +3,12 @@ use strict;
 
 use Test::More;
 
-my %hashes = ('+' => \%+, '-' => \%-);
+my %hashes = (
+    '+' => \%+,
+    '-' => \%-,
+    '{^CAPTURE}' => \%{^CAPTURE},
+    '{^CAPTURE_ALL}' => \%{^CAPTURE_ALL},
+);
 
 foreach (['plus1'],
         ['minus1', all => 1],
@@ -20,12 +25,12 @@ foreach (['plus1'],
 is("abcdef" =~ /(?<foo>[ab])*(?<bar>c)(?<foo>d)(?<bar>[ef]*)/, 1,
    "We matched");
 
-foreach my $name (qw(+ plus1 plus2 plus3)) {
+foreach my $name (qw(+ {^CAPTURE} plus1 plus2 plus3)) {
     my $hash = $hashes{$name};
     is_deeply($hash, { foo => 'b', bar => 'c' }, "%$name is as expected");
 }
 
-foreach my $name (qw(- minus1 minus2)) {
+foreach my $name (qw(- {^CAPTURE_ALL} minus1 minus2)) {
     my $hash = $hashes{$name};
     is_deeply($hash, { foo => [qw(b d)], bar => [qw(c ef)] },
              "%$name is as expected");