> The rest sounds good, however, the update breaks monotone. It
> seems that the boost_regex lib is unusable for us in 1.34.1:
>
> in devel/monotone:
>
> checking boost version 1.32.0 or newer... yes
> checking for the boost_filesystem library... yes
> checking for the boost_regex library... no
> configure: error: the boost_regex library is required
> See `config.log' for more details.
> *** Error code 1
>
> The test is something like this:
>
> #include <boost/regex.hpp>
> using namespace boost;
> int
> main(void)
> {
> regex expr("foo");
> return 0;
> }
>
> % c++ -I /usr/local/include test.cpp -L/usr/local/lib -lboost_regex
> /usr/local/lib/libboost_regex.so.1.0: warning: wcscpy() is almost always
> misused, please use wcslcpy() /usr/local/lib/libboost_regex.so.1.0:
> warning: strcpy() is almost always misused, please use strlcpy()
> /usr/local/lib/libboost_regex.so.1.0: warning: sprintf() is often misused,
> please use snprintf() /usr/local/lib/libboost_regex.so.1.0: warning:
> strcat() is almost always misused, please use strlcat()
> /usr/local/lib/libboost_regex.so.1.0: undefined reference to
> `boost::re_detail::cpp_regex_traits_implementation<char>::isctype(char,
> unsigned) const' collect2: ld returned 1 exit status
something like this should fix that issue:
/*
* Fix for gcc prior to 3.4: std::ctype<wchar_t> doesn't allow
* masks to be combined, for example:
* std::use_facet<std::ctype<wchar_t> >.is(std::ctype_base::lower|
std::ctype_base::upper, L'a');
* returns *false*.
*/
#if defined(__GLIBCPP__) || defined (__OpenBSD__)
# define BOOST_REGEX_BUGGY_CTYPE_FACET
#endif
$OpenBSD$
--- boost/regex/config.hpp.orig Thu Jan 24 12:19:38 2008
+++ boost/regex/config.hpp Thu Jan 24 12:19:53 2008
@@ -75,7 +75,7 @@
* std::use_facet<std::ctype<wchar_t> >.is(std::ctype_base::lower|std::ctype_base::upper, L'a');
* returns *false*.
*/
-#ifdef __GLIBCPP__
+#if defined(__GLIBCPP__) || defined (__OpenBSD__)
# define BOOST_REGEX_BUGGY_CTYPE_FACET
#endif