Compare commits

...

7 Commits

Author SHA1 Message Date
5c896e27be Fix for .{n,} failing in partial matches.
Fix for [\x0-\xff] failing in wide character expressions.


[SVN r26566]
2004-12-21 17:07:46 +00:00
8f7eba97a0 Fix problem with match_any and POSIX-style matches (match results structure wasn't getting filled in).
Fixed problem with gcc in -pedantic mode.


[SVN r26348]
2004-11-29 13:50:17 +00:00
922551d17d Updated gcc install docs.
[SVN r26320]
2004-11-27 11:13:24 +00:00
06faa199cb Enable auto-linking for compilers other than MSVC.
[SVN r26147]
2004-11-08 12:24:18 +00:00
83987c4789 Convert docs to the Boost License 1.0
[SVN r26044]
2004-11-01 11:47:24 +00:00
5145c6b902 Convert docs to the Boost License 1.0
[SVN r26043]
2004-11-01 11:37:47 +00:00
9c4edd82d5 This commit was manufactured by cvs2svn to create branch 'RC_1_32_0'.
[SVN r25797]
2004-10-20 08:26:43 +00:00
13 changed files with 105 additions and 77 deletions

View File

@ -24,6 +24,10 @@
</P>
<HR>
<p></p>
<P>Boost 1.32.1.</P>
<UL>
<LI>
Fixed bug in partial matches of bounded repeats of '.'.</LI></UL>
<P>Boost 1.31.0.</P>
<UL>
<LI>

View File

@ -132,25 +132,24 @@
Microsoft's Compiler:</P>
<UL>
<LI>
There have been some reports of compiler-optimization bugs affecting this
library, (particularly with VC6 versions prior to service patch 5) the
workaround is to build the library using /Oityb1 rather than /O2. That is to
use all optimization settings except /Oa. This problem is reported to affect
some standard library code as well (in fact I'm not sure if the problem is with
the regex code or the underlying standard library), so it's probably worthwhile
applying this workaround in normal practice in any case.</LI>
There have been some reports of compiler-optimization bugs affecting this
library, (particularly with VC6 versions prior to service patch 5) the
workaround is to build the library using /Oityb1 rather than /O2. That is to
use all optimization settings except /Oa. This problem is reported to affect
some standard library code as well (in fact I'm not sure if the problem is with
the regex code or the underlying standard library), so it's probably worthwhile
applying this workaround in normal practice in any case.
<LI>
If you have replaced the C++ standard library that comes with VC6, then when
you build the library you must ensure that the environment variables "INCLUDE"
and "LIB" have been updated to reflect the include and library paths for the
new library - see vcvars32.bat (part of your Visual Studio installation) for
more details.
</LI>
If you have replaced the C++ standard library that comes with VC6, then when
you build the library you must ensure that the environment variables "INCLUDE"
and "LIB" have been updated to reflect the include and library paths for the
new library - see vcvars32.bat (part of your Visual Studio installation) for
more details.
<LI>
If you are building with the full STLPort v4.x, then use the vc6-stlport.mak
file provided and set the environment variable STLPORT_PATH to point to the
location of your STLPort installation (Note that the full STLPort libraries
appear not to support single-thread static builds).</LI>
If you are building with the full STLPort v4.x, then use the vc6-stlport.mak
file provided and set the environment variable STLPORT_PATH to point to the
location of your STLPort installation (Note that the full STLPort libraries
appear not to support single-thread static builds).
<LI>
If you are building your application with /Zc:wchar_t then you will need to
modify the makefile to add /Zc:wchar_t before building the library.
@ -158,22 +157,23 @@
</UL>
<P><B><A name="gcc"></A>GCC(2.95 and 3.x)</B>
</P>
<P>You can build with gcc using the normal boost Jamfile in
&lt;boost&gt;/libs/regex/build, alternatively there is a conservative makefile
for the g++ compiler. From the command prompt change to the
&lt;boost&gt;/libs/regex/build directory and type:
<P>The best way to&nbsp;build with gcc is using the <A href="../../../more/getting_started.html">
normal boost Jamfile in &lt;boost&gt;/libs/regex/build</A>, alternatively
there is a conservative makefile for the g++ compiler. From the command prompt
change to the &lt;boost&gt;/libs/regex/build directory and type:
</P>
<PRE>make -fgcc.mak </PRE>
<P>At the end of the build process you should have a gcc sub-directory containing
release and debug versions of the library (libboost_regex.a and
libboost_regex_debug.a). When you build projects that use regex++, you will
need to add the boost install directory to your list of include paths and add
&lt;boost&gt;/libs/regex/build/gcc/libboost_regex.a to your list of library
files.
release and debug versions of the library (libboost_regex-gcc-1_32.a and
libboost_regex-gcc-d-1_32.a). When you build projects that use regex++, you
will need to add the boost install directory to your list of include paths and
add &lt;boost&gt;/libs/regex/build/gcc/libboost_regex-gcc-1_32.a to your list
of library files.
</P>
<P>There is also a makefile to build the library as a shared library:</P>
<PRE>make -fgcc-shared.mak</PRE>
<P>which will build libboost_regex.so and libboost_regex_debug.so.</P>
<P>which will build&nbsp;libboost_regex-gcc-1_32.so and
libboost_regex-gcc-d-1_32.so.</P>
<P>Both of the these makefiles support the following environment variables:</P>
<P>CXXFLAGS: extra compiler options - note that this applies to both the debug and
release builds.</P>
@ -181,8 +181,8 @@
<P>LDFLAGS: additional linker options.</P>
<P>LIBS: additional library files.</P>
<P>For the more adventurous there is a configure script in
&lt;boost&gt;/libs/config; see the <A href="../../config/config.htm">config library
documentation</A>.</P>
&lt;boost&gt;/libs/config; see the <A href="../../config/config.htm">config
library documentation</A>.</P>
<P><B><A name="sun"></A>Sun Workshop 6.1</B></P>
<P>There is a makefile for the sun (6.1) compiler (C++ version 3.12). From the
command prompt change to the &lt;boost&gt;/libs/regex/build directory and type:
@ -212,8 +212,8 @@
) provided in &lt;boost-root&gt;/libs/regex/build - see that makefile for
details of environment variables that need to be set before use.
<P>
Alternatively you can using the <A href="../../../tools/build/index.html">Jam based
build system</A>: cd into &lt;boost&gt;/libs/regex/build and run:<PRE>bjam -sTOOLS=mytoolset</PRE>
Alternatively you can using the <A href="../../../more/getting_started.html">Jam
based build system</A>: cd into &lt;boost&gt;/libs/regex/build and run:<PRE>bjam -sTOOLS=mytoolset</PRE>
<P>
If you need to configure the library for your platform, then refer to the <A href="../../config/config.htm">
config library documentation</A>
@ -226,8 +226,7 @@
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>

