diff options
author | 2012-06-11 00:18:32 +0300 | |
---|---|---|
committer | 2012-06-11 00:18:32 +0300 | |
commit | 6847e5219e3f5913864d70859f2bda8ce777221e (patch) | |
tree | 1489e68221bbbe3535abfd7ff190f523196b24d0 | |
parent | My local patch for libc++ (diff) | |
download | betelgeuse-6847e5219e3f5913864d70859f2bda8ce777221e.tar.gz betelgeuse-6847e5219e3f5913864d70859f2bda8ce777221e.tar.bz2 betelgeuse-6847e5219e3f5913864d70859f2bda8ce777221e.zip |
Builds against current trunk again
-rw-r--r-- | sys-libs/libcxx/Manifest | 3 | ||||
-rw-r--r-- | sys-libs/libcxx/files/locale-linux-2.patch | 659 | ||||
-rw-r--r-- | sys-libs/libcxx/libcxx-9999.ebuild | 1 |
3 files changed, 1 insertions, 662 deletions
diff --git a/sys-libs/libcxx/Manifest b/sys-libs/libcxx/Manifest index 6586496..813a7ba 100644 --- a/sys-libs/libcxx/Manifest +++ b/sys-libs/libcxx/Manifest @@ -1,2 +1 @@ -AUX locale-linux-2.patch 23988 RMD160 40fe8c40152d3150471608d60ee3ba74834b2a25 SHA1 d95860b74ec4c92c9e83800c2cad827269586429 SHA256 618e9454910677a1ef3ab03f1657a4bb28355e98bd476599187a1a6d35596b93 -EBUILD libcxx-9999.ebuild 846 RMD160 bb9e55907e66b25f0abeb55b271a6da3cd7b9517 SHA1 cdda602409e5069f0fd01eddeedc289617b2167f SHA256 4f1ff6d164b2ed0f8a7f21f46d7adc2f439772f25ac3e45c4592b75197736143 +EBUILD libcxx-9999.ebuild 823 RMD160 876540e8dccfc03f0e48e36b1a492592d76f14ae SHA1 b727f7d077d6b2717ed28def44c22be438ddd36c SHA256 2c6c1921aa9d531838d7d521136401246ddee4f02774e8b36c40f6536452032b diff --git a/sys-libs/libcxx/files/locale-linux-2.patch b/sys-libs/libcxx/files/locale-linux-2.patch deleted file mode 100644 index 5a1bd63..0000000 --- a/sys-libs/libcxx/files/locale-linux-2.patch +++ /dev/null @@ -1,659 +0,0 @@ -commit f41e6b7f2a1c2f016e29ea440f781a7d90680b4f -Author: Petteri Räty <petsku@petteriraty.eu> -Date: Mon May 30 23:33:08 2011 +0300 - - locale.cpp improved linux support - - Use type_traits to get the type of locale_t underlying struct and use - posix versions of functions. What is left to compile fully on Linux is - figuring out how to support _DefaultRuneLocale. - -diff --git a/src/locale.cpp b/src/locale.cpp -index f32ce96..138dbc2 100644 ---- a/src/locale.cpp -+++ b/src/locale.cpp -@@ -14,6 +14,7 @@ - #include "algorithm" - #include "algorithm" - #include "typeinfo" -+#include "type_traits" - #include "clocale" - #include "cstring" - #include "cwctype" -@@ -21,6 +22,97 @@ - #include <langinfo.h> - #include <stdlib.h> - -+namespace { -+ typedef std::remove_pointer<locale_t>::type locale_struct; -+ typedef std::unique_ptr<locale_struct, decltype(&freelocale)> locale_unique_ptr; -+ typedef std::unique_ptr<locale_struct, decltype(&uselocale)> locale_raii; -+} -+ -+namespace with_locale { namespace { -+#ifdef __APPLE__ -+ using ::btowc_l; -+ using ::wctob_l; -+ using ::wcsnrtombs_l; -+ using ::wcrtomb_l; -+ using ::mbsnrtowcs_l; -+ using ::mbrtowc_l; -+ using ::mbtowc_l; -+ using ::mbrlen_l; -+ using ::localeconv_l; -+ using ::mbsrtowcs_l; -+ -+ decltype(MB_CUR_MAX_L) -+ mb_cur_max_l(locale_t loc) -+ { -+ return MB_CUR_MAX_L(loc); -+ } -+#else -+ template -+ <typename Function, typename ...Args> -+ auto using_locale(Function f, locale_t loc, Args&&... params) -> decltype(f(std::forward<Args>(params)...)) -+ { -+ locale_raii current(uselocale(loc), uselocale); -+ return f(std::forward<Args>(params)...); -+ } -+ -+ decltype(MB_CUR_MAX) -+ mb_cur_max_l(locale_t loc) -+ { -+ locale_raii current(uselocale(loc), uselocale); -+ return MB_CUR_MAX; -+ } -+ -+ wint_t btowc_l(int c, locale_t l) { return using_locale(&btowc, l, c); } -+ int wctob_l(wint_t c, locale_t l) { return using_locale(&wctob, l, c); } -+ size_t wcsnrtombs_l(char * dest, -+ const wchar_t * * src, -+ size_t nwc, -+ size_t len, -+ mbstate_t * ps, -+ locale_t l) -+ { -+ return using_locale(&wcsnrtombs, l, dest, src, nwc, len, ps); -+ } -+ size_t wcrtomb_l(char *s, wchar_t wc, mbstate_t *ps, locale_t l) -+ { -+ return using_locale(&wcrtomb, l, s, wc, ps); -+ } -+ size_t mbsnrtowcs_l(wchar_t * dest, -+ const char * * src, -+ size_t nms, -+ size_t len, -+ mbstate_t * ps, -+ locale_t l) -+ { -+ return using_locale(&mbsnrtowcs, l, dest, src, nms, len, ps); -+ } -+ size_t mbrtowc_l(wchar_t *pwc, const char *s, size_t n, mbstate_t *ps, locale_t l) -+ { -+ return using_locale(&mbrtowc, l, pwc, s, n, ps); -+ } -+ int mbtowc_l(wchar_t * pwc, const char * pmb, size_t max, locale_t l) -+ { -+ return using_locale(&mbtowc, l, pwc, pmb, max); -+ } -+ size_t mbrlen_l(const char *s, size_t n, mbstate_t *ps, locale_t l) -+ { -+ return using_locale(&mbrlen, l, s, n, ps); -+ } -+ struct lconv *localeconv_l(locale_t l) -+ { -+ return using_locale(&localeconv, l); -+ } -+ size_t mbsrtowcs_l(wchar_t * dest, -+ const char * * src, -+ size_t len, -+ mbstate_t * ps, -+ locale_t l) -+ { -+ return using_locale(&mbsrtowcs, l, dest, src, len, ps); -+ } -+#endif -+} } -+ - _LIBCPP_BEGIN_NAMESPACE_STD - - namespace { -@@ -1082,49 +1174,33 @@ ctype_byname<wchar_t>::do_tolower(char_type* low, const char_type* high) const - wchar_t - ctype_byname<wchar_t>::do_widen(char c) const - { --#ifdef __APPLE__ -- return btowc_l(c, __l); --#else -- return 0; --#endif -+ return with_locale::btowc_l(c, __l); - } - - const char* - ctype_byname<wchar_t>::do_widen(const char* low, const char* high, char_type* dest) const - { --#ifdef __APPLE__ - for (; low != high; ++low, ++dest) -- *dest = btowc_l(*low, __l); -+ *dest = with_locale::btowc_l(*low, __l); - return low; --#else -- return NULL; --#endif - } - - char - ctype_byname<wchar_t>::do_narrow(char_type c, char dfault) const - { --#ifdef __APPLE__ -- int r = wctob_l(c, __l); -+ int r = with_locale::wctob_l(c, __l); - return r != WEOF ? static_cast<char>(r) : dfault; --#else -- return 0; --#endif - } - - const wchar_t* - ctype_byname<wchar_t>::do_narrow(const char_type* low, const char_type* high, char dfault, char* dest) const - { --#ifdef __APPLE__ - for (; low != high; ++low, ++dest) - { -- int r = wctob_l(*low, __l); -+ int r = with_locale::wctob_l(*low, __l); - *dest = r != WEOF ? static_cast<char>(r) : dfault; - } - return low; --#else -- return NULL; --#endif - } - - // template <> class codecvt<char, char, mbstate_t> -@@ -1220,7 +1296,6 @@ codecvt<wchar_t, char, mbstate_t>::do_out(state_type& st, - const intern_type* frm, const intern_type* frm_end, const intern_type*& frm_nxt, - extern_type* to, extern_type* to_end, extern_type*& to_nxt) const - { --#ifdef __APPLE__ - // look for first internal null in frm - const intern_type* fend = frm; - for (; fend != frm_end; ++fend) -@@ -1232,13 +1307,13 @@ codecvt<wchar_t, char, mbstate_t>::do_out(state_type& st, - { - // save state in case needed to reover to_nxt on error - mbstate_t save_state = st; -- size_t n = wcsnrtombs_l(to, &frm_nxt, fend-frm, to_end-to, &st, __l); -+ size_t n = with_locale::wcsnrtombs_l(to, &frm_nxt, fend-frm, to_end-to, &st, __l); - if (n == size_t(-1)) - { - // need to recover to_nxt - for (to_nxt = to; frm != frm_nxt; ++frm) - { -- n = wcrtomb_l(to_nxt, *frm, &save_state, __l); -+ n = with_locale::wcrtomb_l(to_nxt, *frm, &save_state, __l); - if (n == size_t(-1)) - break; - to_nxt += n; -@@ -1255,7 +1330,7 @@ codecvt<wchar_t, char, mbstate_t>::do_out(state_type& st, - { - // Try to write the terminating null - extern_type tmp[MB_LEN_MAX]; -- n = wcrtomb_l(tmp, intern_type(), &st, __l); -+ n = with_locale::wcrtomb_l(tmp, intern_type(), &st, __l); - if (n == size_t(-1)) // on error - return error; - if (n > to_end-to_nxt) // is there room? -@@ -1270,9 +1345,6 @@ codecvt<wchar_t, char, mbstate_t>::do_out(state_type& st, - } - } - return frm_nxt == frm_end ? ok : partial; --#else -- return error; --#endif - } - - codecvt<wchar_t, char, mbstate_t>::result -@@ -1280,7 +1352,6 @@ codecvt<wchar_t, char, mbstate_t>::do_in(state_type& st, - const extern_type* frm, const extern_type* frm_end, const extern_type*& frm_nxt, - intern_type* to, intern_type* to_end, intern_type*& to_nxt) const - { --#ifdef __APPLE__ - // look for first internal null in frm - const extern_type* fend = frm; - for (; fend != frm_end; ++fend) -@@ -1292,13 +1363,13 @@ codecvt<wchar_t, char, mbstate_t>::do_in(state_type& st, - { - // save state in case needed to reover to_nxt on error - mbstate_t save_state = st; -- size_t n = mbsnrtowcs_l(to, &frm_nxt, fend-frm, to_end-to, &st, __l); -+ size_t n = with_locale::mbsnrtowcs_l(to, &frm_nxt, fend-frm, to_end-to, &st, __l); - if (n == size_t(-1)) - { - // need to recover to_nxt - for (to_nxt = to; frm != frm_nxt; ++to_nxt) - { -- n = mbrtowc_l(to_nxt, frm, fend-frm, &save_state, __l); -+ n = with_locale::mbrtowc_l(to_nxt, frm, fend-frm, &save_state, __l); - switch (n) - { - case 0: -@@ -1326,7 +1397,7 @@ codecvt<wchar_t, char, mbstate_t>::do_in(state_type& st, - if (fend != frm_end) // set up next null terminated sequence - { - // Try to write the terminating null -- n = mbrtowc_l(to_nxt, frm_nxt, 1, &st, __l); -+ n = with_locale::mbrtowc_l(to_nxt, frm_nxt, 1, &st, __l); - if (n != 0) // on error - return error; - ++to_nxt; -@@ -1338,19 +1409,15 @@ codecvt<wchar_t, char, mbstate_t>::do_in(state_type& st, - } - } - return frm_nxt == frm_end ? ok : partial; --#else -- return error; --#endif - } - - codecvt<wchar_t, char, mbstate_t>::result - codecvt<wchar_t, char, mbstate_t>::do_unshift(state_type& st, - extern_type* to, extern_type* to_end, extern_type*& to_nxt) const - { --#ifdef __APPLE__ - to_nxt = to; - extern_type tmp[MB_LEN_MAX]; -- size_t n = wcrtomb_l(tmp, intern_type(), &st, __l); -+ size_t n = with_locale::wcrtomb_l(tmp, intern_type(), &st, __l); - if (n == size_t(-1) || n == 0) // on error - return error; - --n; -@@ -1359,26 +1426,19 @@ codecvt<wchar_t, char, mbstate_t>::do_unshift(state_type& st, - for (extern_type* p = tmp; n; --n) // write it - *to_nxt++ = *p++; - return ok; --#else -- return error; --#endif - } - - int - codecvt<wchar_t, char, mbstate_t>::do_encoding() const _NOEXCEPT - { --#ifdef __APPLE__ -- if (mbtowc_l(0, 0, MB_LEN_MAX, __l) == 0) -+ if (with_locale::mbtowc_l((wchar_t*) 0, (const char*) 0, MB_LEN_MAX, __l) == 0) - { - // stateless encoding -- if (__l == 0 || MB_CUR_MAX_L(__l) == 1) // there are no known constant length encodings -+ if (__l == 0 || with_locale::mb_cur_max_l(__l) == 1) // there are no known constant length encodings - return 1; // which take more than 1 char to form a wchar_t - return 0; - } - return -1; --#else -- return 0; --#endif - } - - bool -@@ -1391,11 +1451,10 @@ int - codecvt<wchar_t, char, mbstate_t>::do_length(state_type& st, - const extern_type* frm, const extern_type* frm_end, size_t mx) const - { --#ifdef __APPLE__ - int nbytes = 0; - for (size_t nwchar_t = 0; nwchar_t < mx && frm != frm_end; ++nwchar_t) - { -- size_t n = mbrlen_l(frm, frm_end-frm, &st, __l); -+ size_t n = with_locale::mbrlen_l(frm, frm_end-frm, &st, __l); - switch (n) - { - case 0: -@@ -1412,19 +1471,12 @@ codecvt<wchar_t, char, mbstate_t>::do_length(state_type& st, - } - } - return nbytes; --#else -- return 0; --#endif - } - - int - codecvt<wchar_t, char, mbstate_t>::do_max_length() const _NOEXCEPT - { --#ifdef __APPLE__ -- return __l == 0 ? 1 : MB_CUR_MAX_L(__l); --#else -- return 0; --#endif -+ return __l == 0 ? 1 : with_locale::mb_cur_max_l(__l); - } - - // Valid UTF ranges -@@ -3965,16 +4017,15 @@ numpunct_byname<char>::~numpunct_byname() - void - numpunct_byname<char>::__init(const char* nm) - { --#ifdef __APPLE__ - if (strcmp(nm, "C") != 0) - { -- unique_ptr<_xlocale, int(*)(locale_t)> loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); -+ locale_unique_ptr loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); - #ifndef _LIBCPP_NO_EXCEPTIONS - if (loc == 0) - throw runtime_error("numpunct_byname<char>::numpunct_byname" - " failed to construct for " + string(nm)); - #endif // _LIBCPP_NO_EXCEPTIONS -- lconv* lc = localeconv_l(loc.get()); -+ lconv* lc = with_locale::localeconv_l(loc.get()); - if (*lc->decimal_point) - __decimal_point_ = *lc->decimal_point; - if (*lc->thousands_sep) -@@ -3982,7 +4033,6 @@ numpunct_byname<char>::__init(const char* nm) - __grouping_ = lc->grouping; - // locallization for truename and falsename is not available - } --#endif - } - - // numpunct_byname<wchar_t> -@@ -4006,16 +4056,15 @@ numpunct_byname<wchar_t>::~numpunct_byname() - void - numpunct_byname<wchar_t>::__init(const char* nm) - { --#ifdef __APPLE__ - if (strcmp(nm, "C") != 0) - { -- unique_ptr<_xlocale, int(*)(locale_t)> loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); -+ locale_unique_ptr loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); - #ifndef _LIBCPP_NO_EXCEPTIONS - if (loc == 0) - throw runtime_error("numpunct_byname<char>::numpunct_byname" - " failed to construct for " + string(nm)); - #endif // _LIBCPP_NO_EXCEPTIONS -- lconv* lc = localeconv_l(loc.get()); -+ lconv* lc = with_locale::localeconv_l(loc.get()); - if (*lc->decimal_point) - __decimal_point_ = *lc->decimal_point; - if (*lc->thousands_sep) -@@ -4023,7 +4072,6 @@ numpunct_byname<wchar_t>::__init(const char* nm) - __grouping_ = lc->grouping; - // locallization for truename and falsename is not available - } --#endif - } - - // num_get helpers -@@ -4588,7 +4636,6 @@ template <> - wstring - __time_get_storage<wchar_t>::__analyze(char fmt, const ctype<wchar_t>& ct) - { --#ifdef __APPLE__ - tm t; - t.tm_sec = 59; - t.tm_min = 55; -@@ -4608,7 +4655,7 @@ __time_get_storage<wchar_t>::__analyze(char fmt, const ctype<wchar_t>& ct) - wchar_t* wbb = wbuf; - mbstate_t mb = {0}; - const char* bb = buf; -- size_t i = mbsrtowcs_l(wbb, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); -+ size_t i = with_locale::mbsrtowcs_l( wbb, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); - if (i == -1) - __throw_runtime_error("locale not supported"); - wchar_t* wbe = wbb + i; -@@ -4733,9 +4780,6 @@ __time_get_storage<wchar_t>::__analyze(char fmt, const ctype<wchar_t>& ct) - ++wbb; - } - return result; --#else -- return wstring(); --#endif - } - - template <> -@@ -4779,7 +4823,6 @@ template <> - void - __time_get_storage<wchar_t>::init(const ctype<wchar_t>& ct) - { --#ifdef __APPLE__ - tm t = {0}; - char buf[100]; - size_t be; -@@ -4793,7 +4836,7 @@ __time_get_storage<wchar_t>::init(const ctype<wchar_t>& ct) - be = strftime_l(buf, 100, "%A", &t, __loc_); - mb = mbstate_t(); - const char* bb = buf; -- size_t j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); -+ size_t j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -4801,7 +4844,7 @@ __time_get_storage<wchar_t>::init(const ctype<wchar_t>& ct) - be = strftime_l(buf, 100, "%a", &t, __loc_); - mb = mbstate_t(); - bb = buf; -- j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); -+ j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -4814,7 +4857,7 @@ __time_get_storage<wchar_t>::init(const ctype<wchar_t>& ct) - be = strftime_l(buf, 100, "%B", &t, __loc_); - mb = mbstate_t(); - const char* bb = buf; -- size_t j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); -+ size_t j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -4822,7 +4865,7 @@ __time_get_storage<wchar_t>::init(const ctype<wchar_t>& ct) - be = strftime_l(buf, 100, "%b", &t, __loc_); - mb = mbstate_t(); - bb = buf; -- j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); -+ j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -4833,7 +4876,7 @@ __time_get_storage<wchar_t>::init(const ctype<wchar_t>& ct) - be = strftime_l(buf, 100, "%p", &t, __loc_); - mb = mbstate_t(); - const char* bb = buf; -- size_t j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); -+ size_t j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -4842,7 +4885,7 @@ __time_get_storage<wchar_t>::init(const ctype<wchar_t>& ct) - be = strftime_l(buf, 100, "%p", &t, __loc_); - mb = mbstate_t(); - bb = buf; -- j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); -+ j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, __loc_); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -4851,7 +4894,6 @@ __time_get_storage<wchar_t>::init(const ctype<wchar_t>& ct) - __r_ = __analyze('r', ct); - __x_ = __analyze('x', ct); - __X_ = __analyze('X', ct); --#endif - } - - template <class CharT> -@@ -5113,17 +5155,15 @@ void - __time_put::__do_put(wchar_t* __wb, wchar_t*& __we, const tm* __tm, - char __fmt, char __mod) const - { --#ifdef __APPLE__ - char __nar[100]; - char* __ne = __nar + 100; - __do_put(__nar, __ne, __tm, __fmt, __mod); - mbstate_t mb = {0}; - const char* __nb = __nar; -- size_t j = mbsrtowcs_l(__wb, &__nb, 100, &mb, __loc_); -+ size_t j = with_locale::mbsrtowcs_l(__wb, &__nb, 100, &mb, __loc_); - if (j == -1) - __throw_runtime_error("locale not supported"); - __we = __wb + j; --#endif - } - - // moneypunct_byname -@@ -5368,15 +5408,14 @@ template<> - void - moneypunct_byname<char, false>::init(const char* nm) - { --#ifdef __APPLE__ - typedef moneypunct<char, false> base; -- unique_ptr<_xlocale, int(*)(locale_t)> loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); -+ locale_unique_ptr loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); - #ifndef _LIBCPP_NO_EXCEPTIONS - if (loc == 0) - throw runtime_error("moneypunct_byname" - " failed to construct for " + string(nm)); - #endif // _LIBCPP_NO_EXCEPTIONS -- lconv* lc = localeconv_l(loc.get()); -+ lconv* lc = with_locale::localeconv_l(loc.get()); - if (*lc->mon_decimal_point) - __decimal_point_ = *lc->mon_decimal_point; - else -@@ -5401,22 +5440,20 @@ moneypunct_byname<char, false>::init(const char* nm) - __negative_sign_ = lc->negative_sign; - __init_pat(__pos_format_, lc->p_cs_precedes, lc->p_sep_by_space, lc->p_sign_posn); - __init_pat(__neg_format_, lc->n_cs_precedes, lc->n_sep_by_space, lc->n_sign_posn); --#endif - } - - template<> - void - moneypunct_byname<char, true>::init(const char* nm) - { --#ifdef __APPLE__ - typedef moneypunct<char, true> base; -- unique_ptr<_xlocale, int(*)(locale_t)> loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); -+ locale_unique_ptr loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); - #ifndef _LIBCPP_NO_EXCEPTIONS - if (loc == 0) - throw runtime_error("moneypunct_byname" - " failed to construct for " + string(nm)); - #endif // _LIBCPP_NO_EXCEPTIONS -- lconv* lc = localeconv_l(loc.get()); -+ lconv* lc = with_locale::localeconv_l(loc.get()); - if (*lc->mon_decimal_point) - __decimal_point_ = *lc->mon_decimal_point; - else -@@ -5441,22 +5478,20 @@ moneypunct_byname<char, true>::init(const char* nm) - __negative_sign_ = lc->negative_sign; - __init_pat(__pos_format_, lc->int_p_cs_precedes, lc->int_p_sep_by_space, lc->int_p_sign_posn); - __init_pat(__neg_format_, lc->int_n_cs_precedes, lc->int_n_sep_by_space, lc->int_n_sign_posn); --#endif - } - - template<> - void - moneypunct_byname<wchar_t, false>::init(const char* nm) - { --#ifdef __APPLE__ - typedef moneypunct<wchar_t, false> base; -- unique_ptr<_xlocale, int(*)(locale_t)> loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); -+ locale_unique_ptr loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); - #ifndef _LIBCPP_NO_EXCEPTIONS - if (loc == 0) - throw runtime_error("moneypunct_byname" - " failed to construct for " + string(nm)); - #endif // _LIBCPP_NO_EXCEPTIONS -- lconv* lc = localeconv_l(loc.get()); -+ lconv* lc = with_locale::localeconv_l(loc.get()); - if (*lc->mon_decimal_point) - __decimal_point_ = static_cast<wchar_t>(*lc->mon_decimal_point); - else -@@ -5469,7 +5504,7 @@ moneypunct_byname<wchar_t, false>::init(const char* nm) - wchar_t wbuf[100]; - mbstate_t mb = {0}; - const char* bb = lc->currency_symbol; -- size_t j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); -+ size_t j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); - if (j == -1) - __throw_runtime_error("locale not supported"); - wchar_t* wbe = wbuf + j; -@@ -5484,7 +5519,7 @@ moneypunct_byname<wchar_t, false>::init(const char* nm) - { - mb = mbstate_t(); - bb = lc->positive_sign; -- j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); -+ j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -5496,7 +5531,7 @@ moneypunct_byname<wchar_t, false>::init(const char* nm) - { - mb = mbstate_t(); - bb = lc->negative_sign; -- j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); -+ j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -5504,22 +5539,20 @@ moneypunct_byname<wchar_t, false>::init(const char* nm) - } - __init_pat(__pos_format_, lc->p_cs_precedes, lc->p_sep_by_space, lc->p_sign_posn); - __init_pat(__neg_format_, lc->n_cs_precedes, lc->n_sep_by_space, lc->n_sign_posn); --#endif - } - - template<> - void - moneypunct_byname<wchar_t, true>::init(const char* nm) - { --#ifdef __APPLE__ - typedef moneypunct<wchar_t, true> base; -- unique_ptr<_xlocale, int(*)(locale_t)> loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); -+ locale_unique_ptr loc(newlocale(LC_ALL_MASK, nm, 0), freelocale); - #ifndef _LIBCPP_NO_EXCEPTIONS - if (loc == 0) - throw runtime_error("moneypunct_byname" - " failed to construct for " + string(nm)); - #endif // _LIBCPP_NO_EXCEPTIONS -- lconv* lc = localeconv_l(loc.get()); -+ lconv* lc = with_locale::localeconv_l(loc.get()); - if (*lc->mon_decimal_point) - __decimal_point_ = static_cast<wchar_t>(*lc->mon_decimal_point); - else -@@ -5532,7 +5565,7 @@ moneypunct_byname<wchar_t, true>::init(const char* nm) - wchar_t wbuf[100]; - mbstate_t mb = {0}; - const char* bb = lc->int_curr_symbol; -- size_t j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); -+ size_t j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); - if (j == -1) - __throw_runtime_error("locale not supported"); - wchar_t* wbe = wbuf + j; -@@ -5547,7 +5580,7 @@ moneypunct_byname<wchar_t, true>::init(const char* nm) - { - mb = mbstate_t(); - bb = lc->positive_sign; -- j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); -+ j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -5559,7 +5592,7 @@ moneypunct_byname<wchar_t, true>::init(const char* nm) - { - mb = mbstate_t(); - bb = lc->negative_sign; -- j = mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); -+ j = with_locale::mbsrtowcs_l(wbuf, &bb, sizeof(wbuf)/sizeof(wbuf[0]), &mb, loc.get()); - if (j == -1) - __throw_runtime_error("locale not supported"); - wbe = wbuf + j; -@@ -5567,7 +5600,6 @@ moneypunct_byname<wchar_t, true>::init(const char* nm) - } - __init_pat(__pos_format_, lc->int_p_cs_precedes, lc->int_p_sep_by_space, lc->int_p_sign_posn); - __init_pat(__neg_format_, lc->int_n_cs_precedes, lc->int_n_sep_by_space, lc->int_n_sign_posn); --#endif - } - - void __do_nothing(void*) {} diff --git a/sys-libs/libcxx/libcxx-9999.ebuild b/sys-libs/libcxx/libcxx-9999.ebuild index 67b0ff9..f589289 100644 --- a/sys-libs/libcxx/libcxx-9999.ebuild +++ b/sys-libs/libcxx/libcxx-9999.ebuild @@ -4,7 +4,6 @@ EAPI=4 ESVN_REPO_URI="http://llvm.org/svn/llvm-project/libcxx/trunk" -ESVN_PATCHES="*.patch" inherit subversion |