diff --git a/doc/history.qbk b/doc/history.qbk index 54ce54e5..1af9e2ca 100644 --- a/doc/history.qbk +++ b/doc/history.qbk @@ -15,6 +15,11 @@ Currently open issues can be viewed [@https://svn.boost.org/trac/boost/query?sta All issues including closed ones can be viewed [@https://svn.boost.org/trac/boost/query?status=assigned&status=closed&status=new&status=reopened&component=regex&order=priority&col=id&col=summary&col=status&col=type&col=milestone&col=component here]. +[h4 Boost 1.47] + +Fixed issues: +[@https://svn.boost.org/trac/boost/ticket/5223 #5223]. + [h4 Boost 1.44] Fixed issues: diff --git a/doc/html/boost_regex/background_information/examples.html b/doc/html/boost_regex/background_information/examples.html index 83bbdc65..47fd2ecc 100644 --- a/doc/html/boost_regex/background_information/examples.html +++ b/doc/html/boost_regex/background_information/examples.html @@ -28,7 +28,7 @@ Example Programs
- + Test Programs
@@ -151,7 +151,7 @@ Files: captures_test.cpp.

- + Example programs
@@ -177,7 +177,7 @@ Files: regex_timer.cpp.

- + Code snippets
diff --git a/doc/html/boost_regex/background_information/history.html b/doc/html/boost_regex/background_information/history.html index 11bf5f99..bde59b6d 100644 --- a/doc/html/boost_regex/background_information/history.html +++ b/doc/html/boost_regex/background_information/history.html @@ -35,8 +35,16 @@

All issues including closed ones can be viewed here.

+
+ + Boost + 1.47 +
+

+ Fixed issues: #5223. +

- + Boost 1.44
@@ -55,7 +63,7 @@ #3890

- + Boost 1.42
@@ -84,7 +92,7 @@
- + Boost 1.40
@@ -93,7 +101,7 @@ branch resets and recursive regular expressions.
- + Boost 1.38
@@ -121,7 +129,7 @@
- + Boost 1.34
@@ -144,7 +152,7 @@
- + Boost 1.33.1
@@ -214,7 +222,7 @@
- + Boost 1.33.0
@@ -269,7 +277,7 @@
- + Boost 1.32.1
@@ -277,7 +285,7 @@ Fixed bug in partial matches of bounded repeats of '.'.
- + Boost 1.31.0
diff --git a/doc/html/boost_regex/background_information/locale.html b/doc/html/boost_regex/background_information/locale.html index a2ddf8d3..33880c20 100644 --- a/doc/html/boost_regex/background_information/locale.html +++ b/doc/html/boost_regex/background_information/locale.html @@ -58,7 +58,7 @@ There are three separate localization mechanisms supported by Boost.Regex:

- + Win32 localization model.
@@ -90,7 +90,7 @@ are treated as "unknown" graphic characters.

- + C localization model.
@@ -114,7 +114,7 @@ libraries including version 1 of this library.

- + C++ localization model.
@@ -151,7 +151,7 @@ in your code. The best way to ensure this is to add the #define to <boost/regex/user.hpp>.

- + Providing a message catalogue
diff --git a/doc/html/boost_regex/background_information/standards.html b/doc/html/boost_regex/background_information/standards.html index 1d516f79..68fd4cd4 100644 --- a/doc/html/boost_regex/background_information/standards.html +++ b/doc/html/boost_regex/background_information/standards.html @@ -28,7 +28,7 @@ Conformance
- + C++

@@ -36,7 +36,7 @@ Report on C++ Library Extensions.

- + ECMAScript / JavaScript
@@ -49,7 +49,7 @@ rather than a Unicode escape sequence; use \x{DDDD} for Unicode escape sequences.

- + Perl

@@ -73,7 +73,7 @@ the Unicode requirements below.

- + POSIX

@@ -93,7 +93,7 @@ a custom traits class.

- + Unicode

diff --git a/doc/html/boost_regex/captures.html b/doc/html/boost_regex/captures.html index 9f5ee9ba..4eb41562 100644 --- a/doc/html/boost_regex/captures.html +++ b/doc/html/boost_regex/captures.html @@ -35,7 +35,7 @@ accessed.

- + Marked sub-expressions

@@ -218,7 +218,7 @@ output stream.

- + Unmatched Sub-Expressions

@@ -231,7 +231,7 @@ you can determine which sub-expressions matched by accessing the sub_match::matched data member.

- + Repeated Captures

diff --git a/doc/html/boost_regex/format/boost_format_syntax.html b/doc/html/boost_regex/format/boost_format_syntax.html index 78856bb8..5e0f6fec 100644 --- a/doc/html/boost_regex/format/boost_format_syntax.html +++ b/doc/html/boost_regex/format/boost_format_syntax.html @@ -32,7 +32,7 @@ '$', '\', '(', ')', '?', and ':'.

- + Grouping

@@ -40,7 +40,7 @@ you want a to output literal parenthesis.

- + Conditionals

@@ -79,7 +79,7 @@ ?{NAME}true-expression:false-expression

- + Placeholder Sequences
@@ -319,7 +319,7 @@ as a literal.

- + Escape Sequences
diff --git a/doc/html/boost_regex/install.html b/doc/html/boost_regex/install.html index eb7f9ed7..ce667b30 100644 --- a/doc/html/boost_regex/install.html +++ b/doc/html/boost_regex/install.html @@ -49,7 +49,7 @@ file before you can use it, instructions for specific platforms are as follows:

- + Building with bjam

@@ -58,7 +58,7 @@ started guide for more information.

- + Building With Unicode and ICU Support
@@ -149,12 +149,20 @@ you are using is binary compatible with the toolset you use to build Boost.

+

+ And finally, if you want to build/test with multiple compiler versions, all + with different ICU builds, then the only way to achieve that currently is to + modify your user-config.jam so that each toolset has the necessary compiler/linker + options set so that ICU is found automatically by the configuration step (providing + the ICU binaries use the standard names, all you have to add is the appropriate + header-include and linker-search paths). +

- + Building via makefiles
- + Borland C++ Builder:
- + GCC(2.95 and later)

@@ -356,7 +364,7 @@ see the config library documentation.

- + Sun Workshop 6.1

@@ -401,7 +409,7 @@ will build v9 variants of the regex library named libboost_regex_v9.a etc.

- + Makefiles for Other compilers
diff --git a/doc/html/boost_regex/ref/bad_expression.html b/doc/html/boost_regex/ref/bad_expression.html index fe815a81..2d11bb19 100644 --- a/doc/html/boost_regex/ref/bad_expression.html +++ b/doc/html/boost_regex/ref/bad_expression.html @@ -27,7 +27,7 @@ bad_expression
- + Synopsis
#include <boost/pattern_except.hpp>
@@ -54,7 +54,7 @@
 } // namespace boost
 
