mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-07-31 10:58:21 -07:00
dev-cpp/libcutl: Use std::regex over boost::regex
* boost-1.65.0 has removed TR1 support. It's 2017 and we can use C++11's <regex> support now. Closes: https://bugs.gentoo.org/show_bug.cgi?id=630016 Package-Manager: Portage-2.3.8, Repoman-2.3.3
This commit is contained in:
162
dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch
Normal file
162
dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch
Normal file
@@ -0,0 +1,162 @@
|
||||
Use regex from C++11 instead of boost/tr1's version (the latter is gone as of boost 1.65).
|
||||
Patch: https://svnweb.freebsd.org/ports/head/devel/libcutl/files/patch-cutl_re_re.cxx?view=markup&pathrev=445764
|
||||
Bug: https://bugs.gentoo.org/show_bug.cgi?id=630016
|
||||
|
||||
--- a/cutl/re/re.cxx
|
||||
+++ b/cutl/re/re.cxx
|
||||
@@ -9,7 +9,7 @@
|
||||
#ifndef LIBCUTL_EXTERNAL_BOOST
|
||||
# include <cutl/details/boost/tr1/regex.hpp>
|
||||
#else
|
||||
-# include <boost/tr1/regex.hpp>
|
||||
+# include <regex>
|
||||
#endif
|
||||
|
||||
using namespace std;
|
||||
@@ -40,17 +40,17 @@
|
||||
struct basic_regex<C>::impl
|
||||
{
|
||||
typedef basic_string<C> string_type;
|
||||
- typedef tr1::basic_regex<C> regex_type;
|
||||
+ typedef std::basic_regex<C> regex_type;
|
||||
typedef typename regex_type::flag_type flag_type;
|
||||
|
||||
impl () {}
|
||||
impl (regex_type const& r): r (r) {}
|
||||
impl (string_type const& s, bool icase)
|
||||
{
|
||||
- flag_type f (tr1::regex_constants::ECMAScript);
|
||||
+ flag_type f (std::regex_constants::ECMAScript);
|
||||
|
||||
if (icase)
|
||||
- f |= tr1::regex_constants::icase;
|
||||
+ f |= std::regex_constants::icase;
|
||||
|
||||
r.assign (s, f);
|
||||
}
|
||||
@@ -118,15 +118,15 @@
|
||||
impl_ = s == 0 ? new impl : new impl (*s, icase);
|
||||
else
|
||||
{
|
||||
- impl::flag_type f (tr1::regex_constants::ECMAScript);
|
||||
+ impl::flag_type f (std::regex_constants::ECMAScript);
|
||||
|
||||
if (icase)
|
||||
- f |= tr1::regex_constants::icase;
|
||||
+ f |= std::regex_constants::icase;
|
||||
|
||||
impl_->r.assign (*s, f);
|
||||
}
|
||||
}
|
||||
- catch (tr1::regex_error const& e)
|
||||
+ catch (std::regex_error const& e)
|
||||
{
|
||||
throw basic_format<char> (s == 0 ? "" : *s, e.what ());
|
||||
}
|
||||
@@ -146,15 +146,15 @@
|
||||
impl_ = s == 0 ? new impl : new impl (*s, icase);
|
||||
else
|
||||
{
|
||||
- impl::flag_type f (tr1::regex_constants::ECMAScript);
|
||||
+ impl::flag_type f (std::regex_constants::ECMAScript);
|
||||
|
||||
if (icase)
|
||||
- f |= tr1::regex_constants::icase;
|
||||
+ f |= std::regex_constants::icase;
|
||||
|
||||
impl_->r.assign (*s, f);
|
||||
}
|
||||
}
|
||||
- catch (tr1::regex_error const& e)
|
||||
+ catch (std::regex_error const& e)
|
||||
{
|
||||
throw basic_format<wchar_t> (s == 0 ? L"" : *s, e.what ());
|
||||
}
|
||||
@@ -166,28 +166,28 @@
|
||||
bool basic_regex<char>::
|
||||
match (string_type const& s) const
|
||||
{
|
||||
- return tr1::regex_match (s, impl_->r);
|
||||
+ return std::regex_match (s, impl_->r);
|
||||
}
|
||||
|
||||
template <>
|
||||
bool basic_regex<wchar_t>::
|
||||
match (string_type const& s) const
|
||||
{
|
||||
- return tr1::regex_match (s, impl_->r);
|
||||
+ return std::regex_match (s, impl_->r);
|
||||
}
|
||||
|
||||
template <>
|
||||
bool basic_regex<char>::
|
||||
search (string_type const& s) const
|
||||
{
|
||||
- return tr1::regex_search (s, impl_->r);
|
||||
+ return std::regex_search (s, impl_->r);
|
||||
}
|
||||
|
||||
template <>
|
||||
bool basic_regex<wchar_t>::
|
||||
search (string_type const& s) const
|
||||
{
|
||||
- return tr1::regex_search (s, impl_->r);
|
||||
+ return std::regex_search (s, impl_->r);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -196,13 +196,13 @@
|
||||
string_type const& sub,
|
||||
bool first_only) const
|
||||
{
|
||||
- tr1::regex_constants::match_flag_type f (
|
||||
- tr1::regex_constants::format_default);
|
||||
+ std::regex_constants::match_flag_type f (
|
||||
+ std::regex_constants::format_default);
|
||||
|
||||
if (first_only)
|
||||
- f |= tr1::regex_constants::format_first_only;
|
||||
+ f |= std::regex_constants::format_first_only;
|
||||
|
||||
- return tr1::regex_replace (s, impl_->r, sub, f);
|
||||
+ return std::regex_replace (s, impl_->r, sub, f);
|
||||
}
|
||||
|
||||
template <>
|
||||
@@ -211,13 +211,13 @@
|
||||
string_type const& sub,
|
||||
bool first_only) const
|
||||
{
|
||||
- tr1::regex_constants::match_flag_type f (
|
||||
- tr1::regex_constants::format_default);
|
||||
+ std::regex_constants::match_flag_type f (
|
||||
+ std::regex_constants::format_default);
|
||||
|
||||
if (first_only)
|
||||
- f |= tr1::regex_constants::format_first_only;
|
||||
+ f |= std::regex_constants::format_first_only;
|
||||
|
||||
- return tr1::regex_replace (s, impl_->r, sub, f);
|
||||
+ return std::regex_replace (s, impl_->r, sub, f);
|
||||
}
|
||||
}
|
||||
}
|
||||
--- a/m4/libboost.m4
|
||||
+++ b/m4/libboost.m4
|
||||
@@ -129,13 +129,13 @@
|
||||
AC_DEFUN([LIBBOOST_REGEX], [
|
||||
LIBBOOST_LIB([regex],[
|
||||
AC_LANG_SOURCE([
|
||||
-#include <boost/tr1/regex.hpp>
|
||||
+#include <regex>
|
||||
|
||||
int
|
||||
main ()
|
||||
{
|
||||
- std::tr1::regex r ("te.t", std::tr1::regex_constants::ECMAScript);
|
||||
- return std::tr1::regex_match ("test", r) ? 0 : 1;
|
||||
+ std::regex r ("te.t", std::regex_constants::ECMAScript);
|
||||
+ return std::regex_match ("test", r) ? 0 : 1;
|
||||
}
|
||||
])],
|
||||
[$1],
|
||||
@@ -1,13 +1,14 @@
|
||||
# Copyright 1999-2016 Gentoo Foundation
|
||||
# Copyright 1999-2017 Gentoo Foundation
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=6
|
||||
|
||||
inherit versionator
|
||||
inherit autotools flag-o-matic versionator
|
||||
|
||||
DESCRIPTION="A collection of C++ libraries (successor of libcult)"
|
||||
HOMEPAGE="http://www.codesynthesis.com/projects/libcutl/"
|
||||
SRC_URI="http://www.codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
|
||||
|
||||
LICENSE="MIT"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
|
||||
@@ -18,16 +19,25 @@ RDEPEND="
|
||||
dev-libs/boost:="
|
||||
DEPEND="${RDEPEND}"
|
||||
|
||||
PATCHES=( "${FILESDIR}/${PN}-1.10.0-fix-c++14.patch" )
|
||||
PATCHES=(
|
||||
"${FILESDIR}"/${PN}-1.10.0-fix-c++14.patch
|
||||
"${FILESDIR}"/${PN}-1.10.0-boost-1.65-tr1.patch
|
||||
)
|
||||
|
||||
src_prepare() {
|
||||
default
|
||||
|
||||
# remove bundled libs
|
||||
rm -r cutl/details/{boost,expat} || die
|
||||
|
||||
eautoreconf
|
||||
}
|
||||
|
||||
src_configure() {
|
||||
# ensure <regex> works on GCC 5 and below
|
||||
# bug 630016
|
||||
append-cxxflags -std=c++14
|
||||
|
||||
econf \
|
||||
--disable-static \
|
||||
--with-external-boost \
|
||||
|
||||
Reference in New Issue
Block a user