Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package perl-XS-Parse-Keyword for
openSUSE:Factory checked in at 2023-02-21 15:35:44
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-XS-Parse-Keyword (Old)
and /work/SRC/openSUSE:Factory/.perl-XS-Parse-Keyword.new.22824 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-XS-Parse-Keyword"
Tue Feb 21 15:35:44 2023 rev:13 rq:1066843 version:0.33
Changes:
--------
---
/work/SRC/openSUSE:Factory/perl-XS-Parse-Keyword/perl-XS-Parse-Keyword.changes
2023-02-01 16:50:40.621593410 +0100
+++
/work/SRC/openSUSE:Factory/.perl-XS-Parse-Keyword.new.22824/perl-XS-Parse-Keyword.changes
2023-02-21 15:35:45.572189587 +0100
@@ -1,0 +2,15 @@
+Sun Feb 19 03:06:55 UTC 2023 - Tina Müller <[email protected]>
+
+- updated to 0.33
+ see /usr/share/doc/packages/perl-XS-Parse-Keyword/Changes
+
+ 0.33 2023-02-18
+ [CHANGES]
+ * Added XPK_LEXVAR, a non `my`-alike variant
+ * Added XPK_*_pieces() macros allowing caller to dynamically
generate
+ sub-arrays of pieces
+
+ [BUGFIXES]
+ * Remember to consume whitespace between XPK_REPEATED elements
+
+-------------------------------------------------------------------
Old:
----
XS-Parse-Keyword-0.32.tar.gz
New:
----
XS-Parse-Keyword-0.33.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-XS-Parse-Keyword.spec ++++++
--- /var/tmp/diff_new_pack.VmLEJp/_old 2023-02-21 15:35:46.072192460 +0100
+++ /var/tmp/diff_new_pack.VmLEJp/_new 2023-02-21 15:35:46.076192483 +0100
@@ -18,7 +18,7 @@
%define cpan_name XS-Parse-Keyword
Name: perl-XS-Parse-Keyword
-Version: 0.32
+Version: 0.33
Release: 0
License: Artistic-1.0 OR GPL-1.0-or-later
Summary: XS functions to assist in parsing keyword syntax
++++++ XS-Parse-Keyword-0.32.tar.gz -> XS-Parse-Keyword-0.33.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/Changes
new/XS-Parse-Keyword-0.33/Changes
--- old/XS-Parse-Keyword-0.32/Changes 2023-01-12 19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/Changes 2023-02-19 00:02:29.000000000 +0100
@@ -1,5 +1,14 @@
Revision history for XS-Parse-Keyword
+0.33 2023-02-18
+ [CHANGES]
+ * Added XPK_LEXVAR, a non `my`-alike variant
+ * Added XPK_*_pieces() macros allowing caller to dynamically generate
+ sub-arrays of pieces
+
+ [BUGFIXES]
+ * Remember to consume whitespace between XPK_REPEATED elements
+
0.32 2023-01-12
[BUGFIXES]
* Ensure that XPK_TERMEXPR acting as a fullexpr is OK with empty
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/META.json
new/XS-Parse-Keyword-0.33/META.json
--- old/XS-Parse-Keyword-0.32/META.json 2023-01-12 19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/META.json 2023-02-19 00:02:29.000000000 +0100
@@ -40,19 +40,19 @@
"provides" : {
"XS::Parse::Infix" : {
"file" : "lib/XS/Parse/Infix.pm",
- "version" : "0.32"
+ "version" : "0.33"
},
"XS::Parse::Infix::Builder" : {
"file" : "lib/XS/Parse/Infix/Builder.pm",
- "version" : "0.32"
+ "version" : "0.33"
},
"XS::Parse::Keyword" : {
"file" : "lib/XS/Parse/Keyword.pm",
- "version" : "0.32"
+ "version" : "0.33"
},
"XS::Parse::Keyword::Builder" : {
"file" : "lib/XS/Parse/Keyword/Builder.pm",
- "version" : "0.32"
+ "version" : "0.33"
}
},
"release_status" : "stable",
@@ -61,6 +61,6 @@
"http://dev.perl.org/licenses/"
]
},
- "version" : "0.32",
+ "version" : "0.33",
"x_serialization_backend" : "JSON::PP version 4.07"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/META.yml
new/XS-Parse-Keyword-0.33/META.yml
--- old/XS-Parse-Keyword-0.32/META.yml 2023-01-12 19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/META.yml 2023-02-19 00:02:29.000000000 +0100
@@ -19,19 +19,19 @@
provides:
XS::Parse::Infix:
file: lib/XS/Parse/Infix.pm
- version: '0.32'
+ version: '0.33'
XS::Parse::Infix::Builder:
file: lib/XS/Parse/Infix/Builder.pm
- version: '0.32'
+ version: '0.33'
XS::Parse::Keyword:
file: lib/XS/Parse/Keyword.pm
- version: '0.32'
+ version: '0.33'
XS::Parse::Keyword::Builder:
file: lib/XS/Parse/Keyword/Builder.pm
- version: '0.32'
+ version: '0.33'
requires:
perl: '5.014'
resources:
license: http://dev.perl.org/licenses/
-version: '0.32'
+version: '0.33'
x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/README
new/XS-Parse-Keyword-0.33/README
--- old/XS-Parse-Keyword-0.32/README 2023-01-12 19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/README 2023-02-19 00:02:29.000000000 +0100
@@ -443,6 +443,19 @@
The _OPT-suffixed version is optional; if no version string is found
then sv is set to NULL.
+ XPK_LEXVAR
+
+ atomic, emits padix.
+
+ XPK_LEXVAR(kind)
+
+ A lexical variable name is expected and looked up from the current pad.
+ The resulting pad index is passed in the padix field. No error happens
+ if the variable is not found; the value NOT_IN_PAD is passed instead.
+
+ The kind argument specifies what kinds of variable are permitted, as
+ per XPK_LEXVARNAME.
+
XPK_LEXVAR_MY
atomic, emits padix.
@@ -696,6 +709,21 @@
This is a convenient shortcut to nesting the scope within a
XPK_OPTIONAL macro.
+ XPK_..._pieces
+
+ XPK_SEQUENCE_pieces(ptr)
+ XPK_OPTIONAL_pieces(ptr)
+ ...
+
+ For each of the XPK_... macros that takes a variable-length list of
+ pieces, there is a variant whose name ends with ..._pieces, taking a
+ single pointer argument directly. This must point at a const
+ XSParseKeywordPieceType [] array whose final element is the zero
+ element.
+
+ Normally hand-written C code of a fixed grammar would be unlikely to
+ use these forms, but they may be useful in dynamically-generated cases.
+
AUTHOR
Paul Evans <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/XSParseKeyword.h
new/XS-Parse-Keyword-0.33/XSParseKeyword.h
--- old/XS-Parse-Keyword-0.32/XSParseKeyword.h 2023-01-12 19:22:21.000000000
+0100
+++ new/XS-Parse-Keyword-0.33/XSParseKeyword.h 2023-02-19 00:02:29.000000000
+0100
@@ -133,6 +133,7 @@
#define XPK_LEXVARNAME(kind) {.type = XS_PARSE_KEYWORD_LEXVARNAME, .u.c = kind}
+#define XPK_LEXVAR(kind) {.type = XS_PARSE_KEYWORD_LEXVAR, .u.c = kind}
#define XPK_LEXVAR_MY(kind) {.type =
XS_PARSE_KEYWORD_LEXVAR|XPK_TYPEFLAG_SPECIAL, .u.c = kind}
#define XPK_ATTRIBUTES {.type = XS_PARSE_KEYWORD_ATTRS}
@@ -155,47 +156,51 @@
#define XPK_INFIX_MATCH_NOSMART XPK_INFIX(XPI_SELECT_MATCH_NOSMART)
#define XPK_INFIX_MATCH_SMART XPK_INFIX(XPI_SELECT_MATCH_SMART)
-#define XPK_SEQUENCE(...) \
- {.type = XS_PARSE_KEYWORD_SEQUENCE, .u.pieces = (const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
+#define XPK_SEQUENCE_pieces(p) {.type = XS_PARSE_KEYWORD_SEQUENCE, .u.pieces =
p}
+#define XPK_SEQUENCE(...) XPK_SEQUENCE_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }))
+
/* First piece of these must be something probe-able */
-#define XPK_OPTIONAL(...) \
- {.type = XS_PARSE_KEYWORD_SEQUENCE|XPK_TYPEFLAG_OPT, .u.pieces = (const
struct XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
-#define XPK_REPEATED(...) \
- {.type = XS_PARSE_KEYWORD_REPEATED, .u.pieces = (const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
+#define XPK_OPTIONAL_pieces(p) {.type =
XS_PARSE_KEYWORD_SEQUENCE|XPK_TYPEFLAG_OPT, .u.pieces = p}
+#define XPK_OPTIONAL(...) XPK_OPTIONAL_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }))
+
+#define XPK_REPEATED_pieces(p) {.type = XS_PARSE_KEYWORD_REPEATED, .u.pieces =
p}
+#define XPK_REPEATED(...) XPK_REPEATED_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }))
+
/* Every piece must be probeable */
-#define XPK_CHOICE(...) \
- {.type = XS_PARSE_KEYWORD_CHOICE, .u.pieces = (const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
+#define XPK_CHOICE_pieces(p) {.type = XS_PARSE_KEYWORD_CHOICE, .u.pieces = p}
+#define XPK_CHOICE(...) XPK_CHOICE_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }))
+
/* Every piece must be probeable, and followed by XPK_TAG */
-#define XPK_TAGGEDCHOICE(...) \
- {.type = XS_PARSE_KEYWORD_TAGGEDCHOICE, .u.pieces = (const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0}, {0} }}
-#define XPK_TAG(val) \
- {.type = val}
+#define XPK_TAGGEDCHOICE_pieces(p) {.type = XS_PARSE_KEYWORD_TAGGEDCHOICE,
.u.pieces = p}
+#define XPK_TAGGEDCHOICE(...) XPK_TAGGEDCHOICE_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0}, {0} }))
+#define XPK_TAG(val) {.type = val}
+
#define XPK_COMMALIST(...) \
{.type = XS_PARSE_KEYWORD_SEPARATEDLIST, .u.pieces = (const struct
XSParseKeywordPieceType []){ \
{.type = XS_PARSE_KEYWORD_LITERALCHAR, .u.c = ','}, __VA_ARGS__, {0}}}
#define XPK_FAILURE(s) {.type = XS_PARSE_KEYWORD_FAILURE, .u.str = (const char
*)s}
-#define XPK_PARENSCOPE(...) \
- {.type = XS_PARSE_KEYWORD_PARENSCOPE, .u.pieces = (const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
+#define XPK_PARENSCOPE_pieces(p) {.type = XS_PARSE_KEYWORD_PARENSCOPE,
.u.pieces = p}
+#define XPK_PARENSCOPE(...) XPK_PARENSCOPE_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }))
#define XPK_PARENSCOPE_OPT(...) \
{.type = XS_PARSE_KEYWORD_PARENSCOPE|XPK_TYPEFLAG_OPT, .u.pieces = (const
struct XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
-#define XPK_ARGSCOPE(...) \
- {.type = XS_PARSE_KEYWORD_PARENSCOPE|XPK_TYPEFLAG_MAYBEPARENS, .u.pieces =
(const struct XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
+#define XPK_ARGSCOPE_pieces(p) {.type =
XS_PARSE_KEYWORD_PARENSCOPE|XPK_TYPEFLAG_MAYBEPARENS, .u.pieces = p}
+#define XPK_ARGSCOPE(...) XPK_ARGSCOPE_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }))
-#define XPK_BRACKETSCOPE(...) \
- {.type = XS_PARSE_KEYWORD_BRACKETSCOPE, .u.pieces = (const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
+#define XPK_BRACKETSCOPE_pieces(p) {.type = XS_PARSE_KEYWORD_BRACKETSCOPE,
.u.pieces = p}
+#define XPK_BRACKETSCOPE(...) XPK_BRACKETSCOPE_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }))
#define XPK_BRACKETSCOPE_OPT(...) \
{.type = XS_PARSE_KEYWORD_BRACKETSCOPE|XPK_TYPEFLAG_OPT, .u.pieces = (const
struct XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
-#define XPK_BRACESCOPE(...) \
- {.type = XS_PARSE_KEYWORD_BRACESCOPE, .u.pieces = (const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
+#define XPK_BRACESCOPE_pieces(p) {.type = XS_PARSE_KEYWORD_BRACESCOPE,
.u.pieces = p}
+#define XPK_BRACESCOPE(...) XPK_BRACESCOPE_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }))
#define XPK_BRACESCOPE_OPT(...) \
{.type = XS_PARSE_KEYWORD_BRACESCOPE|XPK_TYPEFLAG_OPT, .u.pieces = (const
struct XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
-#define XPK_CHEVRONSCOPE(...) \
- {.type = XS_PARSE_KEYWORD_CHEVRONSCOPE, .u.pieces = (const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
+#define XPK_CHEVRONSCOPE_pieces(p) {.type = XS_PARSE_KEYWORD_CHEVRONSCOPE,
.u.pieces = p}
+#define XPK_CHEVRONSCOPE(...) XPK_CHEVRONSCOPE_pieces(((const struct
XSParseKeywordPieceType []){ __VA_ARGS__, {0} }))
#define XPK_CHEVRONSCOPE_OPT(...) \
{.type = XS_PARSE_KEYWORD_CHEVRONSCOPE|XPK_TYPEFLAG_OPT, .u.pieces = (const
struct XSParseKeywordPieceType []){ __VA_ARGS__, {0} }}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/lib/XS/Parse/Infix/Builder.pm
new/XS-Parse-Keyword-0.33/lib/XS/Parse/Infix/Builder.pm
--- old/XS-Parse-Keyword-0.32/lib/XS/Parse/Infix/Builder.pm 2023-01-12
19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/lib/XS/Parse/Infix/Builder.pm 2023-02-19
00:02:30.000000000 +0100
@@ -3,7 +3,7 @@
#
# (C) Paul Evans, 2021 -- [email protected]
-package XS::Parse::Infix::Builder 0.32;
+package XS::Parse::Infix::Builder 0.33;
use v5.14;
use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/XS-Parse-Keyword-0.32/lib/XS/Parse/Infix/Builder_data.pm.PL
new/XS-Parse-Keyword-0.33/lib/XS/Parse/Infix/Builder_data.pm.PL
--- old/XS-Parse-Keyword-0.32/lib/XS/Parse/Infix/Builder_data.pm.PL
2023-01-12 19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/lib/XS/Parse/Infix/Builder_data.pm.PL
2023-02-19 00:02:30.000000000 +0100
@@ -28,7 +28,7 @@
<$in_h> } );
__DATA__
-package XS::Parse::Infix::Builder_data 0.32;
+package XS::Parse::Infix::Builder_data 0.33;
use v5.14;
use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/lib/XS/Parse/Infix.pm
new/XS-Parse-Keyword-0.33/lib/XS/Parse/Infix.pm
--- old/XS-Parse-Keyword-0.32/lib/XS/Parse/Infix.pm 2023-01-12
19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/lib/XS/Parse/Infix.pm 2023-02-19
00:02:30.000000000 +0100
@@ -3,7 +3,7 @@
#
# (C) Paul Evans, 2021-2022 -- [email protected]
-package XS::Parse::Infix 0.32;
+package XS::Parse::Infix 0.33;
use v5.14;
use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/XS-Parse-Keyword-0.32/lib/XS/Parse/Keyword/Builder.pm
new/XS-Parse-Keyword-0.33/lib/XS/Parse/Keyword/Builder.pm
--- old/XS-Parse-Keyword-0.32/lib/XS/Parse/Keyword/Builder.pm 2023-01-12
19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/lib/XS/Parse/Keyword/Builder.pm 2023-02-19
00:02:30.000000000 +0100
@@ -3,7 +3,7 @@
#
# (C) Paul Evans, 2021 -- [email protected]
-package XS::Parse::Keyword::Builder 0.32;
+package XS::Parse::Keyword::Builder 0.33;
use v5.14;
use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/XS-Parse-Keyword-0.32/lib/XS/Parse/Keyword/Builder_data.pm.PL
new/XS-Parse-Keyword-0.33/lib/XS/Parse/Keyword/Builder_data.pm.PL
--- old/XS-Parse-Keyword-0.32/lib/XS/Parse/Keyword/Builder_data.pm.PL
2023-01-12 19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/lib/XS/Parse/Keyword/Builder_data.pm.PL
2023-02-19 00:02:30.000000000 +0100
@@ -28,7 +28,7 @@
<$in_h> } );
__DATA__
-package XS::Parse::Keyword::Builder_data 0.32;
+package XS::Parse::Keyword::Builder_data 0.33;
use v5.14;
use warnings;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/lib/XS/Parse/Keyword.pm
new/XS-Parse-Keyword-0.33/lib/XS/Parse/Keyword.pm
--- old/XS-Parse-Keyword-0.32/lib/XS/Parse/Keyword.pm 2023-01-12
19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/lib/XS/Parse/Keyword.pm 2023-02-19
00:02:30.000000000 +0100
@@ -3,7 +3,7 @@
#
# (C) Paul Evans, 2021-2022 -- [email protected]
-package XS::Parse::Keyword 0.32;
+package XS::Parse::Keyword 0.33;
use v5.14;
use warnings;
@@ -460,6 +460,19 @@
The C<_OPT>-suffixed version is optional; if no version string is found then
I<sv> is set to C<NULL>.
+=head2 XPK_LEXVAR
+
+I<atomic, emits padix.>
+
+ XPK_LEXVAR(kind)
+
+A lexical variable name is expected and looked up from the current pad. The
+resulting pad index is passed in the I<padix> field. No error happens if the
+variable is not found; the value C<NOT_IN_PAD> is passed instead.
+
+The C<kind> argument specifies what kinds of variable are permitted, as per
+C<XPK_LEXVARNAME>.
+
=head2 XPK_LEXVAR_MY
I<atomic, emits padix.>
@@ -700,6 +713,20 @@
This is a convenient shortcut to nesting the scope within a C<XPK_OPTIONAL>
macro.
+=head2 XPK_..._pieces
+
+ XPK_SEQUENCE_pieces(ptr)
+ XPK_OPTIONAL_pieces(ptr)
+ ...
+
+For each of the C<XPK_...> macros that takes a variable-length list of pieces,
+there is a variant whose name ends with C<..._pieces>, taking a single pointer
+argument directly. This must point at a C<const XSParseKeywordPieceType []>
+array whose final element is the zero element.
+
+Normally hand-written C code of a fixed grammar would be unlikely to use these
+forms, but they may be useful in dynamically-generated cases.
+
=cut
=head1 AUTHOR
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/src/keyword.c
new/XS-Parse-Keyword-0.33/src/keyword.c
--- old/XS-Parse-Keyword-0.32/src/keyword.c 2023-01-12 19:22:21.000000000
+0100
+++ new/XS-Parse-Keyword-0.33/src/keyword.c 2023-02-19 00:02:30.000000000
+0100
@@ -609,7 +609,11 @@
if(is_special)
THISARG.padix = pad_add_name_pvn(SvPVX(varname), SvCUR(varname), 0,
NULL, NULL);
else
- yycroak("TODO: XS_PARSE_KEYWORD_LEXVAR without LEXVAR_MY");
+#if HAVE_PERL_VERSION(5, 16, 0)
+ THISARG.padix = pad_findmy_pvn(SvPVX(varname), SvCUR(varname), 0);
+#else
+ THISARG.padix = pad_findmy(SvPVX(varname), SvCUR(varname), 0);
+#endif
(*argidx)++;
return;
@@ -689,6 +693,7 @@
(*argidx)++;
while(probe_piece(aTHX_ argsv, argidx, piece->u.pieces + 0, hookdata)) {
THISARG.i++;
+ lex_read_space(0);
parse_pieces(aTHX_ argsv, argidx, piece->u.pieces + 1, hookdata);
}
return;
@@ -710,6 +715,7 @@
if(!probe_piece(aTHX_ argsv, argidx, piece->u.pieces + 0, hookdata))
break;
+ lex_read_space(0);
}
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/t/35pieces-lexvar.t
new/XS-Parse-Keyword-0.33/t/35pieces-lexvar.t
--- old/XS-Parse-Keyword-0.32/t/35pieces-lexvar.t 2023-01-12
19:22:21.000000000 +0100
+++ new/XS-Parse-Keyword-0.33/t/35pieces-lexvar.t 2023-02-19
00:02:30.000000000 +0100
@@ -32,6 +32,9 @@
cmp_ok( $ret, '>', 0, 'result of piecelexvarmy' );
$scalar = 123;
+
+ my $ret2 = piecelexvar $scalar;
+ is( $ret2, $ret, 'result of piecelexvar matches previous' );
}
done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/XS-Parse-Keyword-0.32/t/pieces.xs
new/XS-Parse-Keyword-0.33/t/pieces.xs
--- old/XS-Parse-Keyword-0.32/t/pieces.xs 2023-01-12 19:22:21.000000000
+0100
+++ new/XS-Parse-Keyword-0.33/t/pieces.xs 2023-02-19 00:02:30.000000000
+0100
@@ -280,6 +280,13 @@
.build1 = &build_constsv,
};
+static const struct XSParseKeywordHooks hooks_lexvar = {
+ .permit_hintkey = hintkey,
+
+ .piece1 = XPK_LEXVAR(XPK_LEXVAR_ANY),
+ .build1 = &build_constpadix,
+};
+
static const struct XSParseKeywordHooks hooks_lexvar_my = {
.permit_hintkey = hintkey,
@@ -380,6 +387,7 @@
register_xs_parse_keyword("piecepkg", &hooks_packagename, NULL);
register_xs_parse_keyword("piecelexvarname", &hooks_lexvar_name, NULL);
+ register_xs_parse_keyword("piecelexvar", &hooks_lexvar, NULL);
register_xs_parse_keyword("piecelexvarmy", &hooks_lexvar_my, NULL);
register_xs_parse_keyword("pieceattrs", &hooks_attrs, NULL);