regex configuration tweeks, and point release.

[SVN r9225]
This commit is contained in:
John Maddock
2001-02-16 11:26:21 +00:00
parent 973b12c5c8
commit d754f23bcf
48 changed files with 131 additions and 97 deletions

View File

@ -20,7 +20,7 @@
<H3> Regex++, Appendices.</H3> <H3> Regex++, Appendices.</H3>
</CENTER> </CENTER>
<CENTER> <CENTER>
<I>(version 3.03, 18 April 2000)</I> <I>(version 3.04, 18 April 2000)</I>
</CENTER> </CENTER>
<PRE><I>Copyright (c) 1998-2000 <PRE><I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -1,3 +1,7 @@
Version 304:
FIXED: Missing this-> prefix to some symbols in cpp_regex_traits.cpp
CHANGED: Error reporting for wide character tests.
FIXED: Win2K problem with [[:unicode:]]
FIXED: Signed/unsigned conversions in regex_compile.hpp and regex_format.hpp FIXED: Signed/unsigned conversions in regex_compile.hpp and regex_format.hpp
ADDED: Forwarder functions to match_results. ADDED: Forwarder functions to match_results.
FIXED: More errors from Como in strict mode. FIXED: More errors from Como in strict mode.
@ -231,6 +235,8 @@ BUG: character sets don't function correctly when regbase::char_classes

View File

@ -15,7 +15,7 @@
/* /*
* FILE jgrep.cpp * FILE jgrep.cpp
* VERSION 3.03 * VERSION 3.04
*/ */
#include <stdio.h> #include <stdio.h>

View File

@ -15,7 +15,7 @@
/* /*
* FILE jgrep.h * FILE jgrep.h
* VERSION 3.03 * VERSION 3.04
*/ */
#ifndef _JGREP_H #ifndef _JGREP_H

View File