- + Description
regex_error(const std::string& s, regex_constants::error_type err, std::ptrdiff_t pos);
diff --git a/doc/html/boost_regex/ref/basic_regex.html b/doc/html/boost_regex/ref/basic_regex.html
index cb5b8c19..9927497c 100644
--- a/doc/html/boost_regex/ref/basic_regex.html
+++ b/doc/html/boost_regex/ref/basic_regex.html
@@ -27,7 +27,7 @@
 basic_regex
 
 
- + Synopsis
#include <boost/regex.hpp>
@@ -244,7 +244,7 @@
 } // namespace boost
 
- + Description

@@ -325,7 +325,7 @@ basic_regex.

-

Table 1. basic_regex default construction postconditions

+

Table 1. basic_regex default construction postconditions

@@ -403,7 +403,7 @@ flags specified in f.

-

Table 2. Postconditions for basic_regex construction

+

Table 2. Postconditions for basic_regex construction

@@ -506,7 +506,7 @@ specified in f.

-

Table 3. Postconditions for basic_regex construction

+

Table 3. Postconditions for basic_regex construction

@@ -608,7 +608,7 @@ according the option flags specified in f.

-

Table 4. Postconditions for basic_regex construction

+

Table 4. Postconditions for basic_regex construction

@@ -716,7 +716,7 @@ flags specified in f.

-

Table 5. Postconditions for basic_regex construction

+

Table 5. Postconditions for basic_regex construction

@@ -816,7 +816,7 @@ flags specified in f.

-

Table 6. Postconditions for basic_regex construction

+

Table 6. Postconditions for basic_regex construction

@@ -1002,7 +1002,7 @@ in f.

-

Table 7. Postconditions for basic_regex::assign

+

Table 7. Postconditions for basic_regex::assign

diff --git a/doc/html/boost_regex/ref/concepts/traits_concept.html b/doc/html/boost_regex/ref/concepts/traits_concept.html index 8596e219..be80bbd4 100644 --- a/doc/html/boost_regex/ref/concepts/traits_concept.html +++ b/doc/html/boost_regex/ref/concepts/traits_concept.html @@ -34,7 +34,7 @@ Boost-specific enhanced interface.

- + Minimal requirements.
@@ -378,7 +378,7 @@
- + Additional Optional Requirements
diff --git a/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html b/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html index 97be17f9..90df092e 100644 --- a/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html +++ b/doc/html/boost_regex/ref/deprecated_interfaces/regex_format.html @@ -34,7 +34,7 @@ previous version of Boost.Regex and will not be further updated:

- + Algorithm regex_format
diff --git a/doc/html/boost_regex/ref/error_type.html b/doc/html/boost_regex/ref/error_type.html index d15f962d..a8cd039a 100644 --- a/doc/html/boost_regex/ref/error_type.html +++ b/doc/html/boost_regex/ref/error_type.html @@ -27,7 +27,7 @@ error_type
- + Synopsis

@@ -57,7 +57,7 @@ } // namespace boost

- + Description

