forked from boostorg/regex
Allow source to be built by #including all the source files in a single TU.
Fixes #5736. [SVN r74896]
This commit is contained in:
@ -21,6 +21,7 @@
|
|||||||
|
|
||||||
#include <boost/config.hpp>
|
#include <boost/config.hpp>
|
||||||
#include <boost/detail/workaround.hpp>
|
#include <boost/detail/workaround.hpp>
|
||||||
|
#include "internals.hpp"
|
||||||
|
|
||||||
#if !BOOST_WORKAROUND(__BORLANDC__, < 0x560)
|
#if !BOOST_WORKAROUND(__BORLANDC__, < 0x560)
|
||||||
|
|
||||||
@ -107,26 +108,6 @@ c_regex_traits<char>::string_type BOOST_REGEX_CALL c_regex_traits<char>::transfo
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
char_class_space=1<<0,
|
|
||||||
char_class_print=1<<1,
|
|
||||||
char_class_cntrl=1<<2,
|
|
||||||
char_class_upper=1<<3,
|
|
||||||
char_class_lower=1<<4,
|
|
||||||
char_class_alpha=1<<5,
|
|
||||||
char_class_digit=1<<6,
|
|
||||||
char_class_punct=1<<7,
|
|
||||||
char_class_xdigit=1<<8,
|
|
||||||
char_class_alnum=char_class_alpha|char_class_digit,
|
|
||||||
char_class_graph=char_class_alnum|char_class_punct,
|
|
||||||
char_class_blank=1<<9,
|
|
||||||
char_class_word=1<<10,
|
|
||||||
char_class_unicode=1<<11,
|
|
||||||
char_class_horizontal=1<<12,
|
|
||||||
char_class_vertical=1<<13
|
|
||||||
};
|
|
||||||
|
|
||||||
c_regex_traits<char>::char_class_type BOOST_REGEX_CALL c_regex_traits<char>::lookup_classname(const char* p1, const char* p2)
|
c_regex_traits<char>::char_class_type BOOST_REGEX_CALL c_regex_traits<char>::lookup_classname(const char* p1, const char* p2)
|
||||||
{
|
{
|
||||||
static const char_class_type masks[] =
|
static const char_class_type masks[] =
|
||||||
|
35
src/internals.hpp
Normal file
35
src/internals.hpp
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2011
|
||||||
|
* John Maddock
|
||||||
|
*
|
||||||
|
* Use, modification and distribution are subject to 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)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef BOOST_REGEX_SRC_INTERNALS_HPP
|
||||||
|
#define BOOST_REGEX_SRC_INTERNALS_HPP
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
char_class_space=1<<0,
|
||||||
|
char_class_print=1<<1,
|
||||||
|
char_class_cntrl=1<<2,
|
||||||
|
char_class_upper=1<<3,
|
||||||
|
char_class_lower=1<<4,
|
||||||
|
char_class_alpha=1<<5,
|
||||||
|
char_class_digit=1<<6,
|
||||||
|
char_class_punct=1<<7,
|
||||||
|
char_class_xdigit=1<<8,
|
||||||
|
char_class_alnum=char_class_alpha|char_class_digit,
|
||||||
|
char_class_graph=char_class_alnum|char_class_punct,
|
||||||
|
char_class_blank=1<<9,
|
||||||
|
char_class_word=1<<10,
|
||||||
|
char_class_unicode=1<<11,
|
||||||
|
char_class_horizontal=1<<12,
|
||||||
|
char_class_vertical=1<<13
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif // BOOST_REGEX_SRC_INTERNALS_HPP
|
@ -22,6 +22,7 @@
|
|||||||
#include <boost/detail/workaround.hpp>
|
#include <boost/detail/workaround.hpp>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <string>
|
#include <string>
|
||||||
|
#include "internals.hpp"
|
||||||
|
|
||||||
#if defined(_DLL_CPPLIB) && !defined(_M_CEE_PURE) && defined(_NATIVE_WCHAR_T_DEFINED) \
|
#if defined(_DLL_CPPLIB) && !defined(_M_CEE_PURE) && defined(_NATIVE_WCHAR_T_DEFINED) \
|
||||||
&& !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) || defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER))\
|
&& !(defined(__SGI_STL_PORT) || defined(_STLPORT_VERSION) || defined(__STD_RWCOMPILER_H__) || defined(_RWSTD_VER))\
|
||||||
@ -147,26 +148,6 @@ c_regex_traits<wchar_t>::string_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::t
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum
|
|
||||||
{
|
|
||||||
char_class_space=1<<0,
|
|
||||||
char_class_print=1<<1,
|
|
||||||
char_class_cntrl=1<<2,
|
|
||||||
char_class_upper=1<<3,
|
|
||||||
char_class_lower=1<<4,
|
|
||||||
char_class_alpha=1<<5,
|
|
||||||
char_class_digit=1<<6,
|
|
||||||
char_class_punct=1<<7,
|
|
||||||
char_class_xdigit=1<<8,
|
|
||||||
char_class_alnum=char_class_alpha|char_class_digit,
|
|
||||||
char_class_graph=char_class_alnum|char_class_punct,
|
|
||||||
char_class_blank=1<<9,
|
|
||||||
char_class_word=1<<10,
|
|
||||||
char_class_unicode=1<<11,
|
|
||||||
char_class_horizontal=1<<12,
|
|
||||||
char_class_vertical=1<<13
|
|
||||||
};
|
|
||||||
|
|
||||||
c_regex_traits<wchar_t>::char_class_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::lookup_classname(const wchar_t* p1, const wchar_t* p2)
|
c_regex_traits<wchar_t>::char_class_type BOOST_REGEX_CALL c_regex_traits<wchar_t>::lookup_classname(const wchar_t* p1, const wchar_t* p2)
|
||||||
{
|
{
|
||||||
static const char_class_type masks[] =
|
static const char_class_type masks[] =
|
||||||
|
@ -74,7 +74,7 @@ const wchar_t* wnames[] = {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef boost::basic_regex<wchar_t, c_regex_traits<wchar_t> > c_regex_type;
|
typedef boost::basic_regex<wchar_t, c_regex_traits<wchar_t> > wc_regex_type;
|
||||||
|
|
||||||
BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompW(regex_tW* expression, const wchar_t* ptr, int f)
|
BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompW(regex_tW* expression, const wchar_t* ptr, int f)
|
||||||
{
|
{
|
||||||
@ -84,7 +84,7 @@ BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompW(regex_tW* expression, const wcha
|
|||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
try{
|
try{
|
||||||
#endif
|
#endif
|
||||||
expression->guts = new c_regex_type();
|
expression->guts = new wc_regex_type();
|
||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
} catch(...)
|
} catch(...)
|
||||||
{
|
{
|
||||||
@ -134,9 +134,9 @@ BOOST_REGEX_DECL int BOOST_REGEX_CCALL regcompW(regex_tW* expression, const wcha
|
|||||||
try{
|
try{
|
||||||
#endif
|
#endif
|
||||||
expression->re_magic = wmagic_value;
|
expression->re_magic = wmagic_value;
|
||||||
static_cast<c_regex_type*>(expression->guts)->set_expression(ptr, p2, flags);
|
static_cast<wc_regex_type*>(expression->guts)->set_expression(ptr, p2, flags);
|
||||||
expression->re_nsub = static_cast<c_regex_type*>(expression->guts)->mark_count() - 1;
|
expression->re_nsub = static_cast<wc_regex_type*>(expression->guts)->mark_count() - 1;
|
||||||
result = static_cast<c_regex_type*>(expression->guts)->error_code();
|
result = static_cast<wc_regex_type*>(expression->guts)->error_code();
|
||||||
#ifndef BOOST_NO_EXCEPTIONS
|
#ifndef BOOST_NO_EXCEPTIONS
|
||||||
}
|
}
|
||||||
catch(const boost::regex_error& be)
|
catch(const boost::regex_error& be)
|
||||||
@ -215,7 +215,7 @@ BOOST_REGEX_DECL regsize_t BOOST_REGEX_CCALL regerrorW(int code, const regex_tW*
|
|||||||
{
|
{
|
||||||
std::string p;
|
std::string p;
|
||||||
if((e) && (e->re_magic == wmagic_value))
|
if((e) && (e->re_magic == wmagic_value))
|
||||||
p = static_cast<c_regex_type*>(e->guts)->get_traits().error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
p = static_cast<wc_regex_type*>(e->guts)->get_traits().error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
p = re_detail::get_default_error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
p = re_detail::get_default_error_string(static_cast< ::boost::regex_constants::error_type>(code));
|
||||||
@ -264,7 +264,7 @@ BOOST_REGEX_DECL int BOOST_REGEX_CCALL regexecW(const regex_tW* expression, cons
|
|||||||
#endif
|
#endif
|
||||||
if(expression->re_magic == wmagic_value)
|
if(expression->re_magic == wmagic_value)
|
||||||
{
|
{
|
||||||
result = regex_search(start, end, m, *static_cast<c_regex_type*>(expression->guts), flags);
|
result = regex_search(start, end, m, *static_cast<wc_regex_type*>(expression->guts), flags);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return result;
|
return result;
|
||||||
@ -301,7 +301,7 @@ BOOST_REGEX_DECL void BOOST_REGEX_CCALL regfreeW(regex_tW* expression)
|
|||||||
{
|
{
|
||||||
if(expression->re_magic == wmagic_value)
|
if(expression->re_magic == wmagic_value)
|
||||||
{
|
{
|
||||||
delete static_cast<c_regex_type*>(expression->guts);
|
delete static_cast<wc_regex_type*>(expression->guts);
|
||||||
}
|
}
|
||||||
expression->re_magic = 0;
|
expression->re_magic = 0;
|
||||||
}
|
}
|
||||||
|
@ -189,6 +189,8 @@ test-suite regex
|
|||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
|
compile test_consolidated.cpp ;
|
||||||
|
|
||||||
build-project ../example ;
|
build-project ../example ;
|
||||||
|
|
||||||
|
|
||||||
|
29
test/test_consolidated.cpp
Normal file
29
test/test_consolidated.cpp
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
/*
|
||||||
|
*
|
||||||
|
* Copyright (c) 2011
|
||||||
|
* John Maddock
|
||||||
|
*
|
||||||
|
* Use, modification and distribution are subject to 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)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <libs/regex/src/c_regex_traits.cpp>
|
||||||
|
#include <libs/regex/src/cpp_regex_traits.cpp>
|
||||||
|
#include <libs/regex/src/cregex.cpp>
|
||||||
|
#include <libs/regex/src/fileiter.cpp>
|
||||||
|
#include <libs/regex/src/icu.cpp>
|
||||||
|
#include <libs/regex/src/instances.cpp>
|
||||||
|
#include <libs/regex/src/posix_api.cpp>
|
||||||
|
#include <libs/regex/src/regex.cpp>
|
||||||
|
#include <libs/regex/src/regex_debug.cpp>
|
||||||
|
#include <libs/regex/src/regex_raw_buffer.cpp>
|
||||||
|
#include <libs/regex/src/regex_traits_defaults.cpp>
|
||||||
|
#include <libs/regex/src/static_mutex.cpp>
|
||||||
|
#include <libs/regex/src/usinstances.cpp>
|
||||||
|
#include <libs/regex/src/wc_regex_traits.cpp>
|
||||||
|
#include <libs/regex/src/w32_regex_traits.cpp>
|
||||||
|
#include <libs/regex/src/wide_posix_api.cpp>
|
||||||
|
#include <libs/regex/src/winstances.cpp>
|
Reference in New Issue
Block a user