View File

@ -534,6 +534,10 @@
<br>
<br>
<hr>
<p>Copyright John Maddock April 2003, all rights reserved.</p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;2003</i></p>
<p><i>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
</body>
</html>

View File

@ -24,6 +24,10 @@
</P>
<HR>
<p></p>
<P>Boost 1.32.1.</P>
<UL>
<LI>
Fixed bug in partial matches of bounded repeats of '.'.</LI></UL>
<P>Boost 1.31.0.</P>
<UL>
<LI>

View File

@ -132,25 +132,24 @@
Microsoft's Compiler:</P>
<UL>
<LI>
There have been some reports of compiler-optimization bugs affecting this
library, (particularly with VC6 versions prior to service patch 5) the
workaround is to build the library using /Oityb1 rather than /O2. That is to
use all optimization settings except /Oa. This problem is reported to affect
some standard library code as well (in fact I'm not sure if the problem is with
the regex code or the underlying standard library), so it's probably worthwhile
applying this workaround in normal practice in any case.</LI>
There have been some reports of compiler-optimization bugs affecting this
library, (particularly with VC6 versions prior to service patch 5) the
workaround is to build the library using /Oityb1 rather than /O2. That is to
use all optimization settings except /Oa. This problem is reported to affect
some standard library code as well (in fact I'm not sure if the problem is with
the regex code or the underlying standard library), so it's probably worthwhile
applying this workaround in normal practice in any case.
<LI>
If you have replaced the C++ standard library that comes with VC6, then when
you build the library you must ensure that the environment variables "INCLUDE"
and "LIB" have been updated to reflect the include and library paths for the
new library - see vcvars32.bat (part of your Visual Studio installation) for
more details.
</LI>
If you have replaced the C++ standard library that comes with VC6, then when
you build the library you must ensure that the environment variables "INCLUDE"
and "LIB" have been updated to reflect the include and library paths for the
new library - see vcvars32.bat (part of your Visual Studio installation) for
more details.
<LI>
If you are building with the full STLPort v4.x, then use the vc6-stlport.mak
file provided and set the environment variable STLPORT_PATH to point to the
location of your STLPort installation (Note that the full STLPort libraries
appear not to support single-thread static builds).</LI>
If you are building with the full STLPort v4.x, then use the vc6-stlport.mak
file provided and set the environment variable STLPORT_PATH to point to the
location of your STLPort installation (Note that the full STLPort libraries
appear not to support single-thread static builds).
<LI>
If you are building your application with /Zc:wchar_t then you will need to
modify the makefile to add /Zc:wchar_t before building the library.
@ -158,22 +157,23 @@
</UL>
<P><B><A name="gcc"></A>GCC(2.95 and 3.x)</B>
</P>
<P>You can build with gcc using the normal boost Jamfile in
&lt;boost&gt;/libs/regex/build, alternatively there is a conservative makefile
for the g++ compiler. From the command prompt change to the
&lt;boost&gt;/libs/regex/build directory and type:
<P>The best way to&nbsp;build with gcc is using the <A href="../../../more/getting_started.html">
normal boost Jamfile in &lt;boost&gt;/libs/regex/build</A>, alternatively
there is a conservative makefile for the g++ compiler. From the command prompt
change to the &lt;boost&gt;/libs/regex/build directory and type:
</P>
<PRE>make -fgcc.mak </PRE>
<P>At the end of the build process you should have a gcc sub-directory containing
release and debug versions of the library (libboost_regex.a and
libboost_regex_debug.a). When you build projects that use regex++, you will
need to add the boost install directory to your list of include paths and add
&lt;boost&gt;/libs/regex/build/gcc/libboost_regex.a to your list of library
files.
release and debug versions of the library (libboost_regex-gcc-1_32.a and
libboost_regex-gcc-d-1_32.a). When you build projects that use regex++, you
will need to add the boost install directory to your list of include paths and
add &lt;boost&gt;/libs/regex/build/gcc/libboost_regex-gcc-1_32.a to your list
of library files.
</P>
<P>There is also a makefile to build the library as a shared library:</P>
<PRE>make -fgcc-shared.mak</PRE>
<P>which will build libboost_regex.so and libboost_regex_debug.so.</P>
<P>which will build&nbsp;libboost_regex-gcc-1_32.so and
libboost_regex-gcc-d-1_32.so.</P>
<P>Both of the these makefiles support the following environment variables:</P>
<P>CXXFLAGS: extra compiler options - note that this applies to both the debug and
release builds.</P>
@ -181,8 +181,8 @@
<P>LDFLAGS: additional linker options.</P>
<P>LIBS: additional library files.</P>
<P>For the more adventurous there is a configure script in
&lt;boost&gt;/libs/config; see the <A href="../../config/config.htm">config library
documentation</A>.</P>
&lt;boost&gt;/libs/config; see the <A href="../../config/config.htm">config
library documentation</A>.</P>
<P><B><A name="sun"></A>Sun Workshop 6.1</B></P>
<P>There is a makefile for the sun (6.1) compiler (C++ version 3.12). From the
command prompt change to the &lt;boost&gt;/libs/regex/build directory and type:
@ -212,8 +212,8 @@
) provided in &lt;boost-root&gt;/libs/regex/build - see that makefile for
details of environment variables that need to be set before use.
<P>
Alternatively you can using the <A href="../../../tools/build/index.html">Jam based
build system</A>: cd into &lt;boost&gt;/libs/regex/build and run:<PRE>bjam -sTOOLS=mytoolset</PRE>
Alternatively you can using the <A href="../../../more/getting_started.html">Jam
based build system</A>: cd into &lt;boost&gt;/libs/regex/build and run:<PRE>bjam -sTOOLS=mytoolset</PRE>
<P>
If you need to configure the library for your platform, then refer to the <A href="../../config/config.htm">
config library documentation</A>
@ -226,8 +226,7 @@
24 Oct 2003
<!--webbot bot="Timestamp" endspan i-checksum="39359" --></p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;1998-
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan -->
2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%Y" startspan --> 2003<!--webbot bot="Timestamp" endspan i-checksum="39359" --></i></p>
<P><I>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <A href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</A>
or copy at <A href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</A>)</I></P>