diff --git a/doc/html/boost_regex/ref/match_flag_type.html b/doc/html/boost_regex/ref/match_flag_type.html index dc312b3a..e76b864f 100644 --- a/doc/html/boost_regex/ref/match_flag_type.html +++ b/doc/html/boost_regex/ref/match_flag_type.html @@ -69,7 +69,7 @@ } // namespace boost

- + Description

diff --git a/doc/html/boost_regex/ref/match_results.html b/doc/html/boost_regex/ref/match_results.html index 1eeac81c..3cc8f202 100644 --- a/doc/html/boost_regex/ref/match_results.html +++ b/doc/html/boost_regex/ref/match_results.html @@ -27,7 +27,7 @@ match_results

- + Synopsis
#include <boost/regex.hpp>
@@ -167,7 +167,7 @@
          match_results<BidirectionalIterator, Allocator>& m2);
 
- + Description

diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html index 9af309c9..48867621 100644 --- a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html +++ b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_algo.html @@ -43,7 +43,7 @@ on to the "real" algorithm.

- + u32regex_match

@@ -89,7 +89,7 @@ }

- + u32regex_search

@@ -128,7 +128,7 @@ }

- + u32regex_replace

diff --git a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html index 14acb365..07ca66e2 100644 --- a/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html +++ b/doc/html/boost_regex/ref/non_std_strings/icu/unicode_iter.html @@ -28,7 +28,7 @@ Aware Regex Iterators

- + u32regex_iterator

@@ -126,7 +126,7 @@ Provided of course that the input is encoded as UTF-8.

- + u32regex_token_iterator

diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html index 11a031be..fced7a46 100644 --- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html +++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_algo.html @@ -34,7 +34,7 @@ here they are anyway:

- + regex_match

@@ -82,7 +82,7 @@ }

- + regex_match (second overload)
@@ -110,7 +110,7 @@ }
- + regex_search

@@ -149,7 +149,7 @@ }

- + regex_search (second overload)
@@ -164,7 +164,7 @@ + s.GetLength(), e, f);

- + regex_replace

diff --git a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html index 84fd643c..76ac2b79 100644 --- a/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html +++ b/doc/html/boost_regex/ref/non_std_strings/mfc_strings/mfc_iter.html @@ -32,7 +32,7 @@ an MFC/ATL string to a regex_iterator or regex_token_iterator:

- + regex_iterator creation helper
@@ -68,7 +68,7 @@ }
- + regex_token_iterator creation helpers
diff --git a/doc/html/boost_regex/ref/posix.html b/doc/html/boost_regex/ref/posix.html index a7e0c22a..93e70c4f 100644 --- a/doc/html/boost_regex/ref/posix.html +++ b/doc/html/boost_regex/ref/posix.html @@ -163,7 +163,7 @@

- + regcomp

@@ -375,7 +375,7 @@

- + regerror

@@ -461,7 +461,7 @@ buffer.

- + regexec

@@ -529,7 +529,7 @@

- + regfree

diff --git a/doc/html/boost_regex/ref/regex_iterator.html b/doc/html/boost_regex/ref/regex_iterator.html index f6fab86c..5cc52f18 100644 --- a/doc/html/boost_regex/ref/regex_iterator.html +++ b/doc/html/boost_regex/ref/regex_iterator.html @@ -78,7 +78,7 @@ regex_constants::match_flag_type m = regex_constants::match_default);

- + Description

@@ -415,7 +415,7 @@ m.

- + Examples

diff --git a/doc/html/boost_regex/ref/regex_match.html b/doc/html/boost_regex/ref/regex_match.html index bdd5d505..2cb52851 100644 --- a/doc/html/boost_regex/ref/regex_match.html +++ b/doc/html/boost_regex/ref/regex_match.html @@ -80,7 +80,7 @@ match_flag_type flags = match_default);

- + Description
template <class BidirectionalIterator, class Allocator, class charT, class traits>
@@ -361,7 +361,7 @@
         Effects: Returns the result of regex_match(s.begin(), s.end(), e, flags).
       

- + Examples

diff --git a/doc/html/boost_regex/ref/regex_replace.html b/doc/html/boost_regex/ref/regex_replace.html index 8df0fae8..2dfae921 100644 --- a/doc/html/boost_regex/ref/regex_replace.html +++ b/doc/html/boost_regex/ref/regex_replace.html @@ -53,7 +53,7 @@ match_flag_type flags = match_default);

- + Description
template <class OutputIterator, class BidirectionalIterator, class traits, class Formatter>
@@ -199,7 +199,7 @@
         and then returns result.
       

- + Examples

diff --git a/doc/html/boost_regex/ref/regex_search.html b/doc/html/boost_regex/ref/regex_search.html index a3b6db4b..7353a683 100644 --- a/doc/html/boost_regex/ref/regex_search.html +++ b/doc/html/boost_regex/ref/regex_search.html @@ -73,7 +73,7 @@ match_flag_type flags = match_default);

- + Description
template <class BidirectionalIterator, class Allocator, class charT, class traits>
@@ -357,7 +357,7 @@
         Effects: Returns the result of regex_search(s.begin(), s.end(), e, flags).
       

