Hello community,

here is the log from the commit of package perl-Spooky-Patterns-XS for 
openSUSE:Factory checked in at 2017-12-05 01:30:34
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Spooky-Patterns-XS (Old)
 and      /work/SRC/openSUSE:Factory/.perl-Spooky-Patterns-XS.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "perl-Spooky-Patterns-XS"

Tue Dec  5 01:30:34 2017 rev:2 rq:548102 version:1.51

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/perl-Spooky-Patterns-XS/perl-Spooky-Patterns-XS.changes
  2017-07-21 22:44:52.439029121 +0200
+++ 
/work/SRC/openSUSE:Factory/.perl-Spooky-Patterns-XS.new/perl-Spooky-Patterns-XS.changes
     2017-12-05 01:30:35.572525240 +0100
@@ -1,0 +2,5 @@
+Mon Dec  4 14:18:29 UTC 2017 - co...@suse.com
+
+- 1.51: Ignore skips at the end of a pattern
+
+-------------------------------------------------------------------

Old:
----
  Spooky-Patterns-XS-1.50.tar.gz

New:
----
  Spooky-Patterns-XS-1.51.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ perl-Spooky-Patterns-XS.spec ++++++
--- /var/tmp/diff_new_pack.DPYRaL/_old  2017-12-05 01:30:36.512491092 +0100
+++ /var/tmp/diff_new_pack.DPYRaL/_new  2017-12-05 01:30:36.536490219 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           perl-Spooky-Patterns-XS
-Version:        1.50
+Version:        1.51
 Release:        0
 %define cpan_name Spooky-Patterns-XS
 Summary:        Spooky::Patterns::XS Perl module

++++++ Spooky-Patterns-XS-1.50.tar.gz -> Spooky-Patterns-XS-1.51.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/Changes 
new/Spooky-Patterns-XS-1.51/Changes
--- old/Spooky-Patterns-XS-1.50/Changes 2017-05-08 10:33:36.462982000 +0200
+++ new/Spooky-Patterns-XS-1.51/Changes 2017-12-04 15:16:38.987570161 +0100
@@ -1,5 +1,8 @@
 Revision history for Perl extension Spooky::Patterns::XS
 
+1.51    2017-12-04
+        - Ignore skips at the end of a pattern
+
 1.50    2017-05-08
         - Support dump and load and rework data structure
           to make it fast
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/META.json 
new/Spooky-Patterns-XS-1.51/META.json
--- old/Spooky-Patterns-XS-1.50/META.json       2017-05-08 10:35:48.894502000 
+0200
+++ new/Spooky-Patterns-XS-1.51/META.json       2017-12-04 15:17:54.211367984 
+0100
@@ -4,7 +4,7 @@
       "Stephan Kulow <co...@suse.de>"
    ],
    "dynamic_config" : 1,
-   "generated_by" : "ExtUtils::MakeMaker version 7.1001, CPAN::Meta::Converter 
version 2.150005",
+   "generated_by" : "ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter 
version 2.150010",
    "license" : [
       "unknown"
    ],
@@ -45,6 +45,6 @@
          "url" : "https://github.com/coolo/spooky-pattern-xs";
       }
    },
-   "version" : "1.50",
-   "x_serialization_backend" : "JSON::PP version 2.27300"
+   "version" : "1.51",
+   "x_serialization_backend" : "JSON::PP version 2.27400_02"
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/META.yml 
new/Spooky-Patterns-XS-1.51/META.yml
--- old/Spooky-Patterns-XS-1.50/META.yml        2017-05-08 10:35:48.817508000 
+0200
+++ new/Spooky-Patterns-XS-1.51/META.yml        2017-12-04 15:17:54.159368124 
+0100
@@ -7,7 +7,7 @@
 configure_requires:
   ExtUtils::MakeMaker: '0'
 dynamic_config: 1
-generated_by: 'ExtUtils::MakeMaker version 7.1001, CPAN::Meta::Converter 
version 2.150005'
+generated_by: 'ExtUtils::MakeMaker version 7.24, CPAN::Meta::Converter version 
2.150010'
 license: unknown
 meta-spec:
   url: http://module-build.sourceforge.net/META-spec-v1.4.html
@@ -22,5 +22,5 @@
 resources:
   license: https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
   repository: https://github.com/coolo/spooky-pattern-xs
-version: '1.50'
+version: '1.51'
 x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/XS.pm 
new/Spooky-Patterns-XS-1.51/XS.pm
--- old/Spooky-Patterns-XS-1.50/XS.pm   2017-05-08 10:33:36.479003000 +0200
+++ new/Spooky-Patterns-XS-1.51/XS.pm   2017-12-04 15:16:57.179521271 +0100
@@ -23,7 +23,7 @@
 our @ISA       = qw(Exporter);
 our @EXPORT_OK = qw();
 