View File

@ -694,6 +694,9 @@
</table>
</P>
<hr>
<p>Copyright John Maddock April 2003, all rights reserved.</p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;2003</i></p>
<p><i>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
</body>
</html>

View File

@ -223,7 +223,7 @@ namespace boost{ typedef wchar_t regex_wchar_type; }
# define BOOST_REGEX_DECL
#endif
#if (defined(BOOST_MSVC) || defined(__BORLANDC__)) && !defined(BOOST_REGEX_NO_LIB) && !defined(BOOST_REGEX_SOURCE) && !defined(BOOST_ALL_NO_LIB) && defined(__cplusplus)
#if !defined(BOOST_REGEX_NO_LIB) && !defined(BOOST_REGEX_SOURCE) && !defined(BOOST_ALL_NO_LIB) && defined(__cplusplus)
# define BOOST_LIB_NAME boost_regex
# if defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK)
# define BOOST_DYN_LINK

View File

@ -60,7 +60,11 @@ template class BOOST_REGEX_DECL reg_expression< BOOST_REGEX_CHAR_T >;
#elif (defined(BOOST_MSVC) && defined(_MSC_EXTENSIONS)) || defined(__GNUC__)
# ifndef BOOST_REGEX_INSTANTIATE
# define template extern template
# ifdef __GNUC__
# define template __extension__ extern template
# else
# define template extern template
# endif
# endif
# ifdef BOOST_MSVC

