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>
</CENTER>
<CENTER>
<I>(version 3.03, 18 April 2000)</I>
<I>(version 3.04, 18 April 2000)</I>
</CENTER>
<PRE><I>Copyright (c) 1998-2000
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
ADDED: Forwarder functions to match_results.
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
* VERSION 3.03
* VERSION 3.04
*/
#include <stdio.h>

View File

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

View File

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

View File

@ -16,7 +16,7 @@
/*
*
* FILE parse.cpp
* VERSION 3.03
* VERSION 3.04
*
* Input parsing functions for regress.
*
@ -172,7 +172,7 @@ bool parse_function::operator()(const parse_grep& g)
}
cout << "Warning: Unknown flag: ";
string_type t(i, j);
cout << t.c_str();
cout << make_narrow(t.c_str());
cout << endl;
return true;
}
@ -184,9 +184,9 @@ bool parse_function::operator()(const parse_grep& g)
case 1:
// set the text to match:
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);
jm_trace("Search text after escapes expanded: " << search_text);
jm_trace("Search text after escapes expanded: " << make_narrow(search_text));
break;
case 2:
// maybe set format string:
@ -232,8 +232,8 @@ void parse_input_line(const string_type& s)
parse_function op;
do_test = false;
regex_grep(op, s.begin(), s.end(), parse_expression);
jm_trace("expression: " << expression);
jm_trace("search string: " << search_text);
jm_trace("expression: " << make_narrow(expression));
jm_trace("search string: " << make_narrow(search_text));
}
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.
* FILE regex_test.cpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Builds regression test program with default
* locale and narrow character tests. Also
* instantiates all the templates in the library

View File

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

View File

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

View File

@ -16,7 +16,7 @@
/*
*
* FILE tests.cpp
* VERSION 3.03
* VERSION 3.04
*
* 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)
{
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;
}
@ -715,8 +715,8 @@ void begin_error()
if(line != last_line)
{
cout << "Error in line " << line << " of file " << file << endl;
cout << "Expression: " << expression.c_str() << endl;
cout << "Search text: " << search_text.c_str() << endl;
cout << "Expression: " << make_narrow(expression.c_str()) << endl;
cout << "Search text: " << make_narrow(search_text.c_str()) << endl;
cout << "Flags: ";
bool started = false;
unsigned int id = 0;
@ -726,7 +726,7 @@ void begin_error()
{
if(started)
cout << " | ";
cout << flag_data[id].name;
cout << make_narrow(flag_data[id].name);
started = true;
}
++id;

View File

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

View File

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

View File

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

View File

@ -20,7 +20,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td>
<td valign="top" width="50%"><h3 align="center">Regex++,
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
Dr John Maddock

View File

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

View File

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

View File

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

View File

@ -16,7 +16,7 @@
/*
* LOCATION: see http://www.boost.org for most recent version.
* FILE regex_config.hpp
* VERSION 3.03
* VERSION 3.04
* 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
#endif
#ifdef __HP_aCC
#if defined(__HP_aCC) || defined(__hpux)
// putative HP aCC support, run configure for
// support tailored to your system....
# if (__HP_aCC < 31400)
// non-conformant aCC:
#define BOOST_RE_NO_NAMESPACES
#define BOOST_RE_NO_MUTABLE
#define BOOST_RE_NO_MEMBER_TEMPLATES
#define BOOST_RE_OLD_IOSTREAM
#ifndef __STL_USE_NAMESPACES
#define BOOST_RE_NO_EXCEPTION_H
#endif
#define BOOST_RE_INT64t long long
#define BOOST_RE_IMM64(val) val##LL
#define BOOST_RE_NESTED_TEMPLATE_DECL
#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_CAT
#endif
#ifdef __sgi // SGI IRIX C++
#define BOOST_RE_NO_SWPRINTF
// bring in stl version:
#include <memory>
#if defined(__SGI_STL_PORT)
// STLPort on IRIX is misconfigured: <cwctype> does not compile
// 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
#endif
#elif defined(_RWSTD_VER)
#elif defined(_RWSTD_VER) || defined(__STD_ITERATOR__)
/* Rogue Wave STL */
// Sometimes we have a four figure version number, sometimes a
@ -575,7 +590,7 @@ typedef unsigned long jm_uintfast32_t;
#include <memory>
#ifdef _RWSTD_ALLOCATOR
#if defined(_RWSTD_ALLOCATOR) && !defined(BOOST_RE_NO_MEMORY_H) && !defined(BOOST_RE_NO_MEMBER_TEMPLATES)
/* new style allocator */
@ -636,9 +651,9 @@ typedef unsigned long jm_uintfast32_t;
#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_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.
* FILE regex_cstring.hpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: This is an internal header file, do not include directly.
* String support and helper functions, for regular
* expression library.

View File

