mirror of
https://github.com/boostorg/regex.git
synced 2025-07-16 13:52:17 +02:00
Fixes for STLPort 4.1b6,
and for gcc on platforms with <sys/type.h> [SVN r10089]
This commit is contained in:
10
changes.txt
10
changes.txt
@ -1,3 +1,12 @@
|
||||
Version 311:
|
||||
FIXED: Support for STLPort 4.1b6.
|
||||
FIXED: Library calling convention for VC6 debug builds.
|
||||
CHANGED: Reorganised and simplified config setup.
|
||||
|
||||
Version 310:
|
||||
ADDED: Support for static linking with VC6 + dynamic runtime.
|
||||
CHANGED: Library directory structure.
|
||||
|
||||
Version 305:
|
||||
FIXED: VC6.sp5 fix.
|
||||
ADDED: Support for mixed static/dynamic linking with vc6.
|
||||
@ -247,5 +256,6 @@ BUG: character sets don't function correctly when regbase::char_classes
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
85
configure.in
85
configure.in
@ -540,85 +540,6 @@ AC_MSG_RESULT(no)])
|
||||
fi
|
||||
|
||||
|
||||
AC_ARG_ENABLE(int64, [--disable-int64 turns off support for 64-bit integer types])
|
||||
if test "$enable_int64" = "no"; then
|
||||
AC_DEFINE(BOOST_RE_INT64_T_0)
|
||||
else
|
||||
|
||||
AC_MSG_CHECKING(for 64-bit integral type)
|
||||
|
||||
if test "$ac_cv_sizeof_short" -eq 8; then
|
||||
AC_DEFINE(BOOST_RE_INT64_T_1)
|
||||
AC_MSG_RESULT(yes - short)
|
||||
have_int64="true"
|
||||
fi
|
||||
if test "$ac_cv_sizeof_int" -eq 8 && test "$have_int64" != "true"; then
|
||||
AC_DEFINE(BOOST_RE_INT64_T_2)
|
||||
AC_MSG_RESULT(yes - int)
|
||||
have_int64="true"
|
||||
fi
|
||||
if test "$ac_cv_sizeof_long" -eq 8 && test "$have_int64" != "true"; then
|
||||
AC_DEFINE(BOOST_RE_INT64_T_3)
|
||||
AC_MSG_RESULT(yes - long)
|
||||
have_int64="true"
|
||||
fi
|
||||
if test "$have_int64" != "true"; then
|
||||
AC_TRY_COMPILE(
|
||||
[
|
||||
#include <inttypes.h>
|
||||
|
||||
int64_t i = INT64_C(0x100000000);
|
||||
],
|
||||
[
|
||||
],
|
||||
[AC_MSG_RESULT(yes - int64_t)
|
||||
have_int64="true"
|
||||
AC_DEFINE(BOOST_RE_INT64_T_4)
|
||||
],
|
||||
[])
|
||||
fi
|
||||
|
||||
if test "$have_int64" != "true"; then
|
||||
|
||||
AC_TRY_COMPILE(
|
||||
[
|
||||
#include <stdlib.h>
|
||||
|
||||
long long i = 0x100000000LL;
|
||||
],
|
||||
[
|
||||
],
|
||||
[AC_MSG_RESULT(yes - long long)
|
||||
have_int64="true"
|
||||
AC_DEFINE(BOOST_RE_INT64_T_5)
|
||||
],
|
||||
[])
|
||||
|
||||
fi
|
||||
|
||||
if test "$have_int64" != "true"; then
|
||||
|
||||
AC_TRY_COMPILE(
|
||||
[
|
||||
#include <stdlib.h>
|
||||
|
||||
__int64 i = 0x100000000i64;
|
||||
],
|
||||
[
|
||||
],
|
||||
[AC_MSG_RESULT(yes - __int64)
|
||||
have_int64="true"
|
||||
AC_DEFINE(BOOST_RE_INT64_T_6)
|
||||
],
|
||||
[])
|
||||
fi
|
||||
if test "$have_int64" != "true"; then
|
||||
AC_DEFINE(BOOST_RE_INT64_T,0)
|
||||
AC_MSG_RESULT(no)
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
AC_ARG_ENABLE(messages, [--disable-messages turns off support for POSIX message categories, when available.])
|
||||
if test "$enable_messages" = "no" || test "$enable_ms_windows" != "no"; then
|
||||
AC_DEFINE(BOOST_RE_NO_CAT, [])
|
||||
@ -827,6 +748,10 @@ std::locale l;
|
||||
std::map<std::string, std::string> m;
|
||||
],
|
||||
[
|
||||
if(std::has_facet<std::ctype<char> >(l))
|
||||
{
|
||||
const std::ctype<char>& ct = std::use_facet<std::ctype<char> >(l);
|
||||
}
|
||||
],
|
||||
[AC_MSG_RESULT(yes)
|
||||
ac_have_locale='yes'
|
||||
@ -1258,6 +1183,8 @@ rm -f jm_opt.out
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -50,9 +50,6 @@ full list of macros and their usage.
|
||||
#include <clocale>
|
||||
#include <string>
|
||||
#include <boost/smart_ptr.hpp>
|
||||
#ifdef __CYGWIN__
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
#include <boost/cstdint.hpp>
|
||||
#else
|
||||
//
|
||||
@ -163,7 +160,11 @@ full list of macros and their usage.
|
||||
//
|
||||
// only want "real" Visual C++ here:
|
||||
#if defined(BOOST_MSVC) && !defined(__WATCOMC__) && !defined(__BORLANDC__) && !defined(__GNUC__) && !defined(__MWERKS__) && !defined (__ICL)
|
||||
#ifdef _DEBUG
|
||||
#define BOOST_RE_CALL __cdecl
|
||||
#else
|
||||
#define BOOST_RE_CALL __fastcall
|
||||
#endif
|
||||
#define BOOST_RE_CCALL __stdcall
|
||||
|
||||
#if BOOST_MSVC < 1100
|
||||
@ -362,33 +363,34 @@ full list of macros and their usage.
|
||||
#ifndef BOOST_RE_NO_ITERATOR_H
|
||||
#include <iterator>
|
||||
|
||||
#if defined(__SGI_STL_INTERNAL_ITERATOR_H) || defined(__SGI_STL_ITERATOR_H)
|
||||
#if defined(__SGI_STL_INTERNAL_ITERATOR_H) || defined(_STLP_INTERNAL_ITERATOR_H) || defined(__SGI_STL_ITERATOR_H) || defined(__SGI_STL_PORT)
|
||||
|
||||
/* we are using SGI's STL
|
||||
some of these (std)
|
||||
may be guesswork: */
|
||||
|
||||
# if (!defined (__SGI_STL_OWN_IOSTREAMS) && !defined(__GLIBCPP__) && !defined(__STL_USE_NEW_IOSTREAMS)) || defined (__STL_HAS_NO_NEW_IOSTREAMS) || defined (__STL_USE_NO_IOSTREAMS) || defined(__STL_NO_MBSTATE_T)
|
||||
# if (!defined (__SGI_STL_OWN_IOSTREAMS) && !defined(_STLP_OWN_IOSTREAMS) && !defined(__GLIBCPP__) && !defined(__STL_USE_NEW_IOSTREAMS)) || defined (__STL_HAS_NO_NEW_IOSTREAMS) || defined(_STLP_HAS_NO_NEW_IOSTREAMS) || defined (__STL_USE_NO_IOSTREAMS) || defined(__STLP_USE_NO_IOSTREAMS) || defined(__STL_NO_MBSTATE_T) || defined(__STLP_NO_MBSTATE_T)
|
||||
// Old IO streams:
|
||||
#define BOOST_RE_NO_LOCALE_H
|
||||
#define BOOST_RE_OLD_IOSTREAM
|
||||
#else
|
||||
#ifdef __STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS
|
||||
#include <locale>
|
||||
#if defined( __STL_NO_EXPLICIT_FUNCTION_TMPL_ARGS) || defined(_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
|
||||
#define BOOST_RE_USE_FACET(l, m) (*std::_Use_facet<m >(l))
|
||||
#endif
|
||||
#endif
|
||||
#ifdef __BASTRING__
|
||||
#define BOOST_RE_NO_WCSTRING
|
||||
#endif
|
||||
#if !defined(__STL_MEMBER_TEMPLATE_CLASSES) || !defined(__STL_MEMBER_TEMPLATES)
|
||||
#if !(defined(__STL_MEMBER_TEMPLATE_CLASSES) || defined(__STLP_MEMBER_TEMPLATE_CLASSES)) || !(defined(__STL_MEMBER_TEMPLATES) || defined(__STLP_MEMBER_TEMPLATES))
|
||||
#define BOOST_NO_MEMBER_TEMPLATES
|
||||
#endif
|
||||
#define BOOST_RE_NO_TYPEINFO
|
||||
|
||||
#ifdef __STL_NO_BOOL
|
||||
#if defined(__STL_NO_BOOL) || defined(__STLP_NO_BOOL)
|
||||
#define BOOST_RE_NO_BOOL
|
||||
#endif
|
||||
#ifdef __STL_LIMITED_DEFAULT_TEMPLATES
|
||||
#if defined(__STL_LIMITED_DEFAULT_TEMPLATES) || defined(__STLP_LIMITED_DEFAULT_TEMPLATES)
|
||||
#define BOOST_RE_NO_TRICKY_DEFAULT_PARAM
|
||||
#define BOOST_RE_NO_STRING_DEF_ARGS
|
||||
#endif
|
||||
@ -398,20 +400,17 @@ full list of macros and their usage.
|
||||
|
||||
#define BOOST_RE_ALGO_INCLUDED
|
||||
|
||||
#if !defined( __STL_CLASS_PARTIAL_SPECIALIZATION) || !defined(__SGI_STL_PORT)
|
||||
#if !(defined( __STL_CLASS_PARTIAL_SPECIALIZATION) || defined(__STLP_CLASS_PARTIAL_SPECIALIZATION)) || !defined(__SGI_STL_PORT)
|
||||
#define BOOST_NO_STD_DISTANCE
|
||||
#endif
|
||||
|
||||
#if defined(__STL_USE_STD_ALLOCATORS) || (defined(__SGI_STL_PORT ) && !defined(__STL_MEMBER_TEMPLATE_CLASSES) && !defined(__STL_MEMBER_TEMPLATES))
|
||||
#if defined(__STL_USE_STD_ALLOCATORS) || (defined(__SGI_STL_PORT ) && !defined(__STL_MEMBER_TEMPLATE_CLASSES) && !defined(__STLP_MEMBER_TEMPLATE_CLASSES) && !defined(__STL_MEMBER_TEMPLATES) && !defined(__STLP_MEMBER_TEMPLATES))
|
||||
/* new style allocator's with nested template classes */
|
||||
#else /* __STL_USE_STD_ALLOCATORS */
|
||||
#define BOOST_NO_STD_ALLOCATOR
|
||||
#endif /* __STL_USE_STD_ALLOCATORS */
|
||||
|
||||
#define BOOST_RE_STL_DONE
|
||||
#ifndef __SGI_STL_PORT
|
||||
//#define BOOST_RE_NO_NOT_EQUAL
|
||||
#endif
|
||||
|
||||
#elif defined(_RWSTD_VER) || defined(__STD_ITERATOR__)
|
||||
|
||||
|
48
include/boost/regex/src.cpp
Normal file
48
include/boost/regex/src.cpp
Normal file
@ -0,0 +1,48 @@
|
||||
/*
|
||||
*
|
||||
* Copyright (c) 1998-2000
|
||||
* Dr John Maddock
|
||||
*
|
||||
* Permission to use, copy, modify, distribute and sell this software
|
||||
* and its documentation for any purpose is hereby granted without fee,
|
||||
* provided that the above copyright notice appear in all copies and
|
||||
* that both that copyright notice and this permission notice appear
|
||||
* in supporting documentation. Dr John Maddock makes no representations
|
||||
* about the suitability of this software for any purpose.
|
||||
* It is provided "as is" without express or implied warranty.
|
||||
*
|
||||
*/
|
||||
|
||||
/*
|
||||
* LOCATION: see http://www.boost.org for most recent version.
|
||||
* FILE src.cpp
|
||||
* VERSION 3.11
|
||||
* DESCRIPTION: Includes all the regex source files, include this
|
||||
* file only if you need to build the regex library
|
||||
* as a single file. Before including this file you
|
||||
* must define BOOST_RE_NO_LIB, or include this file
|
||||
* before any other regex header.
|
||||
*/
|
||||
|
||||
#if !defined(BOOST_RE_NO_LIB) && defined(BOOST_REGEX_CONFIG_HPP)
|
||||
#error too late you have already included a regex header - try defining BOOST_RE_NO_LIB when you build
|
||||
#endif
|
||||
|
||||
//
|
||||
// include library source files:
|
||||
//
|
||||
#ifdef BOOST_RE_LOCALE_W32
|
||||
#include "libs/regex/src/w32_regex_traits.cpp"
|
||||
#elif defined(BOOST_RE_LOCALE_C)
|
||||
#include "libs/regex/src/c_regex_traits.cpp"
|
||||
#else
|
||||
#include "libs/regex/src/cpp_regex_traits.cpp"
|
||||
#endif
|
||||
#include "libs/regex/src/c_regex_traits_common.cpp"
|
||||
#include "libs/regex/src/cregex.cpp"
|
||||
#include "libs/regex/src/fileiter.cpp"
|
||||
#include "libs/regex/src/posix_api.cpp"
|
||||
#include "libs/regex/src/wide_posix_api.cpp"
|
||||
#include "libs/regex/src/regex.cpp"
|
||||
#include "libs/regex/src/regex_debug.cpp"
|
||||
#include "libs/regex/src/regex_synch.cpp"
|
@ -27,6 +27,7 @@
|
||||
#define BOOST_RE_NO_LIB
|
||||
|
||||
#include <boost/regex.hpp>
|
||||
#include <boost/regex/src.cpp>
|
||||
|
||||
//
|
||||
// instantiate templates used:
|
||||
@ -179,22 +180,5 @@ template test_string_type regex_merge(const test_string_type&,
|
||||
#include "parse.cpp"
|
||||
#include "regress.cpp"
|
||||
|
||||
//
|
||||
// include library source files:
|
||||
//
|
||||
#ifdef BOOST_RE_LOCALE_W32
|
||||
#include "libs/regex/src/w32_regex_traits.cpp"
|
||||
#elif defined(BOOST_RE_LOCALE_C)
|
||||
#include "libs/regex/src/c_regex_traits.cpp"
|
||||
#else
|
||||
#include "libs/regex/src/cpp_regex_traits.cpp"
|
||||
#endif
|
||||
#include "libs/regex/src/c_regex_traits_common.cpp"
|
||||
#include "libs/regex/src/cregex.cpp"
|
||||
#include "libs/regex/src/fileiter.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_synch.cpp"
|
||||
|
||||
|
||||
|
@ -309,8 +309,11 @@ struct debug_iterator
|
||||
#if defined(__SGI_STL_PORT)
|
||||
namespace std{
|
||||
template <class T>
|
||||
inline random_access_iterator_tag __STL_CALL
|
||||
__ITERATOR_CATEGORY(const debug_iterator<T>&) {
|
||||
#if __SGI_STL_PORT <= 0x400
|
||||
inline random_access_iterator_tag __STL_CALL __ITERATOR_CATEGORY(const debug_iterator<T>&) {
|
||||
#else
|
||||
inline random_access_iterator_tag __iterator_category(const debug_iterator<T>&) {
|
||||
#endif
|
||||
return random_access_iterator_tag();
|
||||
}
|
||||
}
|
||||
|
@ -39,6 +39,7 @@
|
||||
#endif
|
||||
|
||||
#include <boost/regex.hpp>
|
||||
#include <boost/regex/src.cpp>
|
||||
|
||||
#ifdef BOOST_RE_NO_WCSTRING
|
||||
#error The regex library is not configured for wide character support
|
||||
@ -190,23 +191,5 @@ template test_string_type regex_merge(const test_string_type&,
|
||||
#include "parse.cpp"
|
||||
#include "regress.cpp"
|
||||
|
||||
//
|
||||
// include library source files:
|
||||
//
|
||||
#ifdef BOOST_RE_LOCALE_W32
|
||||
#include "libs/regex/src/w32_regex_traits.cpp"
|
||||
#elif defined(BOOST_RE_LOCALE_C)
|
||||
#include "libs/regex/src/c_regex_traits.cpp"
|
||||
#else
|
||||
#include "libs/regex/src/cpp_regex_traits.cpp"
|
||||
#endif
|
||||
#include "libs/regex/src/c_regex_traits_common.cpp"
|
||||
#include "libs/regex/src/cregex.cpp"
|
||||
#include "libs/regex/src/fileiter.cpp"
|
||||
#include "libs/regex/src/regex.cpp"
|
||||
#include "libs/regex/src/regex_debug.cpp"
|
||||
#include "libs/regex/src/regex_synch.cpp"
|
||||
#include "libs/regex/src/wide_posix_api.cpp"
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user