Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 14 Jul 2017 15:15:31 +0000 (UTC)
From:      Raphael Kubo da Costa <rakuco@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r445764 - in head/devel/libcutl: . files
Message-ID:  <201707141515.v6EFFVcL028680@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rakuco
Date: Fri Jul 14 15:15:30 2017
New Revision: 445764
URL: https://svnweb.freebsd.org/changeset/ports/445764

Log:
  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

Added:
  head/devel/libcutl/files/
  head/devel/libcutl/files/patch-configure   (contents, props changed)
  head/devel/libcutl/files/patch-cutl_re_re.cxx   (contents, props changed)
Modified:
  head/devel/libcutl/Makefile

Modified: head/devel/libcutl/Makefile
==============================================================================
--- head/devel/libcutl/Makefile	Fri Jul 14 15:05:45 2017	(r445763)
+++ head/devel/libcutl/Makefile	Fri Jul 14 15:15:30 2017	(r445764)
@@ -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}/
 

Added: head/devel/libcutl/files/patch-configure
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/libcutl/files/patch-configure	Fri Jul 14 15:15:30 2017	(r445764)
@@ -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

Added: head/devel/libcutl/files/patch-cutl_re_re.cxx
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/devel/libcutl/files/patch-cutl_re_re.cxx	Fri Jul 14 15:15:30 2017	(r445764)
@@ -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);
+     }
+   }
+ }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201707141515.v6EFFVcL028680>