gcc/libstdc++-v3/config/locale/gnu/monetary_members.cc

657 lines
19 KiB
C++
Raw Normal View History

// std::moneypunct implementation details, GNU version -*- C++ -*-
c++config: Add in revised namespace associations. 2005-12-18 Benjamin Kosnik <bkoz@redhat.com> * include/bits/c++config: Add in revised namespace associations. _GLIBCXX_BEGIN_NAMESPACE: New macro. _GLIBCXX_END_NAMESPACE: Same. _GLIBCXX_BEGIN_NESTED_NAMESPACE: Same. _GLIBCXX_END_NESTED_NAMESPACE: Same. * acinclude.m4 (GLIBCXX_ENABLE_SYMVERS]): Add gnu-versioned-namespace. * configure: Regenerated. * config.h.in: Same. * config/abi/pre/gnu-versioned-namespace.ver: New. * config/abi/pre/gnu.ver (GLIBCXX_3.4.7): Add exports for nested debug mode items. * include/Makefile.am (${host_builddir}/c++config.h): Fill in values for __GLIBCXX__ and _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION. * include/Makefile.in: Regnerate. * src/compatibility.cc: Alias new, nested definitions to exported symbols from non-nested __gnu_debug. * src/Makefile.am: Add in ENABLE_SYMVERS_GNU_NAMESPACE. * src/Makefile.in: Regenerate. * docs/html/debug_mode.html: Revise for nested design. * docs/html/debug.html: Use debug qualifications instead of __gnu_debug. * docs/html/configopts.html: Revise documentation for --enable-symvers. * include/debug/formatter: Simplify namespace qualifications for current, nested-only reality. Add top-level namespace alias, namespace debug, for debug-mode containers. * include/debug/safe_iterator.h: Same. * include/debug/set.h: Same. * include/debug/hash_multimap.h: Same. * include/debug/hash_set.h: Same. * include/debug/bitset * include/debug/safe_sequence.h: Same. * include/debug/multiset.h: Same. * include/debug/safe_base.h: Same. * include/debug/functions.h: Same. * include/debug/safe_iterator.tcc * include/debug/hash_multiset.h: Same. * include/debug/vector * include/debug/map.h: Same. * include/debug/deque * include/debug/hash_map.h: Same. * include/debug/string * include/debug/macros.h: Same. * include/debug/list * include/debug/debug.h: Same. * include/debug/multimap.h: Same. * src/debug.cc: Same. * testsuite/23_containers/vector/invalidation/1.cc: Cleanups. * testsuite/23_containers/vector/invalidation/2.cc: Same. * testsuite/23_containers/vector/invalidation/3.cc: Same. * testsuite/23_containers/vector/invalidation/4.cc: Same. * testsuite/23_containers/deque/invalidation/1.cc: Same. * testsuite/23_containers/deque/invalidation/2.cc: Same. * testsuite/23_containers/deque/invalidation/3.cc: Same. * testsuite/23_containers/deque/invalidation/4.cc: Same. * testsuite/23_containers/multiset/invalidation/1.cc: Same. * testsuite/23_containers/multiset/invalidation/2.cc: Same. * testsuite/23_containers/multimap/invalidation/1.cc: Same. * testsuite/23_containers/multimap/invalidation/2.cc: Same. * testsuite/23_containers/bitset/invalidation/1.cc: Same. * testsuite/23_containers/bitset/cons/16020.cc: Same. * testsuite/23_containers/bitset/operations/13838.cc: Same. * testsuite/23_containers/list/invalidation/1.cc: Same. * testsuite/23_containers/list/invalidation/2.cc: Same. * testsuite/23_containers/list/invalidation/3.cc: Same. * testsuite/23_containers/list/invalidation/4.cc: Same. * testsuite/23_containers/set/invalidation/1.cc: Same. * testsuite/23_containers/set/invalidation/2.cc: Same. * testsuite/23_containers/map/invalidation/1.cc: Same. * testsuite/23_containers/map/invalidation/2.cc: Same. * testsuite/23_containers/map/insert/16813.cc: Same. * include/bits/basic_ios.h: Use _GLIBCXX_BEGIN_NAMESPACE(std) and friends. * include/bits/stl_list.h: Same. * include/bits/stl_map.h: Same. * include/bits/stl_algobase.h: Same. * include/bits/localefwd.h: Same. * include/bits/valarray_array.tcc: Same. * include/bits/valarray_after.h: Same. * include/bits/gslice_array.h: Same. * include/bits/stl_queue.h: Same. * include/bits/gslice.h: Same. * include/bits/locale_facets.tcc: Same. * include/bits/locale_classes.h: Same. * include/bits/stl_set.h: Same. * include/bits/locale_facets.h: Same. * include/bits/stl_stack.h: Same. * include/bits/stl_iterator_base_types.h: Same. * include/bits/stl_heap.h: Same. * include/bits/indirect_array.h: Same. * include/bits/atomicity.h: Same. * include/bits/stream_iterator.h: Same. * include/bits/concurrence.h: Same. * include/bits/basic_string.h: Same. * include/bits/stl_multimap.h: Same. * include/bits/stl_pair.h: Same. * include/bits/basic_ios.tcc: Same. * include/bits/stl_raw_storage_iter.h: Same. * include/bits/stl_vector.h: Same. * include/bits/stl_numeric.h: Same. * include/bits/ios_base.h: Same. * include/bits/stl_deque.h: Same. * include/bits/istream.tcc: Same. * include/bits/postypes.h: Same. * include/bits/stl_multiset.h: Same. * include/bits/mask_array.h: Same. * include/bits/stl_uninitialized.h: Same. * include/bits/ostream.tcc: Same. * include/bits/slice_array.h: Same. * include/bits/boost_concept_check.h: Same. * include/bits/sstream.tcc: Same. * include/bits/stl_iterator_base_funcs.h: Same. * include/bits/char_traits.h: Same. * include/bits/stl_algo.h: Same. * include/bits/stringfwd.h: Same. * include/bits/c++config * include/bits/stl_iterator.h: Same. * include/bits/valarray_array.h: Same. * include/bits/stl_tempbuf.h: Same. * include/bits/vector.tcc: Same. * include/bits/deque.tcc: Same. * include/bits/stl_bvector.h: Same. * include/bits/basic_string.tcc: Same. * include/bits/list.tcc: Same. * include/bits/streambuf_iterator.h: Same. * include/bits/valarray_before.h: Same. * include/bits/stl_construct.h: Same. * include/bits/stl_function.h: Same. * include/bits/cpp_type_traits.h: Same. * include/bits/streambuf.tcc: Same. * include/bits/allocator.h: Same. * include/bits/stl_tree.h: Same. * include/bits/fstream.tcc: Same. * include/bits/stl_relops.h: Same. * include/bits/functexcept.h: Same. * include/std/std_valarray.h: Same. * include/std/std_iostream.h: Same. * include/std/std_streambuf.h: Same. * include/std/std_bitset.h: Same. * include/std/std_iosfwd.h: Same. * include/std/std_iomanip.h: Same. * include/std/std_fstream.h: Same. * include/std/std_limits.h: Same. * include/std/std_stdexcept.h: Same. * include/std/std_istream.h: Same. * include/std/std_complex.h: Same. * include/std/std_memory.h: Same. * include/std/std_ostream.h: Same. * include/std/std_sstream.h: Same. * include/c_std/std_csignal.h: Same. * include/c_std/std_cstdlib.h: Same. * include/c_std/std_cstdio.h: Same. * include/c_std/std_cstdarg.h: Same. * include/c_std/std_cctype.h: Same. * include/c_std/std_cmath.h: Same. * include/c_std/std_ctime.h: Same. * include/c_std/std_clocale.h: Same. * include/c_std/std_csetjmp.h: Same. * include/c_std/std_cwchar.h: Same. * include/c_std/std_cstring.h: Same. * include/c_std/std_cstddef.h: Same. * include/c_std/std_cwctype.h: Same. * include/backward/iterator.h: Same. * include/backward/set.h: Same. * include/backward/hashtable.h: Same. * include/backward/fstream.h: Same. * include/backward/tempbuf.h: Same. * include/backward/istream.h: Same. * include/backward/bvector.h: Same. * include/backward/stack.h: Same. * include/backward/rope.h: Same. * include/backward/complex.h: Same. * include/backward/ostream.h: Same. * include/backward/heap.h: Same. * include/backward/iostream.h: Same. * include/backward/function.h: Same. * include/backward/multimap.h: Same. * include/backward/pair.h: Same. * include/backward/stream.h: Same. * include/backward/iomanip.h: Same. * include/backward/strstream * include/backward/slist.h: Same. * include/backward/tree.h: Same. * include/backward/vector.h: Same. * include/backward/deque.h: Same. * include/backward/multiset.h: Same. * include/backward/list.h: Same. * include/backward/map.h: Same. * include/backward/algobase.h: Same. * include/backward/hash_map.h: Same. * include/backward/algo.h: Same. * include/backward/queue.h: Same. * include/backward/streambuf.h: Same. * src/allocator-inst.cc: Same. * src/complex_io.cc: Same. * src/localename.cc: Same. * src/limits.cc: Same. * src/ios_failure.cc: Same. * src/locale-misc-inst.cc: Same. * src/streambuf-inst.cc: Same. * src/misc-inst.cc: Same. * src/concept-inst.cc: Same. * src/ios_locale.cc: Same. * src/pool_allocator.cc: Same. * src/fstream-inst.cc: Same. * src/istream-inst.cc: Same. * src/string-inst.cc: Same. * src/locale_init.cc: Same. * src/ctype.cc: Same. * src/strstream.cc: Same. * src/ostream-inst.cc: Same. * src/functexcept.cc: Same. * src/streambuf.cc: Same. * src/sstream-inst.cc: Same. * src/ios.cc: Same. * src/valarray-inst.cc: Same. * src/locale.cc: Same. * src/tree.cc: Same. * src/stdexcept.cc: Same. * src/istream.cc: Same. * src/compatibility.cc: Same. * src/locale-inst.cc: Same. * src/globals_io.cc: Same. * src/list.cc: Same. * src/ios_init.cc: Same. * src/locale_facets.cc: Same. * src/codecvt.cc: Same. * include/tr1/unordered_map: Use _GLIBCXX_BEGIN_NAMESPACE(tr1). * include/tr1/boost_shared_ptr.h: Same. * include/tr1/tuple * include/tr1/hashtable * include/tr1/type_traits_fwd.h: Same. * include/tr1/unordered_set * include/tr1/functional * include/tr1/ref_fwd.h: Same. * include/tr1/utility * include/tr1/type_traits * include/tr1/array * include/ext/hashtable.h: Use _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx). * include/ext/typelist.h: Same. * include/ext/hash_map: Same. * include/ext/rc_string_base.h: Same. * include/ext/pool_allocator.h: Same. * include/ext/iterator: Same. * include/ext/rb_tree: Same. * include/ext/numeric: Same. * include/ext/vstring.tcc: Same. * include/ext/sso_string_base.h: Same. * include/ext/stdio_filebuf.h: Same. * include/ext/algorithm: Same. * include/ext/codecvt_specializations.h: Same. * include/ext/new_allocator.h: Same. * include/ext/array_allocator.h: Same. * include/ext/vstring_util.h: Same. * include/ext/vstring_fwd.h: Same. * include/ext/mt_allocator.h: Same. * include/ext/debug_allocator.h: Same. * include/ext/slist: Same. * include/ext/stdio_sync_filebuf.h: Same. * include/ext/hash_fun.h: Same. * include/ext/malloc_allocator.h: Same. * include/ext/functional: Same. * include/ext/bitmap_allocator.h: Same. * include/ext/pod_char_traits.h: Same. * include/ext/vstring.h: Same. * include/ext/ropeimpl.h: Same. * include/ext/hash_set: Same. * include/ext/memory: Same. * include/ext/rope: Same. * include/bits/boost_concept_check.h: Same. * include/bits/stl_iterator.h: Same. * include/bits/char_traits.h: Same. * include/bits/cpp_type_traits.h: Same. * include/bits/concurrence.h: Same. * include/bits/atomicity.h: Same. * config/locale/gnu/numeric_members.cc: Same. * config/locale/gnu/collate_members.cc: Same. * config/locale/gnu/ctype_members.cc: Same. * config/locale/gnu/c_locale.cc: Same. * config/locale/gnu/codecvt_members.cc: Same. * config/locale/gnu/messages_members.cc: Same. * config/locale/gnu/c_locale.h: Same. * config/locale/gnu/monetary_members.cc: Same. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.h: Same. * config/locale/generic/numeric_members.cc: Same. * config/locale/generic/collate_members.cc: Same. * config/locale/generic/ctype_members.cc: Same. * config/locale/generic/c_locale.cc: Same. * config/locale/generic/codecvt_members.cc: Same. * config/locale/generic/messages_members.cc: Same. * config/locale/generic/c_locale.h: Same. * config/locale/generic/monetary_members.cc: Same. * config/locale/generic/time_members.cc: Same. * config/os/aix/atomicity.h: Same. * config/os/irix/atomicity.h: Same. * config/cpu/powerpc/atomicity.h: Same. * config/cpu/cris/atomicity.h: Same. * config/cpu/ia64/atomicity.h: Same. * config/cpu/alpha/atomicity.h: Same. * config/cpu/m68k/atomicity.h: Same. * config/cpu/hppa/atomicity.h: Same. * config/cpu/mips/atomicity.h: Same. * config/cpu/sparc/atomicity.h: Same. * config/cpu/i386/atomicity.h: Same. * config/cpu/i486/atomicity.h: Same. * config/cpu/sh/atomicity.h: Same. * config/cpu/generic/atomicity.h: Same. * config/cpu/s390/atomicity.h: Same. * config/io/c_io_stdio.h: Same. * config/io/basic_file_stdio.cc: Same. * config/io/basic_file_stdio.h: Same. * src/misc-inst.cc: Same. * src/concept-inst.cc: Same. * src/ext-inst.cc: Same. * src/string-inst.cc: Same. * src/pool_allocator.cc: Same. * src/bitmap_allocator.cc: Same. * src/mt_allocator.cc: Same. * libsupc++/exception: Same. * libsupc++/vterminate.cc: Same. * testsuite/ext/hash_map/1.cc: Explicitly qualify __gnu_cxx::hash_map. * testsuite/ext/hash_map/14648.cc: Same. * libsupc++/eh_alloc.cc: Correct comment line spacing. From-SVN: r108775
2005-12-19 01:56:05 +01:00
// Copyright (C) 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
//
// This file is part of the GNU ISO C++ Library. This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 2, or (at your option)
// any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License along
// with this library; see the file COPYING. If not, write to the Free
// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
// USA.
// As a special exception, you may use this file as part of a free software
// library without restriction. Specifically, if other files instantiate
// templates or use macros or inline functions from this file, or you compile
// this file and link it with other files to produce an executable, this
// file does not by itself cause the resulting executable to be covered by
// the GNU General Public License. This exception does not however
// invalidate any other reasons why the executable file might be covered by
// the GNU General Public License.
//
// ISO C++ 14882: 22.2.6.3.2 moneypunct virtual functions
//
// Written by Benjamin Kosnik <bkoz@redhat.com>
#include <locale>
configure.in (GLIBCPP_ENABLE_DEBUG): Default to none. 2002-12-16 Benjamin Kosnik <bkoz@redhat.com> * configure.in (GLIBCPP_ENABLE_DEBUG): Default to none. Call GLIBCPP_ENABLE_DEBUG_FLAGS. * acinclude.m4 (GLIBCPP_ENABLE_DEBUG): GLIBCPP_BUILD_DEBUG, new conditional if --enable-debug is yes. Rework. (GLIBCPP_ENABLE_DEBUG_FLAGS): New. * aclocal.m4: Regenerate. * libio/Makefile.am: Remove DEBUG_FLAGS. * libio/Makefile.in: Regenerate. * libsupc++/Makefile.am: Remove DEBUG_FLAGS. * libsupc++/Makefile.in: Regenerate. * docs/html/configopts.html: Add docs for --enable-debug, --enable-debug-flags. 2002-12-16 Benjamin Kosnik <bkoz@redhat.com> Correct dependency tracking, build warts. * configure.in: Correct repeated AC_OUTPUT thrashing by config-ml.in * configure: Regenerate. * include/Makefile.am (stamp-target): Stamp in top_builddir. * include/Makefile.in: Regenerate. * src/Makefile.am (codecvt_members.cc): New rule. (collate_members.cc): Same. (ctype_members.cc): Same. (messages_members.cc): Same. (monetary_members.cc): Same. (numeric_members.cc): Same. (time_members.cc): Same. (c++locale.cc): Same. (basic_file.cc): Same. * src/Makefile.in: Regenerate. * acinclude.m4 (CCTYPE_CHAR_CC): Remove. (CCCODECVT_CC): Don't link, AC_SUBST. (CCOLLATE_CC): Same. (CCTYPE_CC): Same. (CMESSAGES_CC): Same. (CMONEY_CC): Same. (CNUMERIC_CC): Same. (CTIME_CC): Same. (CLOCALE_CC): Same. * aclocal.m4: Regenerate. * src/Makefile.am (libstdc___la_LIBADD): Use top_builddir for convenience libraries. (version_arg): Rename linker.map to libstdc++.ver. (libstdc___la_DEPENDENCIES): Remove linker.map, add libstdc++-symbol.ver as a dependency. (libstdc++-symbol.ver): Add rule. * acinclude.m4 (GLIBCPP_ENABLE_SYMVERS): Change LINKER_MAP to SYMVER_MAP. Don't link, AC_SUBST. * include/Makefile.am (target_headers_noinst): New. (stamp-target): Add CLOCALE_INTERNAL_H. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Don't link CLOCALE_INTERNAL_H, AC_SUBST. * config/locale/gnu/c_locale.cc: Modify c++locale_internal.h include. * config/locale/gnu/time_members.cc: Same. * config/locale/gnu/numeric_members.cc: Same. * config/locale/gnu/monetary_members.cc: Same. * config/locale/gnu/messages_members.cc: Same. * config/locale/gnu/ctype_members.cc: Same. * config/locale/gnu/collate_members.cc: Same. * config/locale/gnu/codecvt_members.cc: Same. * config/locale/generic/codecvt_members.cc: Remove. From-SVN: r60177
2002-12-16 20:02:01 +01:00
#include <bits/c++locale_internal.h>
c++config: Add in revised namespace associations. 2005-12-18 Benjamin Kosnik <bkoz@redhat.com> * include/bits/c++config: Add in revised namespace associations. _GLIBCXX_BEGIN_NAMESPACE: New macro. _GLIBCXX_END_NAMESPACE: Same. _GLIBCXX_BEGIN_NESTED_NAMESPACE: Same. _GLIBCXX_END_NESTED_NAMESPACE: Same. * acinclude.m4 (GLIBCXX_ENABLE_SYMVERS]): Add gnu-versioned-namespace. * configure: Regenerated. * config.h.in: Same. * config/abi/pre/gnu-versioned-namespace.ver: New. * config/abi/pre/gnu.ver (GLIBCXX_3.4.7): Add exports for nested debug mode items. * include/Makefile.am (${host_builddir}/c++config.h): Fill in values for __GLIBCXX__ and _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION. * include/Makefile.in: Regnerate. * src/compatibility.cc: Alias new, nested definitions to exported symbols from non-nested __gnu_debug. * src/Makefile.am: Add in ENABLE_SYMVERS_GNU_NAMESPACE. * src/Makefile.in: Regenerate. * docs/html/debug_mode.html: Revise for nested design. * docs/html/debug.html: Use debug qualifications instead of __gnu_debug. * docs/html/configopts.html: Revise documentation for --enable-symvers. * include/debug/formatter: Simplify namespace qualifications for current, nested-only reality. Add top-level namespace alias, namespace debug, for debug-mode containers. * include/debug/safe_iterator.h: Same. * include/debug/set.h: Same. * include/debug/hash_multimap.h: Same. * include/debug/hash_set.h: Same. * include/debug/bitset * include/debug/safe_sequence.h: Same. * include/debug/multiset.h: Same. * include/debug/safe_base.h: Same. * include/debug/functions.h: Same. * include/debug/safe_iterator.tcc * include/debug/hash_multiset.h: Same. * include/debug/vector * include/debug/map.h: Same. * include/debug/deque * include/debug/hash_map.h: Same. * include/debug/string * include/debug/macros.h: Same. * include/debug/list * include/debug/debug.h: Same. * include/debug/multimap.h: Same. * src/debug.cc: Same. * testsuite/23_containers/vector/invalidation/1.cc: Cleanups. * testsuite/23_containers/vector/invalidation/2.cc: Same. * testsuite/23_containers/vector/invalidation/3.cc: Same. * testsuite/23_containers/vector/invalidation/4.cc: Same. * testsuite/23_containers/deque/invalidation/1.cc: Same. * testsuite/23_containers/deque/invalidation/2.cc: Same. * testsuite/23_containers/deque/invalidation/3.cc: Same. * testsuite/23_containers/deque/invalidation/4.cc: Same. * testsuite/23_containers/multiset/invalidation/1.cc: Same. * testsuite/23_containers/multiset/invalidation/2.cc: Same. * testsuite/23_containers/multimap/invalidation/1.cc: Same. * testsuite/23_containers/multimap/invalidation/2.cc: Same. * testsuite/23_containers/bitset/invalidation/1.cc: Same. * testsuite/23_containers/bitset/cons/16020.cc: Same. * testsuite/23_containers/bitset/operations/13838.cc: Same. * testsuite/23_containers/list/invalidation/1.cc: Same. * testsuite/23_containers/list/invalidation/2.cc: Same. * testsuite/23_containers/list/invalidation/3.cc: Same. * testsuite/23_containers/list/invalidation/4.cc: Same. * testsuite/23_containers/set/invalidation/1.cc: Same. * testsuite/23_containers/set/invalidation/2.cc: Same. * testsuite/23_containers/map/invalidation/1.cc: Same. * testsuite/23_containers/map/invalidation/2.cc: Same. * testsuite/23_containers/map/insert/16813.cc: Same. * include/bits/basic_ios.h: Use _GLIBCXX_BEGIN_NAMESPACE(std) and friends. * include/bits/stl_list.h: Same. * include/bits/stl_map.h: Same. * include/bits/stl_algobase.h: Same. * include/bits/localefwd.h: Same. * include/bits/valarray_array.tcc: Same. * include/bits/valarray_after.h: Same. * include/bits/gslice_array.h: Same. * include/bits/stl_queue.h: Same. * include/bits/gslice.h: Same. * include/bits/locale_facets.tcc: Same. * include/bits/locale_classes.h: Same. * include/bits/stl_set.h: Same. * include/bits/locale_facets.h: Same. * include/bits/stl_stack.h: Same. * include/bits/stl_iterator_base_types.h: Same. * include/bits/stl_heap.h: Same. * include/bits/indirect_array.h: Same. * include/bits/atomicity.h: Same. * include/bits/stream_iterator.h: Same. * include/bits/concurrence.h: Same. * include/bits/basic_string.h: Same. * include/bits/stl_multimap.h: Same. * include/bits/stl_pair.h: Same. * include/bits/basic_ios.tcc: Same. * include/bits/stl_raw_storage_iter.h: Same. * include/bits/stl_vector.h: Same. * include/bits/stl_numeric.h: Same. * include/bits/ios_base.h: Same. * include/bits/stl_deque.h: Same. * include/bits/istream.tcc: Same. * include/bits/postypes.h: Same. * include/bits/stl_multiset.h: Same. * include/bits/mask_array.h: Same. * include/bits/stl_uninitialized.h: Same. * include/bits/ostream.tcc: Same. * include/bits/slice_array.h: Same. * include/bits/boost_concept_check.h: Same. * include/bits/sstream.tcc: Same. * include/bits/stl_iterator_base_funcs.h: Same. * include/bits/char_traits.h: Same. * include/bits/stl_algo.h: Same. * include/bits/stringfwd.h: Same. * include/bits/c++config * include/bits/stl_iterator.h: Same. * include/bits/valarray_array.h: Same. * include/bits/stl_tempbuf.h: Same. * include/bits/vector.tcc: Same. * include/bits/deque.tcc: Same. * include/bits/stl_bvector.h: Same. * include/bits/basic_string.tcc: Same. * include/bits/list.tcc: Same. * include/bits/streambuf_iterator.h: Same. * include/bits/valarray_before.h: Same. * include/bits/stl_construct.h: Same. * include/bits/stl_function.h: Same. * include/bits/cpp_type_traits.h: Same. * include/bits/streambuf.tcc: Same. * include/bits/allocator.h: Same. * include/bits/stl_tree.h: Same. * include/bits/fstream.tcc: Same. * include/bits/stl_relops.h: Same. * include/bits/functexcept.h: Same. * include/std/std_valarray.h: Same. * include/std/std_iostream.h: Same. * include/std/std_streambuf.h: Same. * include/std/std_bitset.h: Same. * include/std/std_iosfwd.h: Same. * include/std/std_iomanip.h: Same. * include/std/std_fstream.h: Same. * include/std/std_limits.h: Same. * include/std/std_stdexcept.h: Same. * include/std/std_istream.h: Same. * include/std/std_complex.h: Same. * include/std/std_memory.h: Same. * include/std/std_ostream.h: Same. * include/std/std_sstream.h: Same. * include/c_std/std_csignal.h: Same. * include/c_std/std_cstdlib.h: Same. * include/c_std/std_cstdio.h: Same. * include/c_std/std_cstdarg.h: Same. * include/c_std/std_cctype.h: Same. * include/c_std/std_cmath.h: Same. * include/c_std/std_ctime.h: Same. * include/c_std/std_clocale.h: Same. * include/c_std/std_csetjmp.h: Same. * include/c_std/std_cwchar.h: Same. * include/c_std/std_cstring.h: Same. * include/c_std/std_cstddef.h: Same. * include/c_std/std_cwctype.h: Same. * include/backward/iterator.h: Same. * include/backward/set.h: Same. * include/backward/hashtable.h: Same. * include/backward/fstream.h: Same. * include/backward/tempbuf.h: Same. * include/backward/istream.h: Same. * include/backward/bvector.h: Same. * include/backward/stack.h: Same. * include/backward/rope.h: Same. * include/backward/complex.h: Same. * include/backward/ostream.h: Same. * include/backward/heap.h: Same. * include/backward/iostream.h: Same. * include/backward/function.h: Same. * include/backward/multimap.h: Same. * include/backward/pair.h: Same. * include/backward/stream.h: Same. * include/backward/iomanip.h: Same. * include/backward/strstream * include/backward/slist.h: Same. * include/backward/tree.h: Same. * include/backward/vector.h: Same. * include/backward/deque.h: Same. * include/backward/multiset.h: Same. * include/backward/list.h: Same. * include/backward/map.h: Same. * include/backward/algobase.h: Same. * include/backward/hash_map.h: Same. * include/backward/algo.h: Same. * include/backward/queue.h: Same. * include/backward/streambuf.h: Same. * src/allocator-inst.cc: Same. * src/complex_io.cc: Same. * src/localename.cc: Same. * src/limits.cc: Same. * src/ios_failure.cc: Same. * src/locale-misc-inst.cc: Same. * src/streambuf-inst.cc: Same. * src/misc-inst.cc: Same. * src/concept-inst.cc: Same. * src/ios_locale.cc: Same. * src/pool_allocator.cc: Same. * src/fstream-inst.cc: Same. * src/istream-inst.cc: Same. * src/string-inst.cc: Same. * src/locale_init.cc: Same. * src/ctype.cc: Same. * src/strstream.cc: Same. * src/ostream-inst.cc: Same. * src/functexcept.cc: Same. * src/streambuf.cc: Same. * src/sstream-inst.cc: Same. * src/ios.cc: Same. * src/valarray-inst.cc: Same. * src/locale.cc: Same. * src/tree.cc: Same. * src/stdexcept.cc: Same. * src/istream.cc: Same. * src/compatibility.cc: Same. * src/locale-inst.cc: Same. * src/globals_io.cc: Same. * src/list.cc: Same. * src/ios_init.cc: Same. * src/locale_facets.cc: Same. * src/codecvt.cc: Same. * include/tr1/unordered_map: Use _GLIBCXX_BEGIN_NAMESPACE(tr1). * include/tr1/boost_shared_ptr.h: Same. * include/tr1/tuple * include/tr1/hashtable * include/tr1/type_traits_fwd.h: Same. * include/tr1/unordered_set * include/tr1/functional * include/tr1/ref_fwd.h: Same. * include/tr1/utility * include/tr1/type_traits * include/tr1/array * include/ext/hashtable.h: Use _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx). * include/ext/typelist.h: Same. * include/ext/hash_map: Same. * include/ext/rc_string_base.h: Same. * include/ext/pool_allocator.h: Same. * include/ext/iterator: Same. * include/ext/rb_tree: Same. * include/ext/numeric: Same. * include/ext/vstring.tcc: Same. * include/ext/sso_string_base.h: Same. * include/ext/stdio_filebuf.h: Same. * include/ext/algorithm: Same. * include/ext/codecvt_specializations.h: Same. * include/ext/new_allocator.h: Same. * include/ext/array_allocator.h: Same. * include/ext/vstring_util.h: Same. * include/ext/vstring_fwd.h: Same. * include/ext/mt_allocator.h: Same. * include/ext/debug_allocator.h: Same. * include/ext/slist: Same. * include/ext/stdio_sync_filebuf.h: Same. * include/ext/hash_fun.h: Same. * include/ext/malloc_allocator.h: Same. * include/ext/functional: Same. * include/ext/bitmap_allocator.h: Same. * include/ext/pod_char_traits.h: Same. * include/ext/vstring.h: Same. * include/ext/ropeimpl.h: Same. * include/ext/hash_set: Same. * include/ext/memory: Same. * include/ext/rope: Same. * include/bits/boost_concept_check.h: Same. * include/bits/stl_iterator.h: Same. * include/bits/char_traits.h: Same. * include/bits/cpp_type_traits.h: Same. * include/bits/concurrence.h: Same. * include/bits/atomicity.h: Same. * config/locale/gnu/numeric_members.cc: Same. * config/locale/gnu/collate_members.cc: Same. * config/locale/gnu/ctype_members.cc: Same. * config/locale/gnu/c_locale.cc: Same. * config/locale/gnu/codecvt_members.cc: Same. * config/locale/gnu/messages_members.cc: Same. * config/locale/gnu/c_locale.h: Same. * config/locale/gnu/monetary_members.cc: Same. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.h: Same. * config/locale/generic/numeric_members.cc: Same. * config/locale/generic/collate_members.cc: Same. * config/locale/generic/ctype_members.cc: Same. * config/locale/generic/c_locale.cc: Same. * config/locale/generic/codecvt_members.cc: Same. * config/locale/generic/messages_members.cc: Same. * config/locale/generic/c_locale.h: Same. * config/locale/generic/monetary_members.cc: Same. * config/locale/generic/time_members.cc: Same. * config/os/aix/atomicity.h: Same. * config/os/irix/atomicity.h: Same. * config/cpu/powerpc/atomicity.h: Same. * config/cpu/cris/atomicity.h: Same. * config/cpu/ia64/atomicity.h: Same. * config/cpu/alpha/atomicity.h: Same. * config/cpu/m68k/atomicity.h: Same. * config/cpu/hppa/atomicity.h: Same. * config/cpu/mips/atomicity.h: Same. * config/cpu/sparc/atomicity.h: Same. * config/cpu/i386/atomicity.h: Same. * config/cpu/i486/atomicity.h: Same. * config/cpu/sh/atomicity.h: Same. * config/cpu/generic/atomicity.h: Same. * config/cpu/s390/atomicity.h: Same. * config/io/c_io_stdio.h: Same. * config/io/basic_file_stdio.cc: Same. * config/io/basic_file_stdio.h: Same. * src/misc-inst.cc: Same. * src/concept-inst.cc: Same. * src/ext-inst.cc: Same. * src/string-inst.cc: Same. * src/pool_allocator.cc: Same. * src/bitmap_allocator.cc: Same. * src/mt_allocator.cc: Same. * libsupc++/exception: Same. * libsupc++/vterminate.cc: Same. * testsuite/ext/hash_map/1.cc: Explicitly qualify __gnu_cxx::hash_map. * testsuite/ext/hash_map/14648.cc: Same. * libsupc++/eh_alloc.cc: Correct comment line spacing. From-SVN: r108775
2005-12-19 01:56:05 +01:00
_GLIBCXX_BEGIN_NAMESPACE(std)
// Construct and return valid pattern consisting of some combination of:
// space none symbol sign value
money_base::pattern
money_base::_S_construct_pattern(char __precedes, char __space, char __posn)
{
pattern __ret;
// This insanely complicated routine attempts to construct a valid
// pattern for use with monyepunct. A couple of invariants:
// if (__precedes) symbol -> value
// else value -> symbol
// if (__space) space
// else none
// none == never first
// space never first or last
// Any elegant implementations of this are welcome.
switch (__posn)
{
case 0:
case 1:
// 1 The sign precedes the value and symbol.
__ret.field[0] = sign;
if (__space)
{
// Pattern starts with sign.
if (__precedes)
{
__ret.field[1] = symbol;
__ret.field[3] = value;
}
else
{
__ret.field[1] = value;
__ret.field[3] = symbol;
}
__ret.field[2] = space;
}
else
{
// Pattern starts with sign and ends with none.
if (__precedes)
{
__ret.field[1] = symbol;
__ret.field[2] = value;
}
else
{
__ret.field[1] = value;
__ret.field[2] = symbol;
}
__ret.field[3] = none;
}
break;
case 2:
// 2 The sign follows the value and symbol.
if (__space)
{
// Pattern either ends with sign.
if (__precedes)
{
__ret.field[0] = symbol;
__ret.field[2] = value;
}
else
{
__ret.field[0] = value;
__ret.field[2] = symbol;
}
__ret.field[1] = space;
__ret.field[3] = sign;
}
else
{
// Pattern ends with sign then none.
if (__precedes)
{
__ret.field[0] = symbol;
__ret.field[1] = value;
}
else
{
__ret.field[0] = value;
__ret.field[1] = symbol;
}
__ret.field[2] = sign;
__ret.field[3] = none;
}
break;
case 3:
// 3 The sign immediately precedes the symbol.
if (__precedes)
{
__ret.field[0] = sign;
__ret.field[1] = symbol;
if (__space)
{
__ret.field[2] = space;
__ret.field[3] = value;
}
else
{
__ret.field[2] = value;
__ret.field[3] = none;
}
}
else
{
__ret.field[0] = value;
if (__space)
{
__ret.field[1] = space;
__ret.field[2] = sign;
__ret.field[3] = symbol;
}
else
{
__ret.field[1] = sign;
__ret.field[2] = symbol;
__ret.field[3] = none;
}
}
break;
case 4:
// 4 The sign immediately follows the symbol.
if (__precedes)
{
__ret.field[0] = symbol;
__ret.field[1] = sign;
if (__space)
{
__ret.field[2] = space;
__ret.field[3] = value;
}
else
{
__ret.field[2] = value;
__ret.field[3] = none;
}
}
else
{
__ret.field[0] = value;
if (__space)
{
__ret.field[1] = space;
__ret.field[2] = symbol;
__ret.field[3] = sign;
}
else
{
__ret.field[1] = symbol;
__ret.field[2] = sign;
__ret.field[3] = none;
}
}
break;
default:
__ret = pattern();
}
return __ret;
}
template<>
void
moneypunct<char, true>::_M_initialize_moneypunct(__c_locale __cloc,
const char*)
{
if (!_M_data)
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data = new __moneypunct_cache<char, true>;
localefwd.h (class locale): Add static member _S_num_extra_categories... 2002-10-08 Paolo Carlini <pcarlini@unitus.it> Benjamin Kosnik <bkoz@redhat.com> * include/bits/localefwd.h (class locale): Add static member _S_num_extra_categories, encoding the number of additional categories. Change _S_num_categories to _S_categories_size. (class locale::_Impl): Add _M_c_cats. (class locale::_Impl::_M_names): Change to array of chars. (class locale::_Impl::_M_check_same_name): Use _S_extra_categories_size, tweak. (locale::locale(const locale&, _Facet*)): Ditto. * src/locale.cc (locale::locale(const char* )): Rewrite to deal with the environment in a POSIX-compliant way while being thread safe. (locale::name()): Update to output POSIX environment strings. * src/localename.cc (locale::_Impl::_Impl(const _Impl&, size_t): Use _S_categories_size_*, tweak. (locale::_Impl::_Impl(facet**, size_t, bool)): Ditto. (locale::_Impl::_Impl(const char*, size_t)): Name each category individually. (locale::_Impl::_M_replace_categories): Use strcpy. * include/bits/locale_facets.h (numpunct::_M_initialize_numpunct): Change default argument to NULL from _S_c_locale. (timepunct::_M_initialize_timepunct): Same. _S_c_locale cleanups. * src/codecvt.c: _S_c_locale simplification. * src/ctype.c: Same. * src/globals.cc: Add fake_name. * src/locale-inst.cc: Remove extra includes. * src/locale.cc: Remove extra includes. Add _S_extra_categories_size definition. Correct "C" initialization. (locale::facet::facet): Don't initialize _S_c_locale. (locale::facet::_M_remove_reference): Adjust. * src/localename: Use facet_vec, facet_name. (locale::_Impl::_Impl(facet** __f, size_t __refs, bool)): Set facet ref counts to one. Initialize _S_c_locale. (locale::_Impl::_M_install_facet(id*, facet*)): Adjust facet ref counts when installing unilaterally. * config/locale/generic/c_locale.cc: Add _S_categories definition. * config/locale/generic/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro. * config/locale/generic/time_members.cc: _S_c_locale cleanup. * config/locale/gnu/c_locale.cc: Add _S_categories definition. (_S_destroy_c_locale): Move checks against _S_c_locale here. * config/locale/gnu/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro. * config/locale/gnu/ctype_members.cc: Simplify _S_destroy_c_locale calls, _S_c_locale usage. * config/locale/gnu/monetary_members.cc: Same, tweaks. * config/locale/gnu/monetary_members.cc: Same. * config/locale/gnu/time_members.cc: Same. * config/os/gnu-linux/ctype_noninline.h: Use locale::classic(). * docs/html/22_locale/locale.html: Add bits about global locales and "C" setlocale. * testsuite/22_locale/facet.cc (test02): Add. * testsuite/22_locale/static_members.cc (test02): Add. * testsuite/22_locale/ctor_copy_dtor.cc (test04): Add. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r57964
2002-10-09 01:32:23 +02:00
if (!__cloc)
{
// "C" locale
_M_data->_M_decimal_point = '.';
_M_data->_M_thousands_sep = ',';
_M_data->_M_grouping = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_grouping_size = 0;
_M_data->_M_curr_symbol = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_curr_symbol_size = 0;
_M_data->_M_positive_sign = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_positive_sign_size = 0;
_M_data->_M_negative_sign = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_negative_sign_size = 0;
_M_data->_M_frac_digits = 0;
_M_data->_M_pos_format = money_base::_S_default_pattern;
_M_data->_M_neg_format = money_base::_S_default_pattern;
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
for (size_t __i = 0; __i < money_base::_S_end; ++__i)
_M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
}
else
{
// Named locale.
_M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
__cloc));
_M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
__cloc));
_M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
_M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
if (!__nposn)
_M_data->_M_negative_sign = "()";
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
else
_M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
__cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
// _Intl == true
_M_data->_M_curr_symbol = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
_M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
__cloc));
char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
_M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
__pposn);
char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
_M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
__nposn);
}
}
template<>
void
moneypunct<char, false>::_M_initialize_moneypunct(__c_locale __cloc,
const char*)
{
if (!_M_data)
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data = new __moneypunct_cache<char, false>;
localefwd.h (class locale): Add static member _S_num_extra_categories... 2002-10-08 Paolo Carlini <pcarlini@unitus.it> Benjamin Kosnik <bkoz@redhat.com> * include/bits/localefwd.h (class locale): Add static member _S_num_extra_categories, encoding the number of additional categories. Change _S_num_categories to _S_categories_size. (class locale::_Impl): Add _M_c_cats. (class locale::_Impl::_M_names): Change to array of chars. (class locale::_Impl::_M_check_same_name): Use _S_extra_categories_size, tweak. (locale::locale(const locale&, _Facet*)): Ditto. * src/locale.cc (locale::locale(const char* )): Rewrite to deal with the environment in a POSIX-compliant way while being thread safe. (locale::name()): Update to output POSIX environment strings. * src/localename.cc (locale::_Impl::_Impl(const _Impl&, size_t): Use _S_categories_size_*, tweak. (locale::_Impl::_Impl(facet**, size_t, bool)): Ditto. (locale::_Impl::_Impl(const char*, size_t)): Name each category individually. (locale::_Impl::_M_replace_categories): Use strcpy. * include/bits/locale_facets.h (numpunct::_M_initialize_numpunct): Change default argument to NULL from _S_c_locale. (timepunct::_M_initialize_timepunct): Same. _S_c_locale cleanups. * src/codecvt.c: _S_c_locale simplification. * src/ctype.c: Same. * src/globals.cc: Add fake_name. * src/locale-inst.cc: Remove extra includes. * src/locale.cc: Remove extra includes. Add _S_extra_categories_size definition. Correct "C" initialization. (locale::facet::facet): Don't initialize _S_c_locale. (locale::facet::_M_remove_reference): Adjust. * src/localename: Use facet_vec, facet_name. (locale::_Impl::_Impl(facet** __f, size_t __refs, bool)): Set facet ref counts to one. Initialize _S_c_locale. (locale::_Impl::_M_install_facet(id*, facet*)): Adjust facet ref counts when installing unilaterally. * config/locale/generic/c_locale.cc: Add _S_categories definition. * config/locale/generic/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro. * config/locale/generic/time_members.cc: _S_c_locale cleanup. * config/locale/gnu/c_locale.cc: Add _S_categories definition. (_S_destroy_c_locale): Move checks against _S_c_locale here. * config/locale/gnu/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro. * config/locale/gnu/ctype_members.cc: Simplify _S_destroy_c_locale calls, _S_c_locale usage. * config/locale/gnu/monetary_members.cc: Same, tweaks. * config/locale/gnu/monetary_members.cc: Same. * config/locale/gnu/time_members.cc: Same. * config/os/gnu-linux/ctype_noninline.h: Use locale::classic(). * docs/html/22_locale/locale.html: Add bits about global locales and "C" setlocale. * testsuite/22_locale/facet.cc (test02): Add. * testsuite/22_locale/static_members.cc (test02): Add. * testsuite/22_locale/ctor_copy_dtor.cc (test04): Add. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r57964
2002-10-09 01:32:23 +02:00
if (!__cloc)
{
// "C" locale
_M_data->_M_decimal_point = '.';
_M_data->_M_thousands_sep = ',';
_M_data->_M_grouping = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_grouping_size = 0;
_M_data->_M_curr_symbol = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_curr_symbol_size = 0;
_M_data->_M_positive_sign = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_positive_sign_size = 0;
_M_data->_M_negative_sign = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_negative_sign_size = 0;
_M_data->_M_frac_digits = 0;
_M_data->_M_pos_format = money_base::_S_default_pattern;
_M_data->_M_neg_format = money_base::_S_default_pattern;
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
for (size_t __i = 0; __i < money_base::_S_end; ++__i)
_M_data->_M_atoms[__i] = money_base::_S_atoms[__i];
}
else
{
// Named locale.
_M_data->_M_decimal_point = *(__nl_langinfo_l(__MON_DECIMAL_POINT,
__cloc));
_M_data->_M_thousands_sep = *(__nl_langinfo_l(__MON_THOUSANDS_SEP,
__cloc));
_M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
_M_data->_M_positive_sign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_positive_sign_size = strlen(_M_data->_M_positive_sign);
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
if (!__nposn)
_M_data->_M_negative_sign = "()";
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
else
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_negative_sign = __nl_langinfo_l(__NEGATIVE_SIGN,
__cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_negative_sign_size = strlen(_M_data->_M_negative_sign);
// _Intl == false
_M_data->_M_curr_symbol = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_curr_symbol_size = strlen(_M_data->_M_curr_symbol);
_M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
_M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
__pposn);
char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
_M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
__nposn);
}
}
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
template<>
moneypunct<char, true>::~moneypunct()
{ delete _M_data; }
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
template<>
moneypunct<char, false>::~moneypunct()
{ delete _M_data; }
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
#ifdef _GLIBCXX_USE_WCHAR_T
template<>
void
moneypunct<wchar_t, true>::_M_initialize_moneypunct(__c_locale __cloc,
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
const char*)
#else
const char* __name)
#endif
{
if (!_M_data)
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data = new __moneypunct_cache<wchar_t, true>;
localefwd.h (class locale): Add static member _S_num_extra_categories... 2002-10-08 Paolo Carlini <pcarlini@unitus.it> Benjamin Kosnik <bkoz@redhat.com> * include/bits/localefwd.h (class locale): Add static member _S_num_extra_categories, encoding the number of additional categories. Change _S_num_categories to _S_categories_size. (class locale::_Impl): Add _M_c_cats. (class locale::_Impl::_M_names): Change to array of chars. (class locale::_Impl::_M_check_same_name): Use _S_extra_categories_size, tweak. (locale::locale(const locale&, _Facet*)): Ditto. * src/locale.cc (locale::locale(const char* )): Rewrite to deal with the environment in a POSIX-compliant way while being thread safe. (locale::name()): Update to output POSIX environment strings. * src/localename.cc (locale::_Impl::_Impl(const _Impl&, size_t): Use _S_categories_size_*, tweak. (locale::_Impl::_Impl(facet**, size_t, bool)): Ditto. (locale::_Impl::_Impl(const char*, size_t)): Name each category individually. (locale::_Impl::_M_replace_categories): Use strcpy. * include/bits/locale_facets.h (numpunct::_M_initialize_numpunct): Change default argument to NULL from _S_c_locale. (timepunct::_M_initialize_timepunct): Same. _S_c_locale cleanups. * src/codecvt.c: _S_c_locale simplification. * src/ctype.c: Same. * src/globals.cc: Add fake_name. * src/locale-inst.cc: Remove extra includes. * src/locale.cc: Remove extra includes. Add _S_extra_categories_size definition. Correct "C" initialization. (locale::facet::facet): Don't initialize _S_c_locale. (locale::facet::_M_remove_reference): Adjust. * src/localename: Use facet_vec, facet_name. (locale::_Impl::_Impl(facet** __f, size_t __refs, bool)): Set facet ref counts to one. Initialize _S_c_locale. (locale::_Impl::_M_install_facet(id*, facet*)): Adjust facet ref counts when installing unilaterally. * config/locale/generic/c_locale.cc: Add _S_categories definition. * config/locale/generic/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro. * config/locale/generic/time_members.cc: _S_c_locale cleanup. * config/locale/gnu/c_locale.cc: Add _S_categories definition. (_S_destroy_c_locale): Move checks against _S_c_locale here. * config/locale/gnu/c_locale.h: Add _GLIBCPP_NUM_CATEGORIES macro. * config/locale/gnu/ctype_members.cc: Simplify _S_destroy_c_locale calls, _S_c_locale usage. * config/locale/gnu/monetary_members.cc: Same, tweaks. * config/locale/gnu/monetary_members.cc: Same. * config/locale/gnu/time_members.cc: Same. * config/os/gnu-linux/ctype_noninline.h: Use locale::classic(). * docs/html/22_locale/locale.html: Add bits about global locales and "C" setlocale. * testsuite/22_locale/facet.cc (test02): Add. * testsuite/22_locale/static_members.cc (test02): Add. * testsuite/22_locale/ctor_copy_dtor.cc (test04): Add. Co-Authored-By: Benjamin Kosnik <bkoz@redhat.com> From-SVN: r57964
2002-10-09 01:32:23 +02:00
if (!__cloc)
{
// "C" locale
_M_data->_M_decimal_point = L'.';
_M_data->_M_thousands_sep = L',';
_M_data->_M_grouping = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_grouping_size = 0;
_M_data->_M_curr_symbol = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_curr_symbol_size = 0;
_M_data->_M_positive_sign = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_positive_sign_size = 0;
_M_data->_M_negative_sign = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_negative_sign_size = 0;
_M_data->_M_frac_digits = 0;
_M_data->_M_pos_format = money_base::_S_default_pattern;
_M_data->_M_neg_format = money_base::_S_default_pattern;
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
// Use ctype::widen code without the facet...
for (size_t __i = 0; __i < money_base::_S_end; ++__i)
_M_data->_M_atoms[__i] =
static_cast<wchar_t>(money_base::_S_atoms[__i]);
}
else
{
// Named locale.
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
__c_locale __old = __uselocale(__cloc);
#else
// Switch to named locale so that mbsrtowcs will work.
char* __old = strdup(setlocale(LC_ALL, NULL));
setlocale(LC_ALL, __name);
#endif
union { char *__s; wchar_t __w; } __u;
__u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
_M_data->_M_decimal_point = __u.__w;
__u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
_M_data->_M_thousands_sep = __u.__w;
_M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
const char* __ccurr = __nl_langinfo_l(__INT_CURR_SYMBOL, __cloc);
wchar_t* __wcs_ps = 0;
wchar_t* __wcs_ns = 0;
const char __nposn = *(__nl_langinfo_l(__INT_N_SIGN_POSN, __cloc));
try
{
mbstate_t __state;
size_t __len = strlen(__cpossign);
if (__len)
{
++__len;
memset(&__state, 0, sizeof(mbstate_t));
__wcs_ps = new wchar_t[__len];
mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
_M_data->_M_positive_sign = __wcs_ps;
}
else
_M_data->_M_positive_sign = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
__len = strlen(__cnegsign);
if (!__nposn)
_M_data->_M_negative_sign = L"()";
else if (__len)
{
++__len;
memset(&__state, 0, sizeof(mbstate_t));
__wcs_ns = new wchar_t[__len];
mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
_M_data->_M_negative_sign = __wcs_ns;
}
else
_M_data->_M_negative_sign = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
// _Intl == true.
__len = strlen(__ccurr);
if (__len)
{
++__len;
memset(&__state, 0, sizeof(mbstate_t));
wchar_t* __wcs = new wchar_t[__len];
mbsrtowcs(__wcs, &__ccurr, __len, &__state);
_M_data->_M_curr_symbol = __wcs;
}
else
_M_data->_M_curr_symbol = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
}
catch(...)
{
delete _M_data;
_M_data = 0;
delete __wcs_ps;
delete __wcs_ns;
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
__uselocale(__old);
#else
setlocale(LC_ALL, __old);
free(__old);
#endif
__throw_exception_again;
}
_M_data->_M_frac_digits = *(__nl_langinfo_l(__INT_FRAC_DIGITS,
__cloc));
char __pprecedes = *(__nl_langinfo_l(__INT_P_CS_PRECEDES, __cloc));
char __pspace = *(__nl_langinfo_l(__INT_P_SEP_BY_SPACE, __cloc));
char __pposn = *(__nl_langinfo_l(__INT_P_SIGN_POSN, __cloc));
_M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
__pposn);
char __nprecedes = *(__nl_langinfo_l(__INT_N_CS_PRECEDES, __cloc));
char __nspace = *(__nl_langinfo_l(__INT_N_SEP_BY_SPACE, __cloc));
_M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
__nposn);
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
__uselocale(__old);
#else
setlocale(LC_ALL, __old);
free(__old);
#endif
}
}
template<>
void
moneypunct<wchar_t, false>::_M_initialize_moneypunct(__c_locale __cloc,
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
const char*)
#else
const char* __name)
#endif
{
if (!_M_data)
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data = new __moneypunct_cache<wchar_t, false>;
if (!__cloc)
{
// "C" locale
_M_data->_M_decimal_point = L'.';
_M_data->_M_thousands_sep = L',';
_M_data->_M_grouping = "";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_grouping_size = 0;
_M_data->_M_curr_symbol = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_curr_symbol_size = 0;
_M_data->_M_positive_sign = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_positive_sign_size = 0;
_M_data->_M_negative_sign = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_negative_sign_size = 0;
_M_data->_M_frac_digits = 0;
_M_data->_M_pos_format = money_base::_S_default_pattern;
_M_data->_M_neg_format = money_base::_S_default_pattern;
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
// Use ctype::widen code without the facet...
for (size_t __i = 0; __i < money_base::_S_end; ++__i)
_M_data->_M_atoms[__i] =
static_cast<wchar_t>(money_base::_S_atoms[__i]);
}
else
{
// Named locale.
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
__c_locale __old = __uselocale(__cloc);
#else
// Switch to named locale so that mbsrtowcs will work.
char* __old = strdup(setlocale(LC_ALL, NULL));
setlocale(LC_ALL, __name);
#endif
union { char *__s; wchar_t __w; } __u;
__u.__s = __nl_langinfo_l(_NL_MONETARY_DECIMAL_POINT_WC, __cloc);
_M_data->_M_decimal_point = __u.__w;
__u.__s = __nl_langinfo_l(_NL_MONETARY_THOUSANDS_SEP_WC, __cloc);
_M_data->_M_thousands_sep = __u.__w;
_M_data->_M_grouping = __nl_langinfo_l(__MON_GROUPING, __cloc);
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_grouping_size = strlen(_M_data->_M_grouping);
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
const char* __cpossign = __nl_langinfo_l(__POSITIVE_SIGN, __cloc);
const char* __cnegsign = __nl_langinfo_l(__NEGATIVE_SIGN, __cloc);
const char* __ccurr = __nl_langinfo_l(__CURRENCY_SYMBOL, __cloc);
wchar_t* __wcs_ps = 0;
wchar_t* __wcs_ns = 0;
const char __nposn = *(__nl_langinfo_l(__N_SIGN_POSN, __cloc));
try
{
mbstate_t __state;
size_t __len;
__len = strlen(__cpossign);
if (__len)
{
++__len;
memset(&__state, 0, sizeof(mbstate_t));
__wcs_ps = new wchar_t[__len];
mbsrtowcs(__wcs_ps, &__cpossign, __len, &__state);
_M_data->_M_positive_sign = __wcs_ps;
}
else
_M_data->_M_positive_sign = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_positive_sign_size = wcslen(_M_data->_M_positive_sign);
__len = strlen(__cnegsign);
if (!__nposn)
_M_data->_M_negative_sign = L"()";
else if (__len)
{
++__len;
memset(&__state, 0, sizeof(mbstate_t));
__wcs_ns = new wchar_t[__len];
mbsrtowcs(__wcs_ns, &__cnegsign, __len, &__state);
_M_data->_M_negative_sign = __wcs_ns;
}
else
_M_data->_M_negative_sign = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_negative_sign_size = wcslen(_M_data->_M_negative_sign);
// _Intl == true.
__len = strlen(__ccurr);
if (__len)
{
++__len;
memset(&__state, 0, sizeof(mbstate_t));
wchar_t* __wcs = new wchar_t[__len];
mbsrtowcs(__wcs, &__ccurr, __len, &__state);
_M_data->_M_curr_symbol = __wcs;
}
else
_M_data->_M_curr_symbol = L"";
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
_M_data->_M_curr_symbol_size = wcslen(_M_data->_M_curr_symbol);
}
catch(...)
{
delete _M_data;
_M_data = 0;
delete __wcs_ps;
delete __wcs_ns;
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
__uselocale(__old);
#else
setlocale(LC_ALL, __old);
free(__old);
#endif
__throw_exception_again;
}
_M_data->_M_frac_digits = *(__nl_langinfo_l(__FRAC_DIGITS, __cloc));
char __pprecedes = *(__nl_langinfo_l(__P_CS_PRECEDES, __cloc));
char __pspace = *(__nl_langinfo_l(__P_SEP_BY_SPACE, __cloc));
char __pposn = *(__nl_langinfo_l(__P_SIGN_POSN, __cloc));
_M_data->_M_pos_format = _S_construct_pattern(__pprecedes, __pspace,
__pposn);
char __nprecedes = *(__nl_langinfo_l(__N_CS_PRECEDES, __cloc));
char __nspace = *(__nl_langinfo_l(__N_SEP_BY_SPACE, __cloc));
_M_data->_M_neg_format = _S_construct_pattern(__nprecedes, __nspace,
__nposn);
#if __GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ > 2)
__uselocale(__old);
#else
setlocale(LC_ALL, __old);
free(__old);
#endif
}
}
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
template<>
moneypunct<wchar_t, true>::~moneypunct()
{
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
if (_M_data->_M_positive_sign_size)
delete [] _M_data->_M_positive_sign;
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
if (_M_data->_M_negative_sign_size
&& wcscmp(_M_data->_M_negative_sign, L"()") != 0)
delete [] _M_data->_M_negative_sign;
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
if (_M_data->_M_curr_symbol_size)
delete [] _M_data->_M_curr_symbol;
delete _M_data;
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
}
template<>
moneypunct<wchar_t, false>::~moneypunct()
{
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
if (_M_data->_M_positive_sign_size)
delete [] _M_data->_M_positive_sign;
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
if (_M_data->_M_negative_sign_size
&& wcscmp(_M_data->_M_negative_sign, L"()") != 0)
delete [] _M_data->_M_negative_sign;
locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. 2004-02-21 Paolo Carlini <pcarlini@suse.de> * include/bits/locale_facets.h (class money_base): Add { _S_minus, _S_zero, _S_end } enum, _S_atoms. (struct __moneypunct_cache<>): Parameterize on _Intl too; add _M_grouping_size, _M_curr_symbol_size, _M_positive_sign_size, _M_negative_sign_size, _M_atoms; tweak constructor consistently. (__moneypunct_cache<>::~__moneypunct_cache): Update. (__moneypunct_cache<>::_M_cache): Fill the cache. (class moneypunct): Tweak __cache_type typedef. (class money_put): Inherit from money_base too; tweak declaration of _M_insert, now parameterized on _Intl. * include/bits/locale_facets.tcc (struct __use_cache<__moneypunct_cache<_CharT, _Intl> >): New. (money_put<>::_M_insert): Update definition to use the cache; call reserve on __res to avoid multiple reallocations. (money_put<>::do_put(long double), money_put<>::do_put(const string_type&): Update calls of _M_insert. * config/locale/generic/monetary_members.cc (moneypunct<char, true>::_M_initialize_moneypunct, moneypunct<char, false>::_M_initialize_moneypunct, moneypunct<wchar_t, true>::_M_initialize_moneypunct, moneypunct<wchar_t, false>::_M_initialize_moneypunct): Update. * config/locale/gnu/monetary_members.cc: Likewise. * config/locale/gnu/monetary_members.cc (moneypunct<wchar_t, true>::~moneypunct(), moneypunct<wchar_t, false>::~moneypunct()): Likewise. * src/globals_locale.cc: Tweak fake_money_cache_c. * src/locale-inst.cc: Add instantiations for money_put::_M_insert<false> and money_put::_M_insert<true> and __moneypunct_cache<C, false>, __moneypunct_cache<C, true>. * src/locale_facets.cc: Define money_base::_S_atoms. * src/locale_init.cc: Update placement new of __moneypunct_cache<char, false>, __moneypunct_cache<char, true>, __moneypunct_cache<wchar_t, false>, __moneypunct_cache<wchar_T, true>. * config/locale/generic/numeric_members.cc: Clean up. * config/locale/gnu/numeric_members.cc: Likewise. * testsuite/22_locale/money_put/put/char/1.cc: Likewise. * testsuite/22_locale/money_put/put/char/2.cc: Likewise. * testsuite/22_locale/money_put/put/char/3.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/3.cc: Likewise. From-SVN: r78216
2004-02-21 10:26:35 +01:00
if (_M_data->_M_curr_symbol_size)
delete [] _M_data->_M_curr_symbol;
delete _M_data;
re PR libstdc++/4164 (33 Memory Leak when using iostream) 2002-04-15 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/4164 Valgrind fixes. * config/io/basic_file_stdio.cc (__basic_file::~__basic_file): Call close. (__basic_file::close): Call fflush. Correct return if fclose ok. (__basic_file::is_open): Make const. Change __c_file_type to __c_file. * config/io/basic_file_stdio.h: Change __c_file_type to __c_file. (__basic_file::is_open): Make const. * config/io/c_io_stdio.h: Change __c_file_type to __c_file. * include/std/std_fstream.h (filebuf::_M_allocate_file): Remove. (filebuf::_M_unbuf): Add. (filebuf::_M_file): Change to non-pointer. (filebuf::_M_allocate_pback_buffer): Remove. * include/bits/fstream.tcc (filebuf::_M_allocate_file): Remove. (filebuf::_M_allocate_internal_buffer): Use _M_unbuf. Change initialization list for _M_file change. (filebuf::_M_allocate_pback_buffer): Remove. Change _M_file usage to reflect non-pointer data member. * config/locale/generic/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/generic/collate_members.cc: Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/generic/monetary_members.cc: Changeup data types. Add dtors. * config/locale/generic/numeric_members.cc: Add dtors. * config/locale/generic/time_members.cc: Add dtors. * config/locale/gnu/c_locale.cc: Add parameter. * config/locale/gnu/collate_members.cc:Change _M_compare_helper to _M_compare. Change _M_transform_helper to _M_transform. * config/locale/gnu/ctype_members.cc: Better error checking. * config/os/gnu-linux/bits/ctype_noninline.h: Better error checking. * config/locale/gnu/messages_members.cc: Tweak comment. * config/locale/gnu/monetary_members.cc: Change data types. Add dtors. * config/locale/gnu/numeric_members.cc: Add dtors, better error checking. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.cc (locale::facet::_S_create_c_locale): Add parameter. * config/locale/ieee_1003.1-2001/c_locale.h: Correct typedef. * config/locale/ieee_1003.1-2001/codecvt_specializations.h: Remove bogus ctor. * include/bits/locale_facets.h (moneypunct): Use string literals. Don't define dtor. (numpunct): Same. (__timepunct): Same. (locale::_Impl::_M_facets): Change from vector to array. (locale::_Impl::_M_names): Change from array of strings to array of string literals. (locale::facet::_S_create_c_locale): Add parameter. (locale::locale::_S_num_facets): Move to... (locale::_Impl::_M_facets_size): Here. * include/bits/locale_facets.tcc: Fixups for _M_facets, _M_name changes. * include/bits/localefwd.h: (locale::id::_M_id): Add member function. (locale::_Impl::_Impl(facet**, size_t, bool)): Add. (locale::_Impl::_Impl(string, size_t)): Change to (locale::_Impl::_Impl(const char*, size_t)): This. * include/bits/streambuf.tcc (streambuf::_S_pback_size): Define. * include/std/std_streambuf.h (streambuf::_M_pback_size): Change to (streambuf::_S_pback_size): This. * src/globals.cc: Add pre-allocations for "C" facets. * src/locale-inst.cc: Remove vector instantiations. * src/locale.cc: Remove vector include. Fixups for _M_names, _M_facets changes. * src/localename.cc: Same. * include/bits/stl_vector.h: Fix odd formatting. * include/bits/basic_string.tcc: Tweak comment. * libsupc++/new: Make sure parameters are uglified. * libsupc++/typeinfo: Same. * testsuite/22_locale/num_get_members_char.cc: Fixup. * testsuite/22_locale/num_get_members_wchar_t.cc: Same. * testsuite/27_io/filebuf_members.cc: Same. From-SVN: r52345
2002-04-16 02:45:36 +02:00
}
#endif
c++config: Add in revised namespace associations. 2005-12-18 Benjamin Kosnik <bkoz@redhat.com> * include/bits/c++config: Add in revised namespace associations. _GLIBCXX_BEGIN_NAMESPACE: New macro. _GLIBCXX_END_NAMESPACE: Same. _GLIBCXX_BEGIN_NESTED_NAMESPACE: Same. _GLIBCXX_END_NESTED_NAMESPACE: Same. * acinclude.m4 (GLIBCXX_ENABLE_SYMVERS]): Add gnu-versioned-namespace. * configure: Regenerated. * config.h.in: Same. * config/abi/pre/gnu-versioned-namespace.ver: New. * config/abi/pre/gnu.ver (GLIBCXX_3.4.7): Add exports for nested debug mode items. * include/Makefile.am (${host_builddir}/c++config.h): Fill in values for __GLIBCXX__ and _GLIBCXX_NAMESPACE_ASSOCIATION_VERSION. * include/Makefile.in: Regnerate. * src/compatibility.cc: Alias new, nested definitions to exported symbols from non-nested __gnu_debug. * src/Makefile.am: Add in ENABLE_SYMVERS_GNU_NAMESPACE. * src/Makefile.in: Regenerate. * docs/html/debug_mode.html: Revise for nested design. * docs/html/debug.html: Use debug qualifications instead of __gnu_debug. * docs/html/configopts.html: Revise documentation for --enable-symvers. * include/debug/formatter: Simplify namespace qualifications for current, nested-only reality. Add top-level namespace alias, namespace debug, for debug-mode containers. * include/debug/safe_iterator.h: Same. * include/debug/set.h: Same. * include/debug/hash_multimap.h: Same. * include/debug/hash_set.h: Same. * include/debug/bitset * include/debug/safe_sequence.h: Same. * include/debug/multiset.h: Same. * include/debug/safe_base.h: Same. * include/debug/functions.h: Same. * include/debug/safe_iterator.tcc * include/debug/hash_multiset.h: Same. * include/debug/vector * include/debug/map.h: Same. * include/debug/deque * include/debug/hash_map.h: Same. * include/debug/string * include/debug/macros.h: Same. * include/debug/list * include/debug/debug.h: Same. * include/debug/multimap.h: Same. * src/debug.cc: Same. * testsuite/23_containers/vector/invalidation/1.cc: Cleanups. * testsuite/23_containers/vector/invalidation/2.cc: Same. * testsuite/23_containers/vector/invalidation/3.cc: Same. * testsuite/23_containers/vector/invalidation/4.cc: Same. * testsuite/23_containers/deque/invalidation/1.cc: Same. * testsuite/23_containers/deque/invalidation/2.cc: Same. * testsuite/23_containers/deque/invalidation/3.cc: Same. * testsuite/23_containers/deque/invalidation/4.cc: Same. * testsuite/23_containers/multiset/invalidation/1.cc: Same. * testsuite/23_containers/multiset/invalidation/2.cc: Same. * testsuite/23_containers/multimap/invalidation/1.cc: Same. * testsuite/23_containers/multimap/invalidation/2.cc: Same. * testsuite/23_containers/bitset/invalidation/1.cc: Same. * testsuite/23_containers/bitset/cons/16020.cc: Same. * testsuite/23_containers/bitset/operations/13838.cc: Same. * testsuite/23_containers/list/invalidation/1.cc: Same. * testsuite/23_containers/list/invalidation/2.cc: Same. * testsuite/23_containers/list/invalidation/3.cc: Same. * testsuite/23_containers/list/invalidation/4.cc: Same. * testsuite/23_containers/set/invalidation/1.cc: Same. * testsuite/23_containers/set/invalidation/2.cc: Same. * testsuite/23_containers/map/invalidation/1.cc: Same. * testsuite/23_containers/map/invalidation/2.cc: Same. * testsuite/23_containers/map/insert/16813.cc: Same. * include/bits/basic_ios.h: Use _GLIBCXX_BEGIN_NAMESPACE(std) and friends. * include/bits/stl_list.h: Same. * include/bits/stl_map.h: Same. * include/bits/stl_algobase.h: Same. * include/bits/localefwd.h: Same. * include/bits/valarray_array.tcc: Same. * include/bits/valarray_after.h: Same. * include/bits/gslice_array.h: Same. * include/bits/stl_queue.h: Same. * include/bits/gslice.h: Same. * include/bits/locale_facets.tcc: Same. * include/bits/locale_classes.h: Same. * include/bits/stl_set.h: Same. * include/bits/locale_facets.h: Same. * include/bits/stl_stack.h: Same. * include/bits/stl_iterator_base_types.h: Same. * include/bits/stl_heap.h: Same. * include/bits/indirect_array.h: Same. * include/bits/atomicity.h: Same. * include/bits/stream_iterator.h: Same. * include/bits/concurrence.h: Same. * include/bits/basic_string.h: Same. * include/bits/stl_multimap.h: Same. * include/bits/stl_pair.h: Same. * include/bits/basic_ios.tcc: Same. * include/bits/stl_raw_storage_iter.h: Same. * include/bits/stl_vector.h: Same. * include/bits/stl_numeric.h: Same. * include/bits/ios_base.h: Same. * include/bits/stl_deque.h: Same. * include/bits/istream.tcc: Same. * include/bits/postypes.h: Same. * include/bits/stl_multiset.h: Same. * include/bits/mask_array.h: Same. * include/bits/stl_uninitialized.h: Same. * include/bits/ostream.tcc: Same. * include/bits/slice_array.h: Same. * include/bits/boost_concept_check.h: Same. * include/bits/sstream.tcc: Same. * include/bits/stl_iterator_base_funcs.h: Same. * include/bits/char_traits.h: Same. * include/bits/stl_algo.h: Same. * include/bits/stringfwd.h: Same. * include/bits/c++config * include/bits/stl_iterator.h: Same. * include/bits/valarray_array.h: Same. * include/bits/stl_tempbuf.h: Same. * include/bits/vector.tcc: Same. * include/bits/deque.tcc: Same. * include/bits/stl_bvector.h: Same. * include/bits/basic_string.tcc: Same. * include/bits/list.tcc: Same. * include/bits/streambuf_iterator.h: Same. * include/bits/valarray_before.h: Same. * include/bits/stl_construct.h: Same. * include/bits/stl_function.h: Same. * include/bits/cpp_type_traits.h: Same. * include/bits/streambuf.tcc: Same. * include/bits/allocator.h: Same. * include/bits/stl_tree.h: Same. * include/bits/fstream.tcc: Same. * include/bits/stl_relops.h: Same. * include/bits/functexcept.h: Same. * include/std/std_valarray.h: Same. * include/std/std_iostream.h: Same. * include/std/std_streambuf.h: Same. * include/std/std_bitset.h: Same. * include/std/std_iosfwd.h: Same. * include/std/std_iomanip.h: Same. * include/std/std_fstream.h: Same. * include/std/std_limits.h: Same. * include/std/std_stdexcept.h: Same. * include/std/std_istream.h: Same. * include/std/std_complex.h: Same. * include/std/std_memory.h: Same. * include/std/std_ostream.h: Same. * include/std/std_sstream.h: Same. * include/c_std/std_csignal.h: Same. * include/c_std/std_cstdlib.h: Same. * include/c_std/std_cstdio.h: Same. * include/c_std/std_cstdarg.h: Same. * include/c_std/std_cctype.h: Same. * include/c_std/std_cmath.h: Same. * include/c_std/std_ctime.h: Same. * include/c_std/std_clocale.h: Same. * include/c_std/std_csetjmp.h: Same. * include/c_std/std_cwchar.h: Same. * include/c_std/std_cstring.h: Same. * include/c_std/std_cstddef.h: Same. * include/c_std/std_cwctype.h: Same. * include/backward/iterator.h: Same. * include/backward/set.h: Same. * include/backward/hashtable.h: Same. * include/backward/fstream.h: Same. * include/backward/tempbuf.h: Same. * include/backward/istream.h: Same. * include/backward/bvector.h: Same. * include/backward/stack.h: Same. * include/backward/rope.h: Same. * include/backward/complex.h: Same. * include/backward/ostream.h: Same. * include/backward/heap.h: Same. * include/backward/iostream.h: Same. * include/backward/function.h: Same. * include/backward/multimap.h: Same. * include/backward/pair.h: Same. * include/backward/stream.h: Same. * include/backward/iomanip.h: Same. * include/backward/strstream * include/backward/slist.h: Same. * include/backward/tree.h: Same. * include/backward/vector.h: Same. * include/backward/deque.h: Same. * include/backward/multiset.h: Same. * include/backward/list.h: Same. * include/backward/map.h: Same. * include/backward/algobase.h: Same. * include/backward/hash_map.h: Same. * include/backward/algo.h: Same. * include/backward/queue.h: Same. * include/backward/streambuf.h: Same. * src/allocator-inst.cc: Same. * src/complex_io.cc: Same. * src/localename.cc: Same. * src/limits.cc: Same. * src/ios_failure.cc: Same. * src/locale-misc-inst.cc: Same. * src/streambuf-inst.cc: Same. * src/misc-inst.cc: Same. * src/concept-inst.cc: Same. * src/ios_locale.cc: Same. * src/pool_allocator.cc: Same. * src/fstream-inst.cc: Same. * src/istream-inst.cc: Same. * src/string-inst.cc: Same. * src/locale_init.cc: Same. * src/ctype.cc: Same. * src/strstream.cc: Same. * src/ostream-inst.cc: Same. * src/functexcept.cc: Same. * src/streambuf.cc: Same. * src/sstream-inst.cc: Same. * src/ios.cc: Same. * src/valarray-inst.cc: Same. * src/locale.cc: Same. * src/tree.cc: Same. * src/stdexcept.cc: Same. * src/istream.cc: Same. * src/compatibility.cc: Same. * src/locale-inst.cc: Same. * src/globals_io.cc: Same. * src/list.cc: Same. * src/ios_init.cc: Same. * src/locale_facets.cc: Same. * src/codecvt.cc: Same. * include/tr1/unordered_map: Use _GLIBCXX_BEGIN_NAMESPACE(tr1). * include/tr1/boost_shared_ptr.h: Same. * include/tr1/tuple * include/tr1/hashtable * include/tr1/type_traits_fwd.h: Same. * include/tr1/unordered_set * include/tr1/functional * include/tr1/ref_fwd.h: Same. * include/tr1/utility * include/tr1/type_traits * include/tr1/array * include/ext/hashtable.h: Use _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx). * include/ext/typelist.h: Same. * include/ext/hash_map: Same. * include/ext/rc_string_base.h: Same. * include/ext/pool_allocator.h: Same. * include/ext/iterator: Same. * include/ext/rb_tree: Same. * include/ext/numeric: Same. * include/ext/vstring.tcc: Same. * include/ext/sso_string_base.h: Same. * include/ext/stdio_filebuf.h: Same. * include/ext/algorithm: Same. * include/ext/codecvt_specializations.h: Same. * include/ext/new_allocator.h: Same. * include/ext/array_allocator.h: Same. * include/ext/vstring_util.h: Same. * include/ext/vstring_fwd.h: Same. * include/ext/mt_allocator.h: Same. * include/ext/debug_allocator.h: Same. * include/ext/slist: Same. * include/ext/stdio_sync_filebuf.h: Same. * include/ext/hash_fun.h: Same. * include/ext/malloc_allocator.h: Same. * include/ext/functional: Same. * include/ext/bitmap_allocator.h: Same. * include/ext/pod_char_traits.h: Same. * include/ext/vstring.h: Same. * include/ext/ropeimpl.h: Same. * include/ext/hash_set: Same. * include/ext/memory: Same. * include/ext/rope: Same. * include/bits/boost_concept_check.h: Same. * include/bits/stl_iterator.h: Same. * include/bits/char_traits.h: Same. * include/bits/cpp_type_traits.h: Same. * include/bits/concurrence.h: Same. * include/bits/atomicity.h: Same. * config/locale/gnu/numeric_members.cc: Same. * config/locale/gnu/collate_members.cc: Same. * config/locale/gnu/ctype_members.cc: Same. * config/locale/gnu/c_locale.cc: Same. * config/locale/gnu/codecvt_members.cc: Same. * config/locale/gnu/messages_members.cc: Same. * config/locale/gnu/c_locale.h: Same. * config/locale/gnu/monetary_members.cc: Same. * config/locale/gnu/time_members.cc: Same. * config/locale/ieee_1003.1-2001/c_locale.h: Same. * config/locale/generic/numeric_members.cc: Same. * config/locale/generic/collate_members.cc: Same. * config/locale/generic/ctype_members.cc: Same. * config/locale/generic/c_locale.cc: Same. * config/locale/generic/codecvt_members.cc: Same. * config/locale/generic/messages_members.cc: Same. * config/locale/generic/c_locale.h: Same. * config/locale/generic/monetary_members.cc: Same. * config/locale/generic/time_members.cc: Same. * config/os/aix/atomicity.h: Same. * config/os/irix/atomicity.h: Same. * config/cpu/powerpc/atomicity.h: Same. * config/cpu/cris/atomicity.h: Same. * config/cpu/ia64/atomicity.h: Same. * config/cpu/alpha/atomicity.h: Same. * config/cpu/m68k/atomicity.h: Same. * config/cpu/hppa/atomicity.h: Same. * config/cpu/mips/atomicity.h: Same. * config/cpu/sparc/atomicity.h: Same. * config/cpu/i386/atomicity.h: Same. * config/cpu/i486/atomicity.h: Same. * config/cpu/sh/atomicity.h: Same. * config/cpu/generic/atomicity.h: Same. * config/cpu/s390/atomicity.h: Same. * config/io/c_io_stdio.h: Same. * config/io/basic_file_stdio.cc: Same. * config/io/basic_file_stdio.h: Same. * src/misc-inst.cc: Same. * src/concept-inst.cc: Same. * src/ext-inst.cc: Same. * src/string-inst.cc: Same. * src/pool_allocator.cc: Same. * src/bitmap_allocator.cc: Same. * src/mt_allocator.cc: Same. * libsupc++/exception: Same. * libsupc++/vterminate.cc: Same. * testsuite/ext/hash_map/1.cc: Explicitly qualify __gnu_cxx::hash_map. * testsuite/ext/hash_map/14648.cc: Same. * libsupc++/eh_alloc.cc: Correct comment line spacing. From-SVN: r108775
2005-12-19 01:56:05 +01:00
_GLIBCXX_END_NAMESPACE