]> git.vpit.fr Git - perl/modules/re-engine-Plugin.git/commitdiff
Importing re-engine-Plugin-0.05.tar.gz
authorÆvar Arnfjörð Bjarmason <avar@cpan.org>
Tue, 19 Aug 2008 14:01:00 +0000 (14:01 +0000)
committerVincent Pit <vince@profvince.com>
Tue, 19 Aug 2008 14:01:00 +0000 (14:01 +0000)
ChangeLog
META.yml
Plugin.pm
Plugin.pod
Plugin.xs

index d28858649d28e47f1a8174246d4535c224df4e66..d21dd788b3b0ee5cd356651995ade4acf3bb0169 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+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
index bf4d097276be597ecc585a51f41100cc5448d127..ac404b8fcbf0695e5293f784a3e8d1bb0655207c 100644 (file)
--- a/META.yml
+++ b/META.yml
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:                re-engine-Plugin
-version:             0.04
+version:             0.05
 abstract:            API to write custom regex engines
 license:             perl
 author:              
index d8fa3228907fb93a2913975be35c7a4769e8a26d..5b84612f64e9e5aab60691897fa13bdb868164ad 100644 (file)
--- a/Plugin.pm
+++ b/Plugin.pm
@@ -1,88 +1,88 @@
-# See Plugin.pod for documentation\r
-package re::engine::Plugin;\r
-use 5.009005;\r
-use strict;\r
-use XSLoader ();\r
-\r
-our $VERSION = '0.04';\r
-\r
-# All engines should subclass the core Regexp package\r
-our @ISA = 'Regexp';\r
-\r
-XSLoader::load __PACKAGE__, $VERSION;\r
-\r
-my $RE_ENGINE_PLUGIN = ENGINE();\r
-\r
-# How many? Used to cheat %^H\r
-my $callback = 1;\r
-\r
-# Where we store our CODE refs\r
-my %callback;\r
-\r
-# Generate a key to use in the %^H hash from a string, prefix the\r
-# package name like L<pragma> does\r
-my $key = sub { __PACKAGE__ . "::" . $_[0] };\r
-\r
-sub import\r
-{\r
-    my ($pkg, %sub) = @_;\r
-\r
-    # Valid callbacks\r
-    my @callback = qw(comp exec);\r
-\r
-    for (@callback) {\r
-        next unless exists $sub{$_};\r
-        my $cb = delete $sub{$_};\r
-\r
-        unless (ref $cb eq 'CODE') {\r
-            require Carp;\r
-            Carp::croak("'$_' is not CODE");\r
-        }\r
-\r
-        # Get an ID to use\r
-        my $id = $callback ++;\r
-\r
-        # Insert into our callback storage,\r
-        $callback{$_}->{$id} = $cb;\r
-\r
-        # Instert into our cache with a key we can retrive later\r
-        # knowing the ID in %^H and what callback we're getting\r
-        $^H{ $key->($_) } = $id;\r
-    }\r
-\r
-    $^H{regcomp} = $RE_ENGINE_PLUGIN;\r
-}\r
-\r
-sub unimport\r
-{\r
-    # Delete the regcomp hook\r
-    delete $^H{regcomp}\r
-        if $^H{regcomp} == $RE_ENGINE_PLUGIN;\r
-}\r
-\r
-# Minimal function to get CODE for a given key to be called by the\r
-# get_H_callback C function.\r
-sub _get_callback\r
-{\r
-    my ($name) = @_; # 'comp', 'exec', ...\r
-\r
-    my $h = (caller(0))[10];\r
-    my $id = $h->{ $key->($name) };\r
-\r
-    my $cb = defined $id ? $callback{$name}->{$id} : 0;\r
-\r
-    return $cb;\r
-}\r
-\r
-sub num_captures\r
-{\r
-    my ($re, %callback) = @_;\r
-\r
-    for my $key (keys %callback) {\r
-        $key =~ y/a-z/A-Z/; # ASCII uc\r
-        my $name = '_num_capture_buff_' . $key;\r
-        $re->$name( $callback{$key} );\r
-    }\r
-}\r
-\r
-1;\r
+# See Plugin.pod for documentation
+package re::engine::Plugin;
+use 5.009005;
+use strict;
+use XSLoader ();
+
+our $VERSION = '0.05';
+
+# All engines should subclass the core Regexp package
+our @ISA = 'Regexp';
+
+XSLoader::load __PACKAGE__, $VERSION;
+
+my $RE_ENGINE_PLUGIN = ENGINE();
+
+# How many? Used to cheat %^H
+my $callback = 1;
+
+# Where we store our CODE refs
+my %callback;
+
+# Generate a key to use in the %^H hash from a string, prefix the
+# package name like L<pragma> does
+my $key = sub { __PACKAGE__ . "::" . $_[0] };
+
+sub import
+{
+    my ($pkg, %sub) = @_;
+
+    # Valid callbacks
+    my @callback = qw(comp exec);
+
+    for (@callback) {
+        next unless exists $sub{$_};
+        my $cb = delete $sub{$_};
+
+        unless (ref $cb eq 'CODE') {
+            require Carp;
+            Carp::croak("'$_' is not CODE");
+        }
+
+        # Get an ID to use
+        my $id = $callback ++;
+
+        # Insert into our callback storage,
+        $callback{$_}->{$id} = $cb;
+
+        # Instert into our cache with a key we can retrive later
+        # knowing the ID in %^H and what callback we're getting
+        $^H{ $key->($_) } = $id;
+    }
+
+    $^H{regcomp} = $RE_ENGINE_PLUGIN;
+}
+
+sub unimport
+{
+    # Delete the regcomp hook
+    delete $^H{regcomp}
+        if $^H{regcomp} == $RE_ENGINE_PLUGIN;
+}
+
+# Minimal function to get CODE for a given key to be called by the
+# get_H_callback C function.
+sub _get_callback
+{
+    my ($name) = @_; # 'comp', 'exec', ...
+
+    my $h = (caller(0))[10];
+    my $id = $h->{ $key->($name) };
+
+    my $cb = defined $id ? $callback{$name}->{$id} : 0;
+
+    return $cb;
+}
+
+sub num_captures
+{
+    my ($re, %callback) = @_;
+
+    for my $key (keys %callback) {
+        $key =~ y/a-z/A-Z/; # ASCII uc
+        my $name = '_num_capture_buff_' . $key;
+        $re->$name( $callback{$key} );
+    }
+}
+
+1;
index 3ae9882d8bcd5ff26cbd5663f3ccfae1e9e916ab..76e8b3a7971423c35c7c1f010701aa4a2b73b21a 100644 (file)
@@ -397,7 +397,7 @@ E<AElig>var ArnfjE<ouml>rE<eth> Bjarmason <avar@cpan.org>
 
 =head1 LICENSE
 
-Copyright 2007 E<AElig>var ArnfjE<ouml>rE<eth> Bjarmason.
+Copyright 2007-2008 E<AElig>var ArnfjE<ouml>rE<eth> Bjarmason.
 
 This program is free software; you can redistribute it and/or modify it
 under the same terms as Perl itself.
index 5e5452a5438d48d56b42fc7f60195d7756198287..32b2eae9d96c5950e130f9092241b852f9d31369 100644 (file)
--- a/Plugin.xs
+++ b/Plugin.xs
@@ -212,7 +212,7 @@ Plugin_free(pTHX_ REGEXP * const rx)
 void *
 Plugin_dupe(pTHX_ const REGEXP * rx, CLONE_PARAMS *param)
 {
-    Perl_croak("dupe not supported yet");
+    Perl_croak(aTHX_ "dupe not supported yet");
     return rx->pprivate;
 }