- + Examples

diff --git a/doc/html/boost_regex/ref/regex_token_iterator.html b/doc/html/boost_regex/ref/regex_token_iterator.html index b6adc6ba..459f2615 100644 --- a/doc/html/boost_regex/ref/regex_token_iterator.html +++ b/doc/html/boost_regex/ref/regex_token_iterator.html @@ -136,7 +136,7 @@ regex_constants::match_flag_type m = regex_constants::match_default);

- + Description
regex_token_iterator();
@@ -357,7 +357,7 @@
         m.
       

- + Examples

diff --git a/doc/html/boost_regex/ref/regex_traits.html b/doc/html/boost_regex/ref/regex_traits.html index 36ebcebb..22fcad80 100644 --- a/doc/html/boost_regex/ref/regex_traits.html +++ b/doc/html/boost_regex/ref/regex_traits.html @@ -46,7 +46,7 @@ } // namespace boost

- + Description

diff --git a/doc/html/boost_regex/ref/sub_match.html b/doc/html/boost_regex/ref/sub_match.html index e8ed8911..ac4c19ba 100644 --- a/doc/html/boost_regex/ref/sub_match.html +++ b/doc/html/boost_regex/ref/sub_match.html @@ -329,11 +329,11 @@ } // namespace boost

- + Description
- + Members
typedef typename std::iterator_traits<iterator>::value_type value_type;
@@ -446,7 +446,7 @@
           
 
 
- + sub_match non-member operators
@@ -883,7 +883,7 @@ + m2.str().

- + Stream inserter
template <class charT, class traits, class BidirectionalIterator>
diff --git a/doc/html/boost_regex/syntax/basic_extended.html b/doc/html/boost_regex/syntax/basic_extended.html
index 38920736..538fb781 100644
--- a/doc/html/boost_regex/syntax/basic_extended.html
+++ b/doc/html/boost_regex/syntax/basic_extended.html
@@ -28,7 +28,7 @@
       Expression Syntax
 
 

- + Synopsis

@@ -44,7 +44,7 @@ boost::regex e2(my_expression, boost::regex::extended|boost::regex::icase);

- + POSIX Extended Syntax

@@ -54,7 +54,7 @@