View File

@ -128,7 +128,7 @@ iterator BOOST_REGEX_CALL re_is_set_member(iterator next,
{
if(STR_COMP(s1, p) <= 0)
{
while(*p)++p;
do{ ++p; }while(*p);
++p;
if(STR_COMP(s1, p) >= 0)
return set_->isnot ? next : ++next;
@ -136,11 +136,11 @@ iterator BOOST_REGEX_CALL re_is_set_member(iterator next,
else
{
// skip first string
while(*p)++p;
do{ ++p; }while(*p);
++p;
}
// skip second string
while(*p)++p;
do{ ++p; }while(*p);
++p;
}
}
@ -154,7 +154,7 @@ iterator BOOST_REGEX_CALL re_is_set_member(iterator next,
if(STR_COMP(s1, p) == 0)
return set_->isnot ? next : ++next;
// skip string
while(*p)++p;
do{ ++p; }while(*p);
++p;
}
}

View File

@ -413,10 +413,11 @@ bool perl_matcher<BidiIterator, Allocator, traits, Allocator2>::match_match()
m_presult->set_second(position);
pstate = 0;
m_has_found_match = true;
if((m_match_flags & (match_posix|match_any)) == match_posix)
if((m_match_flags & match_posix) == match_posix)
{
m_result.maybe_assign(*m_presult);
return false;
if((m_match_flags & match_any) == 0)
return false;
}
#ifdef BOOST_REGEX_MATCH_EXTRA
if(match_extra & m_match_flags)

View File

@ -554,7 +554,10 @@ bool perl_matcher<BidiIterator, Allocator, traits, Allocator2>::match_dot_repeat
const re_repeat* rep = static_cast<const re_repeat*>(pstate);
unsigned count = (std::min)(static_cast<unsigned>(re_detail::distance(position, last)), static_cast<unsigned>(rep->greedy ? rep->max : rep->min));
if(rep->min > count)
{
position = last;
return false; // not enough text left to match
}
std::advance(position, count);
if(rep->greedy)

View File

@ -402,7 +402,10 @@ bool perl_matcher<BidiIterator, Allocator, traits, Allocator2>::match_dot_repeat
const re_repeat* rep = static_cast<const re_repeat*>(pstate);
unsigned count = (std::min)(static_cast<unsigned>(re_detail::distance(position, last)), (rep->greedy ? rep->max : rep->min));
if(rep->min > count)
{
position = last;
return false; // not enough text left to match
}
std::advance(position, count);
if((rep->leading) && (count < rep->max) && (rep->greedy))
restart = position;

View File

@ -65,6 +65,10 @@
the text indicated was measured.&nbsp;</p>
<P>%short_matches%</P>
<hr>
<p>Copyright John Maddock April 2003, all rights reserved.</p>
<p><i><EFBFBD> Copyright John Maddock&nbsp;2003</i></p>
<p><i>Use, modification and distribution are subject to the Boost Software License,
Version 1.0. (See accompanying file <a href="../../../LICENSE_1_0.txt">LICENSE_1_0.txt</a>
or copy at <a href="http://www.boost.org/LICENSE_1_0.txt">http://www.boost.org/LICENSE_1_0.txt</a>)</i></p>
</body>
</html>