+++ /dev/null
-2008-08-19 Ævar Arnfjörð Bjarmason <avar@cpan.org> (0.05)
-
- * Plugin.pm: dos2unix
- * Plugin.xs: RT#31635: Be compatable with threaded perls
-
-2007-12-27 Ævar Arnfjörð Bjarmason <avar@cpan.org> (0.04)
-
- * Plugin.pm: Setting @ISA instead of using base.pm
- * Makefile.PL: Now using ExtUtils::MakeMaker instead of Module::Install
- * Plugin.(xs|h): Fix up prototypes to match the callbacks in the actual 5.10 release
- * Plugin.xs: Dumped CODE: in favor of PPCODE:, the former is teh sux
- * Plugin.xs: Minor cleanups here and there
- * Plugin.pod: New todo and a developer release notice
- * Plugin.[h|pm]: Named buffer callbacks
- * t/methods/stash.t: Test return value of $rx->stash({});
- * t/methods/str/modify.t: New test for modification of ->str when
- a reference is used
- * t/methods/str/types.t: This was testing pattern types, fixed
- * t/Example.[t|pm]: Moved to t/usage
-
-2007-05-17 Ævar Arnfjörð Bjarmason <avar@cpan.org> (0.03)
-
- * Plugin.xs: The exec callback would call_sv on a NULL value
- causing a segfault
- * Plugin.pod: Use %hash ~~ 'i' instead of $hash{i}, more stylish!
- * inc: Bumping Module::Install to 0.65
-
-2007-05-17 Ævar Arnfjörð Bjarmason <avar@cpan.org> (0.02)
-
- * Brought up to date with current blead after lots of hacking on
- blead itself, too many changes to list
-
-2007-02-18 Ævar Arnfjörð Bjarmason <avar@cpan.org> (0.01)
-
- * Initial release
TESTS => 't/*.t t/*/*.t t/*/*/*.t',\r
},\r
);\r
+\r
+sub MY::postamble {\r
+ return <<END;\r
+ChangeLog: Makefile\r
+ git log --pretty=full . >ChangeLog\r
+\r
+META.yml: Makefile\r
+ touch META.yml\r
+\r
+END\r
+}\r
+\r
use strict;
use XSLoader ();
-our $VERSION = '0.05';
+our $VERSION = '0.06';
# All engines should subclass the core Regexp package
our @ISA = 'Regexp';
depending on variable interpolation etc.
When this module is loaded into a scope it inserts a hook into
-C<$^H{regcomp}> (as described in L<perlreapi>) to have each regexp
-constructed in its lexical scope handled by this engine, but it
-differs from other engines in that it also inserts other hooks into
-C<%^H> in the same scope that point to user-defined subroutines to use
-during compilation, execution etc, these are described in
-L</CALLBACKS> below.
+C<$^H{regcomp}> (as described in L<perlreapi> and L<perlpragma>) to
+have each regexp constructed in its lexical scope handled by this
+engine, but it differs from other engines in that it also inserts
+other hooks into C<%^H> in the same scope that point to user-defined
+subroutines to use during compilation, execution etc, these are
+described in L</CALLBACKS> below.
The callbacks (e.g. L</comp>) then get called with a
L<re::engine::Plugin> object as their first argument. This object
sub import
{
- # Populates the caller's %^H with our callbacks
+ # Sets the caller's $^H{regcomp} his %^H with our callbacks
re::engine::Plugin->import(
comp => \&comp,
exec => \&exec,
dSP;
REGEXP * rx;
re__engine__Plugin re;
- I32 count;
I32 buffers;
/* exp/xend version of the pattern & length */
STRLEN plen;
char* exp = SvPV((SV*)pattern, plen);
- char* xend = exp + plen;
/* The REGEXP structure to return to perl */
Newxz(rx, 1, REGEXP);
}
void *
-Plugin_dupe(pTHX_ const REGEXP * rx, CLONE_PARAMS *param)
+Plugin_dupe(pTHX_ REGEXP * const rx, CLONE_PARAMS *param)
{
Perl_croak(aTHX_ "dupe not supported yet");
return rx->pprivate;
SV const * const value)
{
dSP;
- I32 items;
SV * callback;
GET_SELF_FROM_PPRIVATE(rx->pprivate);
const I32 paren)
{
dSP;
- I32 items;
SV * callback;
GET_SELF_FROM_PPRIVATE(rx->pprivate);
# modifiers
my %mod = $re->mod;
ok(exists $mod{i}, 'str flags /i');
- ok(exists $mod{x}, 'str flags /i');
+ ok(exists $mod{x}, 'str flags /x');
like(join('', keys %mod), qr/^[cgimosx]+$/, 'flags contain all-good characters');
# stash