aboutsummaryrefslogtreecommitdiffstats
path: root/devel
diff options
context:
space:
mode:
authorrakuco <rakuco@FreeBSD.org>2017-07-14 23:15:30 +0800
committerrakuco <rakuco@FreeBSD.org>2017-07-14 23:15:30 +0800
commit478893951e96623083c2333b4a3fdc1e737ccf92 (patch)
tree958db1ece533713a13675426a5cf8b246bc7cddb /devel
parentd978e45135ea95749d6cb828ade17f67c7e83da2 (diff)
downloadfreebsd-ports-gnome-478893951e96623083c2333b4a3fdc1e737ccf92.tar.gz
freebsd-ports-gnome-478893951e96623083c2333b4a3fdc1e737ccf92.tar.zst
freebsd-ports-gnome-478893951e96623083c2333b4a3fdc1e737ccf92.zip
Stop using boost's tr1 regex implementation.
tr1 is gone in the upcoming Boost 1.65. Adjust the code by switching to C++11's <regex> header instead. There is similar code in upstream's git repository, but it is mixed with a lot of other changes that make it infeasible to backport them directly. PR: 220715 Reported by: jbeich
Diffstat (limited to 'devel')
-rw-r--r--devel/libcutl/Makefile2
-rw-r--r--devel/libcutl/files/patch-configure38
-rw-r--r--devel/libcutl/files/patch-cutl_re_re.cxx141
3 files changed, 180 insertions, 1 deletions
diff --git a/devel/libcutl/Makefile b/devel/libcutl/Makefile
index 4551d03e717f..b78857ed5e8d 100644
--- a/devel/libcutl/Makefile
+++ b/devel/libcutl/Makefile
@@ -2,7 +2,7 @@
PORTNAME= libcutl
PORTVERSION= 1.10.0
-PORTREVISION= 3
+PORTREVISION= 4
CATEGORIES= devel
MASTER_SITES= http://www.codesynthesis.com/download/${PORTNAME}/${PORTVERSION:R}/
diff --git a/devel/libcutl/files/patch-configure b/devel/libcutl/files/patch-configure
new file mode 100644
index 000000000000..432051d95751
--- /dev/null
+++ b/devel/libcutl/files/patch-configure
@@ -0,0 +1,38 @@
+Use regex from C++11 instead of boost/tr1's version (the latter is gone as of
+boost 1.65).
+--- configure.orig 2015-11-24 13:45:55 UTC
++++ configure
+@@ -17554,13 +17554,13 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+
+-#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;
+ }
+
+ _ACEOF
+@@ -17631,13 +17631,13 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+ /* end confdefs.h. */
+
+
+-#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;
+ }
+
+ _ACEOF
diff --git a/devel/libcutl/files/patch-cutl_re_re.cxx b/devel/libcutl/files/patch-cutl_re_re.cxx
new file mode 100644
index 000000000000..1a2a30fc886a
--- /dev/null
+++ b/devel/libcutl/files/patch-cutl_re_re.cxx
@@ -0,0 +1,141 @@
+Use regex from C++11 instead of boost/tr1's version (the latter is gone as of
+boost 1.65).
+--- cutl/re/re.cxx.orig 2017-07-14 14:59:43 UTC
++++ 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 @@ namespace cutl
+ 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 @@ namespace cutl
+ 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 @@ namespace cutl
+ 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 @@ namespace cutl
+ 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 @@ namespace cutl
+ 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 @@ namespace cutl
+ 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);
+ }
+ }
+ }