-our $VERSION = '1.50';
+our $VERSION = '1.51';
 
 require XSLoader;
 XSLoader::load( 'Spooky::Patterns::XS', $VERSION );
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/patterns_impl.cc 
new/Spooky-Patterns-XS-1.51/patterns_impl.cc
--- old/Spooky-Patterns-XS-1.50/patterns_impl.cc        2017-05-08 
10:33:36.174973000 +0200
+++ new/Spooky-Patterns-XS-1.51/patterns_impl.cc        2017-12-04 
15:16:07.587654549 +0100
@@ -106,7 +106,7 @@
 
 void destroy_matcher(Matcher* m)
 {
-  // do nothing, we reuse the self
+    // do nothing, we reuse the self
 }
 
 static void add_token(Matcher* m, TokenList& result, const char* start, size_t 
len, int line)
@@ -176,14 +176,21 @@
     free(copy);
     av_extend(ret, t.size());
     int index = 0;
+    uint64_t last_hash = MAX_SKIP + 1;
     for (TokenList::const_iterator it = t.begin(); it != t.end(); ++it) {
 
         // do not start with an expansion variable
         if (!index && it->hash <= MAX_SKIP)
             continue;
+        last_hash = it->hash;
         av_store(ret, index, newSVuv(it->hash));
         ++index;
     }
+    // do not end with an expansion variable either
+    if (last_hash <= MAX_SKIP)  {
+        av_pop(ret);
+    }
+
     return ret;
 }
 
@@ -675,7 +682,12 @@
 
 AV* pattern_normalize(const char* p)
 {
-    Matcher m;
+    AV* ret = newAV();
+    Matcher* m = Matcher::self();
+    if (!m) {
+        fprintf(stderr, "Need a Matcher - call init_matcher\n");
+        return ret;
+    }
     TokenList t;
     int line = 1;
     while (true) {
@@ -685,14 +697,13 @@
             copy = strndup(p, nl - p);
         else
             copy = strdup(p);
-        tokenize(&m, t, copy, line++);
+        tokenize(m, t, copy, line++);
         free(copy);
         if (!nl)
             break;
         p = nl + 1;
     }
 
-    AV* ret = newAV();
     for (TokenList::const_iterator it = t.begin(); it != t.end(); ++it) {
         AV* row = newAV();
         av_push(row, newSVuv(it->linenumber));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/t/03match.t 
new/Spooky-Patterns-XS-1.51/t/03match.t
--- old/Spooky-Patterns-XS-1.50/t/03match.t     2017-05-04 16:26:35.292100000 
+0200
+++ new/Spooky-Patterns-XS-1.51/t/03match.t     2017-12-04 15:10:20.852586153 
+0100
@@ -5,11 +5,21 @@
 use Spooky::Patterns::XS;
 
 my $m = Spooky::Patterns::XS::init_matcher();
-$m->add_pattern( 1, Spooky::Patterns::XS::parse_tokens("Hello World") );
+$m->add_pattern( 1, Spooky::Patterns::XS::parse_tokens('Hello World') );
 cmp_deeply(
     $m->find_matches('t/03match.txt'),
     [ [ 1, 1, 2 ], [ 1, 4, 4 ] ],
     "Find hello twice"
 );
 
+$m = Spooky::Patterns::XS::init_matcher();
+$m->add_pattern( 1, Spooky::Patterns::XS::parse_tokens('this is a $SKIP20') );
+use Data::Dumper;
+print Dumper($m->find_matches('t/03match.txt'));
+cmp_deeply(
+    $m->find_matches('t/03match.txt'),
+    [ [ 1, 4, 4 ] ],
+    "skip at end does not confuse it"
+);
+
 done_testing();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Spooky-Patterns-XS-1.50/t/07close.t 
new/Spooky-Patterns-XS-1.51/t/07close.t
--- old/Spooky-Patterns-XS-1.50/t/07close.t     2017-05-04 16:26:35.304099000 
+0200
+++ new/Spooky-Patterns-XS-1.51/t/07close.t     2017-12-04 14:39:44.885647226 
+0100
@@ -10,6 +10,7 @@
 
 my @ps = glob('/tmp/pattern-*');
 
+Spooky::Patterns::XS::init_matcher();
 my $p1 = Spooky::Patterns::XS::normalize( read_file('t/07close.p1') );
 my $p2 = Spooky::Patterns::XS::normalize( read_file('t/07close.p2') );
 is( Spooky::Patterns::XS::distance( $p1, $p2 ), 4, "Distance is 2" );


Reply via email to