@ -15,7 +15,7 @@
/* /*
* FILE main.cpp * FILE main.cpp
* VERSION 3.03 * VERSION 3.04
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* *
* FILE parse.cpp * FILE parse.cpp
* VERSION 3.03 * VERSION 3.04
* *
* Input parsing functions for regress. * Input parsing functions for regress.
* *
@ -172,7 +172,7 @@ bool parse_function::operator()(const parse_grep& g)
} }
cout << "Warning: Unknown flag: "; cout << "Warning: Unknown flag: ";
string_type t(i, j); string_type t(i, j);
cout << t.c_str(); cout << make_narrow(t.c_str());
cout << endl; cout << endl;
return true; return true;
} }
@ -184,9 +184,9 @@ bool parse_function::operator()(const parse_grep& g)
case 1: case 1:
// set the text to match: // set the text to match:
search_text = string_type(i, j); search_text = string_type(i, j);
jm_trace("Initial search text: " << search_text); jm_trace("Initial search text: " << make_narrow(search_text));
expand_escapes(search_text); expand_escapes(search_text);
jm_trace("Search text after escapes expanded: " << search_text); jm_trace("Search text after escapes expanded: " << make_narrow(search_text));
break; break;
case 2: case 2:
// maybe set format string: // maybe set format string:
@ -232,8 +232,8 @@ void parse_input_line(const string_type& s)
parse_function op; parse_function op;
do_test = false; do_test = false;
regex_grep(op, s.begin(), s.end(), parse_expression); regex_grep(op, s.begin(), s.end(), parse_expression);
jm_trace("expression: " << expression); jm_trace("expression: " << make_narrow(expression));
jm_trace("search string: " << search_text); jm_trace("search string: " << make_narrow(search_text));
} }
int to_int(string_type::const_iterator i, string_type::const_iterator j) int to_int(string_type::const_iterator i, string_type::const_iterator j)

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_test.cpp * FILE regex_test.cpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Builds regression test program with default * DESCRIPTION: Builds regression test program with default
* locale and narrow character tests. Also * locale and narrow character tests. Also
* instantiates all the templates in the library * instantiates all the templates in the library

View File

@ -16,7 +16,7 @@
/* /*
* *
* FILE regress.cpp * FILE regress.cpp
* VERSION 3.03 * VERSION 3.04
* *
* main() and associated code for regress. * main() and associated code for regress.
* *
@ -101,7 +101,7 @@ int main(int argc, char * argv[])
string_type s; string_type s;
get_line(is, s); get_line(is, s);
++line; ++line;
jm_trace("Reading test script line " << line << " " << s); jm_trace("Reading test script line " << line << " " << make_narrow(s.c_str()));
parse_input_line(s); parse_input_line(s);
if(do_test) if(do_test)
{ {
@ -117,20 +117,25 @@ int main(int argc, char * argv[])
#ifdef TEST_UNICODE #ifdef TEST_UNICODE
ostream& operator << (ostream& os, const wchar_t* s) std::string make_narrow(const wchar_t* ptr)
{ {
while(*s) std::string result;
while(*ptr)
{ {
os.put((char)*s); if(*ptr & ~0x7F)
++s; {
char buf[10];
std::sprintf(buf, "\\x%.4x", (int)*ptr);
result.append(buf);
++ptr;
}
else
{
result.append(1, (char)*ptr);
++ptr;
}
} }
return os; return result;
}
ostream& operator << (ostream& os, const std::wstring& s)
{
os << s.c_str();
return os;
} }
istream& get_line(istream& is, nstring_type& s, char delim) istream& get_line(istream& is, nstring_type& s, char delim)

View File

@ -16,7 +16,7 @@
/* /*
* *
* FILE regress.h * FILE regress.h
* VERSION 3.03 * VERSION 3.04
* *
* Function and data declarations for regress. * Function and data declarations for regress.
* *
@ -44,32 +44,38 @@ using std::endl;
#include <boost/regex.hpp> #include <boost/regex.hpp>
#if defined(TEST_UNICODE) #if defined(TEST_UNICODE)
#ifdef __GNUC__ #ifdef __GNUC__
#define char_t wchar_t #define char_t wchar_t
#else #else
typedef wchar_t char_t; typedef wchar_t char_t;
#endif #endif
#define NO_POSIX_TEST #define NO_POSIX_TEST
typedef std::basic_string<char_t> string_type; typedef std::basic_string<char_t> string_type;
typedef std::basic_string<char> nstring_type; typedef std::basic_string<char> nstring_type;
inline istream& get_line(istream& is, nstring_type& s, char delim = '\n'); inline istream& get_line(istream& is, nstring_type& s, char delim = '\n');
istream& get_line(istream& is, string_type& s, char delim = L'\n'); istream& get_line(istream& is, string_type& s, char delim = L'\n');
#define BOOST_RE_STR(x) L##x #define BOOST_RE_STR(x) L##x
ostream& operator << (ostream& os, const string_type& s); std::string make_narrow(const wchar_t* ptr);
//ostream& operator << (ostream& os, const string_type& s);
#else // TEST_UNICODE
#else
#ifdef __GNUC__ #ifdef __GNUC__
#define char_t char #define char_t char
#else #else
typedef char char_t; typedef char char_t;
#endif #endif
typedef std::basic_string<char_t> string_type; typedef std::basic_string<char_t> string_type;
inline istream& get_line(istream& is, string_type& s, char delim = '\n'); inline istream& get_line(istream& is, string_type& s, char delim = '\n');
#define BOOST_RE_STR(x) x #define BOOST_RE_STR(x) x
#define make_narrow(x) x
#endif #endif // TEST_UNICODE
ostream& operator << (ostream& os, const wchar_t* s); //ostream& operator << (ostream& os, const wchar_t* s);
void parse_input_line(const string_type& s); void parse_input_line(const string_type& s);
void expand_escapes(string_type& s); void expand_escapes(string_type& s);
void run_tests(); void run_tests();

View File

@ -16,7 +16,7 @@
/* /*
* *
* FILE tests.cpp * FILE tests.cpp
* VERSION 3.03 * VERSION 3.04
* *
* the actual tests conducted by regress. * the actual tests conducted by regress.
* *
@ -213,7 +213,7 @@ void cpp_tests(const reg_expression<C, T, A>& e, bool recurse = true)
if(s != merge_string) if(s != merge_string)
{ {
begin_error(); begin_error();
cout << "merge result mismatch: found \"" << s.c_str() << "\" expected \"" << merge_string.c_str() << "\"" << endl; cout << "merge result mismatch: found \"" << make_narrow(s.c_str()) << "\" expected \"" << make_narrow(merge_string.c_str()) << "\"" << endl;
} }
return; return;
} }
@ -715,8 +715,8 @@ void begin_error()
if(line != last_line) if(line != last_line)
{ {
cout << "Error in line " << line << " of file " << file << endl; cout << "Error in line " << line << " of file " << file << endl;
cout << "Expression: " << expression.c_str() << endl; cout << "Expression: " << make_narrow(expression.c_str()) << endl;
cout << "Search text: " << search_text.c_str() << endl; cout << "Search text: " << make_narrow(search_text.c_str()) << endl;
cout << "Flags: "; cout << "Flags: ";
bool started = false; bool started = false;
unsigned int id = 0; unsigned int id = 0;
@ -726,7 +726,7 @@ void begin_error()
{ {
if(started) if(started)
cout << " | "; cout << " | ";
cout << flag_data[id].name; cout << make_narrow(flag_data[id].name);
started = true; started = true;
} }
++id; ++id;

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_test.cpp * FILE regex_test.cpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Builds regression test program with default * DESCRIPTION: Builds regression test program with default
* locale and wide character tests. Also * locale and wide character tests. Also
* instantiates all the templates in the library * instantiates all the templates in the library

View File

@ -20,7 +20,7 @@
<H3> Regex++, FAQ.</H3> <H3> Regex++, FAQ.</H3>
</CENTER> </CENTER>
<CENTER> <CENTER>
<I>(version 3.03, 18 April 2000)</I> <I>(version 3.04, 18 April 2000)</I>
</CENTER> </CENTER>
<PRE><I>Copyright (c) 1998-2000 <PRE><I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -20,7 +20,7 @@
<H3> Regex++, Format String Reference.</H3> <H3> Regex++, Format String Reference.</H3>
</CENTER> </CENTER>
<CENTER> <CENTER>
<I>(version 3.03, 18 April 2000)</I> <I>(version 3.04, 18 April 2000)</I>
</CENTER> </CENTER>
<PRE><I>Copyright (c) 1998-2000 <PRE><I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -20,7 +20,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td> </td>
<td valign="top" width="50%"><h3 align="center">Regex++, <td valign="top" width="50%"><h3 align="center">Regex++,
RegEx Class Reference. </h3> RegEx Class Reference. </h3>
<p><i>(version 3.03, 18 April 2000)</i> </p> <p><i>(version 3.04, 18 April 2000)</i> </p>
<pre><i>Copyright (c) 1998-2000 <pre><i>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE cregex.cpp * FILE cregex.cpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Declares POSIX API functions * DESCRIPTION: Declares POSIX API functions
* + boost::RegEx high level wrapper. * + boost::RegEx high level wrapper.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE fileiter.hpp * FILE fileiter.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Declares various platform independent file and * DESCRIPTION: Declares various platform independent file and
* directory iterators, plus binary file input in * directory iterators, plus binary file input in
* the form of class map_file. * the form of class map_file.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_compile.hpp * FILE regex_compile.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Declares reg_expression<> member functions. This is * DESCRIPTION: Declares reg_expression<> member functions. This is
* an internal header file, do not include directly. * an internal header file, do not include directly.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_config.hpp * FILE regex_config.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: auto-configure options for regular expression code. * DESCRIPTION: auto-configure options for regular expression code.
*/ */
@ -319,25 +319,40 @@ Do not change this file unless you really really have to, add options to
#define BOOST_RE_NO_TEMPLATE_FRIEND #define BOOST_RE_NO_TEMPLATE_FRIEND
#endif #endif
#ifdef __HP_aCC #if defined(__HP_aCC) || defined(__hpux)
// putative HP aCC support, run configure for // putative HP aCC support, run configure for
// support tailored to your system.... // support tailored to your system....
# if (__HP_aCC < 31400)
// non-conformant aCC:
#define BOOST_RE_NO_NAMESPACES #define BOOST_RE_NO_NAMESPACES
#define BOOST_RE_NO_MUTABLE #define BOOST_RE_NO_MUTABLE
#define BOOST_RE_NO_MEMBER_TEMPLATES
#define BOOST_RE_OLD_IOSTREAM #define BOOST_RE_OLD_IOSTREAM
#ifndef __STL_USE_NAMESPACES #ifndef __STL_USE_NAMESPACES
#define BOOST_RE_NO_EXCEPTION_H #define BOOST_RE_NO_EXCEPTION_H
#endif #endif
#define BOOST_RE_INT64t long long
#define BOOST_RE_IMM64(val) val##LL
#define BOOST_RE_NESTED_TEMPLATE_DECL #define BOOST_RE_NESTED_TEMPLATE_DECL
#define BOOST_RE_NO_TEMPLATE_FRIEND #define BOOST_RE_NO_TEMPLATE_FRIEND
#else
#if !defined(_NAMESPACE_STD)
#define BOOST_RE_OLD_IOSTREAM
#ifndef __STL_USE_NAMESPACES
#define BOOST_RE_NO_EXCEPTION_H
#endif
#endif
#define BOOST_RE_NESTED_TEMPLATE_DECL template
#endif
#define BOOST_RE_NO_MEMBER_TEMPLATES
#define BOOST_RE_NO_MEMORY_H
#define BOOST_RE_INT64t long long
#define BOOST_RE_IMM64(val) val##LL
#define BOOST_RE_NO_SWPRINTF #define BOOST_RE_NO_SWPRINTF
#define BOOST_RE_NO_CAT
#endif #endif
#ifdef __sgi // SGI IRIX C++ #ifdef __sgi // SGI IRIX C++
#define BOOST_RE_NO_SWPRINTF #define BOOST_RE_NO_SWPRINTF
// bring in stl version:
#include <memory>
#if defined(__SGI_STL_PORT) #if defined(__SGI_STL_PORT)
// STLPort on IRIX is misconfigured: <cwctype> does not compile // STLPort on IRIX is misconfigured: <cwctype> does not compile
// as a temporary fix include <wctype.h> instead and prevent inclusion // as a temporary fix include <wctype.h> instead and prevent inclusion
@ -504,7 +519,7 @@ typedef unsigned long jm_uintfast32_t;
//#define BOOST_RE_NO_NOT_EQUAL //#define BOOST_RE_NO_NOT_EQUAL
#endif #endif
#elif defined(_RWSTD_VER) #elif defined(_RWSTD_VER) || defined(__STD_ITERATOR__)
/* Rogue Wave STL */ /* Rogue Wave STL */
// Sometimes we have a four figure version number, sometimes a // Sometimes we have a four figure version number, sometimes a
@ -575,7 +590,7 @@ typedef unsigned long jm_uintfast32_t;
#include <memory> #include <memory>
#ifdef _RWSTD_ALLOCATOR #if defined(_RWSTD_ALLOCATOR) && !defined(BOOST_RE_NO_MEMORY_H) && !defined(BOOST_RE_NO_MEMBER_TEMPLATES)
/* new style allocator */ /* new style allocator */
@ -636,9 +651,9 @@ typedef unsigned long jm_uintfast32_t;
#define BOOST_RE_STL_DONE #define BOOST_RE_STL_DONE
#elif defined (BOOST_MSVC) #elif (defined(BOOST_MSVC) || defined(__ICL)) && (defined(_YVALS) || defined(_CPPLIB_VER))
/* assume we're using MS's own STL (VC++ 5/6) */ /* VC6 or Intel C++, with Dinkum STL */
#define BOOST_RE_NO_OI_ASSIGN #define BOOST_RE_NO_OI_ASSIGN
#define BOOST_RE_DISTANCE(i, j, n) n = std::distance(i, j) #define BOOST_RE_DISTANCE(i, j, n) n = std::distance(i, j)

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_cstring.hpp * FILE regex_cstring.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: This is an internal header file, do not include directly. * DESCRIPTION: This is an internal header file, do not include directly.
* String support and helper functions, for regular * String support and helper functions, for regular
* expression library. * expression library.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_format.hpp * FILE regex_format.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Provides formatting output routines for search and replace * DESCRIPTION: Provides formatting output routines for search and replace
* operations. Note this is an internal header file included * operations. Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_kmp.hpp * FILE regex_kmp.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Provides Knuth Morris Pratt search operations. * DESCRIPTION: Provides Knuth Morris Pratt search operations.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_libary_include.hpp * FILE regex_libary_include.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers. * DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_match.hpp * FILE regex_match.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Regular expression matching algorithms. * DESCRIPTION: Regular expression matching algorithms.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_raw_buffer.hpp * FILE regex_raw_buffer.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Raw character buffer for regex code. * DESCRIPTION: Raw character buffer for regex code.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.
@ -109,9 +109,9 @@ class raw_storage
{ {
public: public:
typedef Allocator allocator_type; typedef Allocator allocator_type;
typedef typename REBIND_TYPE(unsigned char, allocator_type)::size_type size_type;
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(unsigned char, allocator_type) alloc_inst_type; typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(unsigned char, allocator_type) alloc_inst_type;
typedef typename REBIND_TYPE(unsigned char, allocator_type)::pointer pointer; typedef typename alloc_inst_type::size_type size_type;
typedef typename alloc_inst_type::pointer pointer;
private: private:
// //
// empty member optimisation: // empty member optimisation:

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_split.hpp * FILE regex_split.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Implements regex_split and associated functions. * DESCRIPTION: Implements regex_split and associated functions.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_stack.hpp * FILE regex_stack.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Implements customised internal regex stacks. * DESCRIPTION: Implements customised internal regex stacks.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.
@ -53,7 +53,8 @@ class jstack
{ {
private: private:
typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(unsigned char, Allocator) allocator_type; typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(unsigned char, Allocator) allocator_type;
typedef typename REBIND_TYPE(T, Allocator)::size_type size_type; typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(T, Allocator) T_alloc_type;
typedef typename T_alloc_type::size_type size_type;
typedef T value_type; typedef T value_type;
struct node struct node
{ {

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex_synch.hpp * FILE regex_synch.hpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Thread synchronisation for regex code. * DESCRIPTION: Thread synchronisation for regex code.
* Note this is an internal header file included * Note this is an internal header file included
* by regex.hpp, do not include on its own. * by regex.hpp, do not include on its own.

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex.h * FILE regex.h
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Declares POSIX API functions * DESCRIPTION: Declares POSIX API functions
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex.cpp * FILE regex.cpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Declares boost::reg_expression<> and associated * DESCRIPTION: Declares boost::reg_expression<> and associated
* functions and classes. This header is the main * functions and classes. This header is the main
* entry point for the template regex code. * entry point for the template regex code.
@ -836,7 +836,8 @@ class match_results_base
{ {
public: public:
typedef Allocator alloc_type; typedef Allocator alloc_type;
typedef typename REBIND_TYPE(iterator, Allocator)::size_type size_type; typedef BOOST_RE_MAYBE_TYPENAME REBIND_TYPE(iterator, Allocator) iterator_alloc;
typedef iterator_alloc::size_type size_type;
#ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION #ifndef BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
typedef typename std::iterator_traits<iterator>::difference_type difference_type; typedef typename std::iterator_traits<iterator>::difference_type difference_type;
typedef typename std::iterator_traits<iterator>::value_type char_type; typedef typename std::iterator_traits<iterator>::value_type char_type;

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE regex.cpp * FILE regex.cpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Declares regular expression traits classes. * DESCRIPTION: Declares regular expression traits classes.
*/ */

View File

@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td> </td>
<td valign="top" width="50%"><h3 align="center">Regex++, <td valign="top" width="50%"><h3 align="center">Regex++,
Index.</h3> Index.</h3>
<p><i>(version 3.03, 18 April 2000)</i> </p> <p><i>(version 3.04, 18 April 2000)</i> </p>
<pre><i>Copyright (c) 1998-2000 <pre><i>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td> </td>
<td valign="top" width="50%"><h3 align="center">Regex++, <td valign="top" width="50%"><h3 align="center">Regex++,
Introduction.</h3> Introduction.</h3>
<p><i>(version 3.03, 18 April 2000)</i> </p> <p><i>(version 3.04, 18 April 2000)</i> </p>
<pre><i>Copyright (c) 1998-2000 <pre><i>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock
@ -207,7 +207,7 @@ packages, and to a more limited extent perl 5. </p>
Configuration Options</i> </h3> Configuration Options</i> </h3>
<p><em>[ </em><strong><i>Important</i></strong><em>: If you are <p><em>[ </em><strong><i>Important</i></strong><em>: If you are
upgrading from version 3.03x of this library then you will find a upgrading from version 3.04x of this library then you will find a
number of changes to the documented header names and library number of changes to the documented header names and library
interfaces, existing code should still compile unchanged however interfaces, existing code should still compile unchanged however
- see </em><a href="appendix.htm#upgrade"><font color="#0000FF"><em>Note - see </em><a href="appendix.htm#upgrade"><font color="#0000FF"><em>Note

View File

@ -20,7 +20,7 @@
<H3> Regex++, POSIX API Reference.</H3> <H3> Regex++, POSIX API Reference.</H3>
</CENTER> </CENTER>
<CENTER> <CENTER>
<I>(version 3.03, 18 April 2000)</I> <I>(version 3.04, 18 April 2000)</I>
</CENTER> </CENTER>
<PRE><I>Copyright (c) 1998-2000 <PRE><I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE c_regex_traits.cpp * FILE c_regex_traits.cpp
* VERSION 3.03 * VERSION 3.04
* DESCRIPTION: Implements the c_regex_traits<charT> traits class * DESCRIPTION: Implements the c_regex_traits<charT> traits class
*/ */
@ -861,8 +861,8 @@ void BOOST_RE_CALL c_regex_traits<wchar_t>::free()
bool BOOST_RE_CALL c_regex_traits<wchar_t>::do_iswclass(wchar_t c, jm_uintfast32_t f) bool BOOST_RE_CALL c_regex_traits<wchar_t>::do_iswclass(wchar_t c, jm_uintfast32_t f)
{ {
BOOST_RE_GUARD_STACK BOOST_RE_GUARD_STACK
if(c < 256) if((c & ~0xFF) == 0)
return BOOST_RE_MAKE_BOOL(re_detail::wide_unicode_classes[c] & f); return BOOST_RE_MAKE_BOOL(re_detail::wide_unicode_classes[(uchar_type)c] & f);
if((f & char_class_alpha) && std::iswalpha(c)) if((f & char_class_alpha) && std::iswalpha(c))
return true; return true;
if((f & char_class_cntrl) && std::iswcntrl(c)) if((f & char_class_cntrl) && std::iswcntrl(c))

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: c_regex_traits_common.cpp * FILE: c_regex_traits_common.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Implements common code and data for the * DESCRIPTION: Implements common code and data for the
* c_regex_traits<charT> traits classes. * c_regex_traits<charT> traits classes.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: c_regex_traits.cpp * FILE: c_regex_traits.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Implements the cpp_regex_traits<charT> traits class * DESCRIPTION: Implements the cpp_regex_traits<charT> traits class
*/ */
#include <clocale> #include <clocale>
@ -109,9 +109,9 @@ parser_buf<charT, traits>::seekoff(off_type off, ::std::ios_base::seekdir way, :
{ {
if(which & ::std::ios_base::out) if(which & ::std::ios_base::out)
return pos_type(off_type(-1)); return pos_type(off_type(-1));
int size = egptr() - eback(); int size = this->egptr() - this->eback();
int pos = gptr() - eback(); int pos = this->gptr() - this->eback();
charT* g = eback(); charT* g = this->eback();
switch(way) switch(way)
{ {
case ::std::ios_base::beg: case ::std::ios_base::beg:
@ -133,7 +133,7 @@ parser_buf<charT, traits>::seekoff(off_type off, ::std::ios_base::seekdir way, :
this->setg(g, g + newpos, g + size); this->setg(g, g + newpos, g + size);
} }
} }
return gptr() - eback(); return this->gptr() - this->eback();
} }
template<class charT, class traits> template<class charT, class traits>
@ -142,8 +142,8 @@ parser_buf<charT, traits>::seekpos(pos_type sp, ::std::ios_base::openmode which)
{ {
if(which & ::std::ios_base::out) if(which & ::std::ios_base::out)
return pos_type(off_type(-1)); return pos_type(off_type(-1));
int size = egptr() - eback(); int size = this->egptr() - this->eback();
charT* g = eback(); charT* g = this->eback();
if(sp <= size) if(sp <= size)
{ {
this->setg(g, g + ::std::streamsize(sp), g + size); this->setg(g, g + ::std::streamsize(sp), g + size);

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: cregex.cpp * FILE: cregex.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Implements high level class boost::RexEx * DESCRIPTION: Implements high level class boost::RexEx
*/ */
#include <boost/cregex.hpp> #include <boost/cregex.hpp>

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: fileiter.cpp * FILE: fileiter.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Implements file io primitives + directory searching for class boost::RegEx. * DESCRIPTION: Implements file io primitives + directory searching for class boost::RegEx.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: posix_api.cpp * FILE: posix_api.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Implements the Posix API wrappers. * DESCRIPTION: Implements the Posix API wrappers.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: primary_transform.hpp * FILE: primary_transform.hpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Heuristically determines the sort string format in use * DESCRIPTION: Heuristically determines the sort string format in use
* by the current locale. * by the current locale.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: regex.cpp * FILE: regex.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Misc boost::regbase member funnctions. * DESCRIPTION: Misc boost::regbase member funnctions.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: regex_debug.cpp * FILE: regex_debug.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Misc. debugging helpers. * DESCRIPTION: Misc. debugging helpers.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: regex_synch.cpp * FILE: regex_synch.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Thread synch helper functions, for regular * DESCRIPTION: Thread synch helper functions, for regular
* expression library. * expression library.
*/ */

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: w32_regex_traits.cpp * FILE: w32_regex_traits.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Implements the w32_regex_traits<charT> traits class * DESCRIPTION: Implements the w32_regex_traits<charT> traits class
*/ */
@ -648,15 +648,15 @@ w32_regex_traits<wchar_t>::~w32_regex_traits()
bool BOOST_RE_CALL w32_regex_traits<wchar_t>::do_iswclass(wchar_t c, jm_uintfast32_t f) bool BOOST_RE_CALL w32_regex_traits<wchar_t>::do_iswclass(wchar_t c, jm_uintfast32_t f)
{ {
BOOST_RE_GUARD_STACK BOOST_RE_GUARD_STACK
if(c < 256) if((c & ~0xFF) == 0)
return BOOST_RE_MAKE_BOOL(re_detail::wide_unicode_classes[c] & f); return BOOST_RE_MAKE_BOOL(re_detail::wide_unicode_classes[(uchar_type)c] & f);
WORD mask; WORD mask;
if(f & char_class_unicode) if(f & char_class_unicode)
return true; return true;
else if((f & char_class_graph) == char_class_graph)
return true; // all wide characters are considered "graphics"
else if(isPlatformNT && GetStringTypeW(CT_CTYPE1, &c, 1, &mask)) else if(isPlatformNT && GetStringTypeW(CT_CTYPE1, &c, 1, &mask))
return BOOST_RE_MAKE_BOOL(mask & f); return BOOST_RE_MAKE_BOOL(mask & f);
else if((f & char_class_graph) == char_class_graph)
return true; // all wide characters are considered "graphics"
return false; return false;
} }

View File

@ -16,7 +16,7 @@
/* /*
* LOCATION: see http://www.boost.org for most recent version. * LOCATION: see http://www.boost.org for most recent version.
* FILE: wide_posix_api.cpp * FILE: wide_posix_api.cpp
* VERSION: 3.03 * VERSION: 3.04
* DESCRIPTION: Implements the wide character POSIX API wrappers. * DESCRIPTION: Implements the wide character POSIX API wrappers.
*/ */

View File

@ -20,7 +20,7 @@
<H3> Regex++, Regular Expression Syntax.</H3> <H3> Regex++, Regular Expression Syntax.</H3>
</CENTER> </CENTER>
<CENTER> <CENTER>
<I>(version 3.03, 18 April 2000)</I> <I>(version 3.04, 18 April 2000)</I>
</CENTER> </CENTER>
<PRE><I>Copyright (c) 1998-2000 <PRE><I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock

View File

@ -21,7 +21,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td> </td>
<td valign="top" width="50%"><h2 align="center">Regex++, <td valign="top" width="50%"><h2 align="center">Regex++,
Template Class and Algorithm Reference.</h2> Template Class and Algorithm Reference.</h2>
<p><i>(version 3.03, 18 April 2000)</i> </p> <p><i>(version 3.04, 18 April 2000)</i> </p>
<pre><i>Copyright (c) 1998-9 <pre><i>Copyright (c) 1998-9
Dr John Maddock Dr John Maddock

View File

@ -19,7 +19,7 @@
HEIGHT="86" ALT="C++ Boost"> </H3> HEIGHT="86" ALT="C++ Boost"> </H3>
</TD> </TD>
<TD VALIGN="top" WIDTH="50%"><H3 ALIGN="center">Regex++, Traits Class <TD VALIGN="top" WIDTH="50%"><H3 ALIGN="center">Regex++, Traits Class
Reference. <I>(version 3.03, 18 April 2000)</I>&nbsp; </H3> Reference. <I>(version 3.04, 18 April 2000)</I>&nbsp; </H3>
<PRE> <PRE>
<I>Copyright (c) 1998-2000 <I>Copyright (c) 1998-2000
Dr John Maddock Dr John Maddock