# --- SDE-COPYRIGHT-NOTE-BEGIN --- # This copyright note is auto-generated by ./scripts/Create-CopyPatch. # # Filename: package/.../uclibc/pkg_patch/gcc/204-uclibc-locale-wchar_fix.patch # Copyright (C) 2009 The OpenSDE Project # # More information can be found in the files COPYING and README. # # This patch file is dual-licensed. It is available under the license the # patched project is licensed under, as long as it is an OpenSource license # as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms # of the GNU General Public License as published by the Free Software # Foundation; either version 2 of the License, or (at your option) any later # version. # --- SDE-COPYRIGHT-NOTE-END --- --- gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc.uclibc200_wchar~ 2006-03-10 15:32:37 +0100 +++ gcc/libstdc++-v3/config/locale/uclibc/monetary_members.cc 2006-03-10 15:37:27 +0100 @@ -401,7 +401,7 @@ # ifdef __UCLIBC_HAS_XLOCALE__ _M_data->_M_decimal_point = __cloc->decimal_point_wc; _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -# else +# elif defined __UCLIBC_HAS_LOCALE__ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; # endif @@ -556,7 +556,7 @@ # ifdef __UCLIBC_HAS_XLOCALE__ _M_data->_M_decimal_point = __cloc->decimal_point_wc; _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; -# else +# elif defined __UCLIBC_HAS_LOCALE__ _M_data->_M_decimal_point = __global_locale->decimal_point_wc; _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; # endif --- gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc.uclibc200_wchar~ 2006-03-10 15:32:37 +0100 +++ gcc/libstdc++-v3/config/locale/uclibc/numeric_members.cc 2006-03-10 15:37:27 +0100 @@ -127,12 +127,25 @@ { // Named locale. // NB: In the GNU model wchar_t is always 32 bit wide. +#ifdef __UCLIBC_MJN3_ONLY__ +#warning fix this... should be numeric +#endif +#ifdef __UCLIBC__ +# ifdef __UCLIBC_HAS_XLOCALE__ + _M_data->_M_decimal_point = __cloc->decimal_point_wc; + _M_data->_M_thousands_sep = __cloc->thousands_sep_wc; +# elif defined __UCLIBC_HAS_LOCALE__ + _M_data->_M_decimal_point = __global_locale->decimal_point_wc; + _M_data->_M_thousands_sep = __global_locale->thousands_sep_wc; +# endif +#else union { char *__s; wchar_t __w; } __u; __u.__s = __nl_langinfo_l(_NL_NUMERIC_DECIMAL_POINT_WC, __cloc); _M_data->_M_decimal_point = __u.__w; __u.__s = __nl_langinfo_l(_NL_NUMERIC_THOUSANDS_SEP_WC, __cloc); _M_data->_M_thousands_sep = __u.__w; +#endif if (_M_data->_M_thousands_sep == L'\0') _M_data->_M_grouping = "";