@ -16,7 +16,7 @@
/*
* LOCATION: see http://www.boost.org for most recent version.
* FILE regex_format.hpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Provides formatting output routines for search and replace
* operations. Note this is an internal header file included
* 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.
* FILE regex_kmp.hpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Provides Knuth Morris Pratt search operations.
* Note this is an internal header file included
* 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.
* FILE regex_libary_include.hpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Automatic library inclusion for Borland/Microsoft compilers.
* Note this is an internal header file included
* 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.
* FILE regex_match.hpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Regular expression matching algorithms.
* Note this is an internal header file included
* 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.
* FILE regex_raw_buffer.hpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Raw character buffer for regex code.
* Note this is an internal header file included
* by regex.hpp, do not include on its own.
@ -109,9 +109,9 @@ class raw_storage
{
public:
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 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:
//
// empty member optimisation:

View File

@ -16,7 +16,7 @@
/*
* LOCATION: see http://www.boost.org for most recent version.
* FILE regex_split.hpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Implements regex_split and associated functions.
* Note this is an internal header file included
* 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.
* FILE regex_stack.hpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Implements customised internal regex stacks.
* Note this is an internal header file included
* by regex.hpp, do not include on its own.
@ -53,7 +53,8 @@ class jstack
{
private:
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;
struct node
{

View File

@ -16,7 +16,7 @@
/*
* LOCATION: see http://www.boost.org for most recent version.
* FILE regex_synch.hpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Thread synchronisation for regex code.
* Note this is an internal header file included
* 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.
* FILE regex.h
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Declares POSIX API functions
*/

View File

@ -16,7 +16,7 @@
/*
* LOCATION: see http://www.boost.org for most recent version.
* FILE regex.cpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Declares boost::reg_expression<> and associated
* functions and classes. This header is the main
* entry point for the template regex code.
@ -836,7 +836,8 @@ class match_results_base
{
public:
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
typedef typename std::iterator_traits<iterator>::difference_type difference_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.
* FILE regex.cpp
* VERSION 3.03
* VERSION 3.04
* DESCRIPTION: Declares regular expression traits classes.
*/

View File

@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td>
<td valign="top" width="50%"><h3 align="center">Regex++,
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
Dr John Maddock

View File

@ -23,7 +23,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td>
<td valign="top" width="50%"><h3 align="center">Regex++,
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
Dr John Maddock
@ -207,7 +207,7 @@ packages, and to a more limited extent perl 5. </p>
Configuration Options</i> </h3>
<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
interfaces, existing code should still compile unchanged however
- see </em><a href="appendix.htm#upgrade"><font color="#0000FF"><em>Note

View File

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

View File

@ -16,7 +16,7 @@
/*
* LOCATION: see http://www.boost.org for most recent version.
* FILE c_regex_traits.cpp
* VERSION 3.03
* VERSION 3.04
* 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)
{
BOOST_RE_GUARD_STACK
if(c < 256)
return BOOST_RE_MAKE_BOOL(re_detail::wide_unicode_classes[c] & f);
if((c & ~0xFF) == 0)
return BOOST_RE_MAKE_BOOL(re_detail::wide_unicode_classes[(uchar_type)c] & f);
if((f & char_class_alpha) && std::iswalpha(c))
return true;
if((f & char_class_cntrl) && std::iswcntrl(c))

View File

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

View File

@ -16,7 +16,7 @@
/*
* LOCATION: see http://www.boost.org for most recent version.
* FILE: c_regex_traits.cpp
* VERSION: 3.03
* VERSION: 3.04
* DESCRIPTION: Implements the cpp_regex_traits<charT> traits class
*/
#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)
return pos_type(off_type(-1));
int size = egptr() - eback();
int pos = gptr() - eback();
charT* g = eback();
int size = this->egptr() - this->eback();
int pos = this->gptr() - this->eback();
charT* g = this->eback();
switch(way)
{
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);
}
}
return gptr() - eback();
return this->gptr() - this->eback();
}
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)
return pos_type(off_type(-1));
int size = egptr() - eback();
charT* g = eback();
int size = this->egptr() - this->eback();
charT* g = this->eback();
if(sp <= 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.
* FILE: cregex.cpp
* VERSION: 3.03
* VERSION: 3.04
* DESCRIPTION: Implements high level class boost::RexEx
*/
#include <boost/cregex.hpp>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -16,7 +16,7 @@
/*
* LOCATION: see http://www.boost.org for most recent version.
* FILE: w32_regex_traits.cpp
* VERSION: 3.03
* VERSION: 3.04
* 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)
{
BOOST_RE_GUARD_STACK
if(c < 256)
return BOOST_RE_MAKE_BOOL(re_detail::wide_unicode_classes[c] & f);
if((c & ~0xFF) == 0)
return BOOST_RE_MAKE_BOOL(re_detail::wide_unicode_classes[(uchar_type)c] & f);
WORD mask;
if(f & char_class_unicode)
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))
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;
}

View File

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

View File

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

View File

@ -21,7 +21,7 @@ content="C:\PROGRAM FILES\MICROSOFT OFFICE\OFFICE\html.dot">
</td>
<td valign="top" width="50%"><h2 align="center">Regex++,
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
Dr John Maddock

View File

@ -19,7 +19,7 @@
HEIGHT="86" ALT="C++ Boost"> </H3>
</TD>
<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>
<I>Copyright (c) 1998-2000
Dr John Maddock