.[{}()\*+?|^$
- + Wildcard:

@@ -72,7 +72,7 @@

- + Anchors:

@@ -84,7 +84,7 @@ of an expression, or the last character of a sub-expression.

- + Marked sub-expressions:
@@ -96,7 +96,7 @@ to by a back-reference.

- + Repeats:

@@ -182,7 +182,7 @@ cab operator to be applied to.

- + Back references:

@@ -212,7 +212,7 @@ cab

- + Alternation

@@ -225,7 +225,7 @@ cab will match either of "abd" or "abef".

- + Character sets:
@@ -238,7 +238,7 @@ cab A bracket expression may contain any combination of the following:

- + Single characters:
@@ -247,7 +247,7 @@ cab or 'c'.

- + Character ranges:
@@ -263,7 +263,7 @@ cab the code points of the characters only.

- + Negation:

@@ -272,7 +272,7 @@ cab range a-c.

- + Character classes:
@@ -282,7 +282,7 @@ cab character class names.

- + Collating Elements:
@@ -310,7 +310,7 @@ cab matches a NUL character.

- + Equivalence classes:
@@ -327,7 +327,7 @@ cab or even all locales on one platform.

- + Combinations:

@@ -335,7 +335,7 @@ cab [[:digit:]a-c[.NUL.]].

- + Escapes

@@ -361,7 +361,7 @@ cab extensions are also supported by Boost.Regex:

- + Escapes matching a specific character
@@ -550,7 +550,7 @@ cab
- + "Single character" character classes:
@@ -704,7 +704,7 @@ cab
- + Character Properties
@@ -811,7 +811,7 @@ cab matches any "digit" character, as does \p{digit}.

- + Word Boundaries

@@ -886,7 +886,7 @@ cab

- + Buffer boundaries
@@ -977,7 +977,7 @@ cab
- + Continuation Escape
@@ -989,7 +989,7 @@ cab match to start where the last one ended.

- + Quoting escape
@@ -1003,7 +1003,7 @@ cab \*+aaa
- + Unicode escapes
@@ -1054,7 +1054,7 @@ cab
- + Any other escape
@@ -1063,7 +1063,7 @@ cab \@ matches a literal '@'.

- + Operator precedence
@@ -1100,7 +1100,7 @@ cab
- + What Gets Matched
@@ -1110,11 +1110,11 @@ cab rule.

- + Variations

- + Egrep

@@ -1135,7 +1135,7 @@ cab used with the -E option.

- + awk

@@ -1149,7 +1149,7 @@ cab these by default anyway.

- + Options

@@ -1162,7 +1162,7 @@ cab modify how the case and locale sensitivity are to be applied.

- + References

diff --git a/doc/html/boost_regex/syntax/basic_syntax.html b/doc/html/boost_regex/syntax/basic_syntax.html index 9680dab0..05b11625 100644 --- a/doc/html/boost_regex/syntax/basic_syntax.html +++ b/doc/html/boost_regex/syntax/basic_syntax.html @@ -28,7 +28,7 @@ Expression Syntax

- + Synopsis

@@ -43,7 +43,7 @@ boost::regex e2(my_expression, boost::regex::basic|boost::regex::icase);

- + POSIX Basic Syntax

@@ -53,7 +53,7 @@

.[\*^$
- + Wildcard:

@@ -71,7 +71,7 @@

- + Anchors:

@@ -83,7 +83,7 @@ of an expression, or the last character of a sub-expression.

- + Marked sub-expressions:
@@ -95,7 +95,7 @@ by a back-reference.

- + Repeats:

@@ -153,7 +153,7 @@ aaaa to.

- + Back references:

@@ -171,7 +171,7 @@ aaaa

aaabba
- + Character sets:
@@ -184,7 +184,7 @@ aaaa A bracket expression may contain any combination of the following:

- + Single characters:
@@ -193,7 +193,7 @@ aaaa or 'c'.

- + Character ranges:
@@ -209,7 +209,7 @@ aaaa of the characters only.

- + Negation:

@@ -218,7 +218,7 @@ aaaa range a-c.

- + Character classes:
@@ -228,7 +228,7 @@ aaaa character class names.

- + Collating Elements:
@@ -257,7 +257,7 @@ aaaa element names.

- + Equivalence classes:
@@ -274,7 +274,7 @@ aaaa or even all locales on one platform.

- + Combinations:

@@ -282,7 +282,7 @@ aaaa [[:digit:]a-c[.NUL.]].

- + Escapes

@@ -297,7 +297,7 @@ aaaa will match either a literal '\' or a '^'.

- + What Gets Matched

@@ -307,11 +307,11 @@ aaaa rule.

- + Variations

- + Grep

@@ -329,7 +329,7 @@ aaaa As its name suggests, this behavior is consistent with the Unix utility grep.

- + emacs

@@ -609,7 +609,7 @@ aaaa leftmost-longest rule.

- + Options

@@ -623,7 +623,7 @@ aaaa options modify how the case and locale sensitivity are to be applied.

- + References

diff --git a/doc/html/boost_regex/syntax/perl_syntax.html b/doc/html/boost_regex/syntax/perl_syntax.html index 29c25b23..560fd763 100644 --- a/doc/html/boost_regex/syntax/perl_syntax.html +++ b/doc/html/boost_regex/syntax/perl_syntax.html @@ -28,7 +28,7 @@ Syntax

- + Synopsis

@@ -43,7 +43,7 @@ boost::regex e2(my_expression, boost::regex::perl|boost::regex::icase);

- + Perl Regular Expression Syntax

@@ -53,7 +53,7 @@

.[{}()\*+?|^$
- + Wildcard

@@ -73,7 +73,7 @@

- + Anchors

@@ -83,7 +83,7 @@ A '$' character shall match the end of a line.

- + Marked sub-expressions
@@ -94,7 +94,7 @@ can also repeated, or referred to by a back-reference.

- + Non-marking grouping
@@ -107,7 +107,7 @@ without splitting out any separate sub-expressions.

- + Repeats

@@ -188,7 +188,7 @@ to be applied to.

- + Non greedy repeats
@@ -218,7 +218,7 @@ while consuming as little input as possible.

- + Possessive repeats
@@ -250,7 +250,7 @@ while giving nothing back.

- + Back references

@@ -360,7 +360,7 @@ named "two".

- + Alternation

@@ -387,7 +387,7 @@ (?:abc)?? has exactly the same effect.

- + Character sets

@@ -399,7 +399,7 @@ A bracket expression may contain any combination of the following:

- + Single characters

@@ -407,7 +407,7 @@ 'b', or 'c'.

- + Character ranges
@@ -421,7 +421,7 @@ sensitive.

- + Negation

@@ -430,7 +430,7 @@ matches any character that is not in the range a-c.

- + Character classes
@@ -441,7 +441,7 @@ class names.

- + Collating Elements
@@ -463,7 +463,7 @@ matches a \0 character.

- + Equivalence classes
@@ -480,7 +480,7 @@ or even all locales on one platform.

- + Escaped Characters
@@ -492,7 +492,7 @@ is not a "word" character.

- + Combinations

@@ -500,7 +500,7 @@ [[:digit:]a-c[.NUL.]].

- + Escapes

@@ -692,7 +692,7 @@

- + "Single character" character classes:
@@ -894,7 +894,7 @@
- + Character Properties
@@ -1002,7 +1002,7 @@ as does \p{digit}.

- + Word Boundaries

@@ -1021,7 +1021,7 @@ \B Matches only when not at a word boundary.

- + Buffer boundaries

@@ -1048,7 +1048,7 @@ (?=\n?\z).

- + Continuation Escape
@@ -1060,7 +1060,7 @@ one ended.

- + Quoting escape

@@ -1073,7 +1073,7 @@ \*+aaa

- + Unicode escapes

@@ -1083,7 +1083,7 @@ followed by a sequence of zero or more combining characters.

- + Matching Line Endings
@@ -1092,7 +1092,7 @@ sequence, specifically it is identical to the expression (?>\x0D\x0A?|[\x0A-\x0C\x85\x{2028}\x{2029}]).

- + Keeping back some text
@@ -1107,7 +1107,7 @@ This can be used to simulate variable width lookbehind assertions.

- + Any other escape
@@ -1116,7 +1116,7 @@ \@ matches a literal '@'.

- + Perl Extended Patterns
@@ -1125,7 +1125,7 @@ (?.

- + Named Subexpressions
@@ -1147,14 +1147,14 @@ format string for search and replace operations, or in the match_results member functions.

- + Comments

(?# ... ) is treated as a comment, it's contents are ignored.

- + Modifiers

@@ -1168,7 +1168,7 @@ pattern only.

- + Non-marking groups
@@ -1177,7 +1177,7 @@ an additional sub-expression.

- + Branch reset

@@ -1199,7 +1199,7 @@ # 1 2 2 3 2 3 4

- + Lookahead

@@ -1222,7 +1222,7 @@ could be used to validate the password.

- + Lookbehind

@@ -1236,7 +1236,7 @@ (pattern must be of fixed length).

- + Independent sub-expressions
@@ -1249,7 +1249,7 @@ no match is found at all.

- + Recursive Expressions
@@ -1273,7 +1273,7 @@ to the next sub-expression to be declared.

- + Conditional Expressions
@@ -1323,7 +1323,7 @@
- + Operator precedence
@@ -1358,7 +1358,7 @@

- + What gets matched

@@ -1534,7 +1534,7 @@

- + Variations

@@ -1543,7 +1543,7 @@ and JScript are all synonyms for perl.

- + Options

@@ -1555,7 +1555,7 @@ are to be applied.

- + Pattern Modifiers

@@ -1567,7 +1567,7 @@ and no_mod_s.

- + References

diff --git a/doc/html/boost_regex/unicode.html b/doc/html/boost_regex/unicode.html index 97eef55f..f88297e8 100644 --- a/doc/html/boost_regex/unicode.html +++ b/doc/html/boost_regex/unicode.html @@ -30,7 +30,7 @@ There are two ways to use Boost.Regex with Unicode strings:

- + Rely on wchar_t

@@ -56,7 +56,7 @@

- + Use a Unicode Aware Regular Expression Type.
diff --git a/doc/html/index.html b/doc/html/index.html index 63ade3fa..870c10a9 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -28,7 +28,7 @@
-

+

Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)

@@ -195,7 +195,7 @@

- +

Last revised: January 01, 2011 at 12:24:16 GMT

Last revised: March 18, 2011 at 16:45:40 GMT


diff --git a/doc/install.qbk b/doc/install.qbk index 375a0be2..a795fc66 100644 --- a/doc/install.qbk +++ b/doc/install.qbk @@ -93,6 +93,12 @@ that you are using to build Boost. Boost.Regex will not work correctly unless you ensure that this is the case: it is up to you to ensure that the version of ICU you are using is binary compatible with the toolset you use to build Boost.] +And finally, if you want to build/test with multiple compiler versions, all with different ICU +builds, then the only way to achieve that currently is to modify your user-config.jam so that +each toolset has the necessary compiler/linker options set so that ICU is found automatically +by the configuration step (providing the ICU binaries use the standard names, all you have to +add is the appropriate header-include and linker-search paths). + [h4 Building via makefiles] [h5 Borland C++ Builder:] diff --git a/include/boost/regex/config.hpp b/include/boost/regex/config.hpp index a88a7852..3b92e6ae 100644 --- a/include/boost/regex/config.hpp +++ b/include/boost/regex/config.hpp @@ -163,8 +163,10 @@ * with MSVC and the /Zc:wchar_t option we place some extra unsigned short versions * of the non-inline functions in the library, so that users can still link to the lib, * irrespective of whether their own code is built with /Zc:wchar_t. + * Note that this does NOT WORK with VC10 when the C++ locale is in effect as + * the locale's facets simply do not compile in that case. */ -#if defined(__cplusplus) && (defined(BOOST_MSVC) || defined(__ICL)) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) && defined(BOOST_WINDOWS) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && !defined(BOOST_RWSTD_VER) +#if defined(__cplusplus) && (defined(BOOST_MSVC) || defined(__ICL)) && !defined(BOOST_NO_INTRINSIC_WCHAR_T) && defined(BOOST_WINDOWS) && !defined(__SGI_STL_PORT) && !defined(_STLPORT_VERSION) && !defined(BOOST_RWSTD_VER) && ((_MSC_VER < 1600) || !defined(BOOST_REGEX_USE_CPP_LOCALE)) # define BOOST_REGEX_HAS_OTHER_WCHAR_T # ifdef BOOST_MSVC # pragma warning(push) diff --git a/include/boost/regex/pending/object_cache.hpp b/include/boost/regex/pending/object_cache.hpp index db60e28a..05b6bfa2 100644 --- a/include/boost/regex/pending/object_cache.hpp +++ b/include/boost/regex/pending/object_cache.hpp @@ -73,7 +73,7 @@ boost::shared_ptr object_cache::get(const Key& k, siz // for now just throw, but we should never really get here... // ::boost::throw_exception(std::runtime_error("Error in thread safety code: could not acquire a lock")); -#ifdef BOOST_NO_UNREACHABLE_RETURN_DETECTION +#if defined(BOOST_NO_UNREACHABLE_RETURN_DETECTION) || defined(BOOST_NO_EXCEPTIONS) return boost::shared_ptr(); #endif #else diff --git a/include/boost/regex/v4/basic_regex.hpp b/include/boost/regex/v4/basic_regex.hpp index 04c7bb37..53b7bcaa 100644 --- a/include/boost/regex/v4/basic_regex.hpp +++ b/include/boost/regex/v4/basic_regex.hpp @@ -1,7 +1,7 @@ /* * - * Copyright (c) 1998-2004 - * John Maddock + * Copyright (c) 1998-2004 John Maddock + * Copyright 2011 Garmin Ltd. or its subsidiaries * * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at @@ -234,7 +234,7 @@ public: std::pair BOOST_REGEX_CALL subexpression(std::size_t n)const { if(n == 0) - throw std::out_of_range("0 is not a valid subexpression index."); + boost::throw_exception(std::out_of_range("0 is not a valid subexpression index.")); const std::pair& pi = this->m_subs.at(n - 1); std::pair p(expression() + pi.first, expression() + pi.second); return p; @@ -487,7 +487,7 @@ public: std::pair BOOST_REGEX_CALL subexpression(std::size_t n)const { if(!m_pimpl.get()) - throw std::logic_error("Can't access subexpressions in an invalid regex."); + boost::throw_exception(std::logic_error("Can't access subexpressions in an invalid regex.")); return m_pimpl->subexpression(n); } const_iterator BOOST_REGEX_CALL begin()const diff --git a/include/boost/regex/v4/basic_regex_parser.hpp b/include/boost/regex/v4/basic_regex_parser.hpp index 4dacfc6f..0192a9f1 100644 --- a/include/boost/regex/v4/basic_regex_parser.hpp +++ b/include/boost/regex/v4/basic_regex_parser.hpp @@ -2711,6 +2711,8 @@ regex_constants::syntax_option_type basic_regex_parser::parse_opt } } while(!breakout); + + breakout = false; if(*m_position == static_cast('-')) { diff --git a/include/boost/regex/v4/cpp_regex_traits.hpp b/include/boost/regex/v4/cpp_regex_traits.hpp index cd22bd8e..bcae455a 100644 --- a/include/boost/regex/v4/cpp_regex_traits.hpp +++ b/include/boost/regex/v4/cpp_regex_traits.hpp @@ -1,7 +1,7 @@ /* * - * Copyright (c) 2004 - * John Maddock + * Copyright (c) 2004 John Maddock + * Copyright 2011 Garmin Ltd. or its subsidiaries * * Use, modification and distribution are subject to the * Boost Software License, Version 1.0. (See accompanying file @@ -511,7 +511,9 @@ typename cpp_regex_traits_implementation::string_type // however at least one std lib will always throw // std::bad_alloc for certain arguments... // +#ifndef BOOST_NO_EXCEPTIONS try{ +#endif // // What we do here depends upon the format of the sort key returned by // sort key returned by this->transform: @@ -546,7 +548,9 @@ typename cpp_regex_traits_implementation::string_type result.erase(i); break; } +#ifndef BOOST_NO_EXCEPTIONS }catch(...){} +#endif while(result.size() && (charT(0) == *result.rbegin())) result.erase(result.size() - 1); if(result.empty()) @@ -576,7 +580,9 @@ typename cpp_regex_traits_implementation::string_type // std::bad_alloc for certain arguments... // string_type result; +#ifndef BOOST_NO_EXCEPTIONS try{ +#endif result = this->m_pcollate->transform(p1, p2); // // Borland's STLPort version returns a NULL-terminated @@ -593,10 +599,12 @@ typename cpp_regex_traits_implementation::string_type result.erase(result.size() - 1); #endif BOOST_ASSERT(std::find(result.begin(), result.end(), charT(0)) == result.end()); +#ifndef BOOST_NO_EXCEPTIONS } catch(...) { } +#endif return result; } diff --git a/include/boost/regex/v4/u32regex_token_iterator.hpp b/include/boost/regex/v4/u32regex_token_iterator.hpp index 4b0ac927..de167716 100644 --- a/include/boost/regex/v4/u32regex_token_iterator.hpp +++ b/include/boost/regex/v4/u32regex_token_iterator.hpp @@ -317,14 +317,14 @@ inline u32regex_token_iterator make_u32regex_token_iterator(cons template inline u32regex_token_iterator make_u32regex_token_iterator(const UChar* p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default) { - return u32regex_token_iterator(p, p+u_strlen(p), e, m); + return u32regex_token_iterator(p, p+u_strlen(p), e, submatch, m); } #endif template inline u32regex_token_iterator::const_iterator> make_u32regex_token_iterator(const std::basic_string& p, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default) { typedef typename std::basic_string::const_iterator iter_type; - return u32regex_token_iterator(p.begin(), p.end(), e, m); + return u32regex_token_iterator(p.begin(), p.end(), e, submatch, m); } template inline u32regex_token_iterator make_u32regex_token_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, const int (&submatch)[N], regex_constants::match_flag_type m = regex_constants::match_default) @@ -354,7 +354,7 @@ template inline u32regex_token_iterator::const_iterator> make_u32regex_token_iterator(const std::basic_string& p, const u32regex& e, const std::vector& submatch, regex_constants::match_flag_type m = regex_constants::match_default) { typedef typename std::basic_string::const_iterator iter_type; - return u32regex_token_iterator(p.begin(), p.end(), e, m); + return u32regex_token_iterator(p.begin(), p.end(), e, submatch, m); } inline u32regex_token_iterator make_u32regex_token_iterator(const U_NAMESPACE_QUALIFIER UnicodeString& s, const u32regex& e, const std::vector& submatch, regex_constants::match_flag_type m = regex_constants::match_default) { diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index ce198b56..d31366f2 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -174,6 +174,18 @@ test-suite regex : # requirements BOOST_REGEX_RECURSIVE=1 : regex_regress_recursive ] + +[ run regress/$(R_SOURCE) ./noeh_test//boost_regex_noeh + ../build//icu_options + : # command line + : # input files + : # requirements + BOOST_NO_EXCEPTIONS=1 + off + static + shared + : regex_regress_noeh ] + ; build-project ../example ; diff --git a/test/noeh_test/Jamfile.v2 b/test/noeh_test/Jamfile.v2 new file mode 100644 index 00000000..dcaa84b9 --- /dev/null +++ b/test/noeh_test/Jamfile.v2 @@ -0,0 +1,50 @@ +# copyright John Maddock 2011 +# Distributed under the Boost Software License, Version 1.0. +# (See accompanying file LICENSE_1_0.txt or copy at +# http://www.boost.org/LICENSE_1_0.txt. + +project + : requirements + multi + shared:BOOST_REGEX_DYN_LINK=1 + msvc-7.1:TEST_MFC=1 + msvc-7.0:TEST_MFC=1 + msvc:on + # There are unidentified linker problems on these platforms: + mipspro-7.4:static + sun-5.9:static + all + gcc:-Wextra + gcc:-Wshadow + U_USING_ICU_NAMESPACE=0 + #gcc-mw:static + #gcc-mingw:static + gcc-cygwin:static + ; + + +lib boost_regex_noeh : + ../../src/c_regex_traits.cpp + ../../src/cpp_regex_traits.cpp + ../../src/cregex.cpp + ../../src/fileiter.cpp + ../../src/icu.cpp + ../../src/instances.cpp + ../../src/posix_api.cpp + ../../src/regex.cpp + ../../src/regex_debug.cpp + ../../src/regex_raw_buffer.cpp + ../../src/regex_traits_defaults.cpp + ../../src/static_mutex.cpp + ../../src/w32_regex_traits.cpp + ../../src/wc_regex_traits.cpp + ../../src/wide_posix_api.cpp + ../../src/winstances.cpp + ../../src/usinstances.cpp + ../../build//icu_options + : + static + BOOST_NO_EXCEPTIONS=1 + off + : + ; \ No newline at end of file diff --git a/test/regress/main.cpp b/test/regress/main.cpp index 50315794..85ece016 100644 --- a/test/regress/main.cpp +++ b/test/regress/main.cpp @@ -208,4 +208,16 @@ void test(const wchar_t& c, const test_invalid_regex_tag& tag) } #endif +#ifdef BOOST_NO_EXCETIONS +namespace boost{ + +void throw_exception( std::exception const & e ) +{ + std::cerr << e.what() << std::endl; + std::exit(1); +} + +} +#endif + #include diff --git a/test/regress/test_perl_ex.cpp b/test/regress/test_perl_ex.cpp index f96be261..3307d314 100644 --- a/test/regress/test_perl_ex.cpp +++ b/test/regress/test_perl_ex.cpp @@ -337,6 +337,7 @@ void test_options2() TEST_REGEX_SEARCH("(?s).", perl, "\n", match_default|match_not_dot_newline, make_array(0, 1, -2, -2)); TEST_REGEX_SEARCH("(?-s).", perl, "\n", match_default, make_array(-2, -2)); TEST_REGEX_SEARCH("(?-s).", perl, "\n", match_default|match_not_dot_newline, make_array(-2, -2)); + TEST_REGEX_SEARCH("(?-xism)d", perl, "d", match_default, make_array(0, 1, -2, -2)); test_options3(); }