Boost logo

Boost Users :

From: John Maddock (john_at_[hidden])
Date: 2006-05-19 08:59:05


Andrew McDonald wrote:
> Hi,
>
> I suspect I may be about to be hideously embarassed, but for the life
> of me I cannot see what I have done wrong, so please be kind if this
> turns out to be my fault ;)

Nope, I've confirmed that as a bug in 1.33.1, the patch below will be going
into cvs shortly.

John.

Index: boost/regex/v4/perl_matcher_non_recursive.hpp
===================================================================
RCS file:
/cvsroot/boost/boost/boost/regex/v4/perl_matcher_non_recursive.hpp,v
retrieving revision 1.33
diff -u -r1.33 perl_matcher_non_recursive.hpp
--- boost/regex/v4/perl_matcher_non_recursive.hpp 27 Oct 2005
10:24:50 -00
00 1.33
+++ boost/regex/v4/perl_matcher_non_recursive.hpp 19 May 2006
12:56:31 -00
00
@@ -1066,6 +1066,8 @@
    {
       // can't repeat any more, remove the pushed state:
       destroy_single_repeat();
+ if((m_match_flags & match_partial) && (position == last) && (position
!= search_base))
+ m_has_partial_match = true;
       if(0 == (rep->can_be_null & mask_skip))
          return true;
    }
@@ -1118,6 +1120,8 @@
    {
       // can't repeat any more, remove the pushed state:
       destroy_single_repeat();
+ if((m_match_flags & match_partial) && (position == last) && (position
!= search_base))
+ m_has_partial_match = true;
       if(0 == (rep->can_be_null & mask_skip))
          return true;
    }
@@ -1182,6 +1186,8 @@
    {
       // can't repeat any more, remove the pushed state:
       destroy_single_repeat();
+ if((m_match_flags & match_partial) && (position == last) && (position
!= search_base))
+ m_has_partial_match = true;
       if(0 == (rep->can_be_null & mask_skip))
          return true;
    }
@@ -1246,6 +1252,8 @@
    {
       // can't repeat any more, remove the pushed state:
       destroy_single_repeat();
+ if((m_match_flags & match_partial) && (position == last) && (position
!= search_base))
+ m_has_partial_match = true;
       if(0 == (rep->can_be_null & mask_skip))
          return true;
    }
@@ -1311,6 +1319,8 @@
    {
       // can't repeat any more, remove the pushed state:
       destroy_single_repeat();
+ if((m_match_flags & match_partial) && (position == last) && (position
!= search_base))
+ m_has_partial_match = true;
       if(0 == (rep->can_be_null & mask_skip))
          return true;
    }


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net