gcc/libstdc++-v3/testsuite/22_locale/locale/cons/2.cc

214 lines
5.7 KiB
C++
Raw Normal View History

testsuite_hooks.cc: Remove try_named_locale. 2005-05-18 Paolo Carlini <pcarlini@suse.de> * testsuite/testsuite_hooks.cc: Remove try_named_locale. * testsuite/testsuite_hooks.h: Remove try_named_locale. * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): New. * testsuite/lib/dg-options.exp (dg-require-namedlocale): New, uses the above. * testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc: Use dg-require-namedlocale. * testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/in/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/in/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/7.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/8.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/9.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/length/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/length/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/7.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/out/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/out/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/7.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/compare/char/1.cc: Likewise. * testsuite/22_locale/collate/compare/char/2.cc: Likewise. * testsuite/22_locale/collate/compare/char/3.cc: Likewise. * testsuite/22_locale/collate/compare/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/compare/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/1.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/3.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/hash/char/2.cc: Likewise. * testsuite/22_locale/collate/hash/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/hash/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/transform/char/2.cc: Likewise. * testsuite/22_locale/collate/transform/char/3.cc: Likewise. * testsuite/22_locale/collate/transform/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/transform/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/3.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/ctype/cons/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/cons/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/is/char/2.cc: Likewise. * testsuite/22_locale/ctype/is/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/is/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/2.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/narrow/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/3.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/scan/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/scan/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/to/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/to/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/widen/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/widen/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/2.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/3.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/facet/2.cc: Likewise. * testsuite/22_locale/locale/cons/12352.cc: Likewise. * testsuite/22_locale/locale/cons/12438.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise. * testsuite/22_locale/locale/cons/2.cc: Likewise. * testsuite/22_locale/locale/cons/4.cc: Likewise. * testsuite/22_locale/locale/cons/5.cc: Likewise. * testsuite/22_locale/locale/cons/7.cc: Likewise. * testsuite/22_locale/locale/cons/7222-env.cc: Likewise. * testsuite/22_locale/locale/global_locale_objects/14071.cc: Likewise. * testsuite/22_locale/locale/global_locale_objects/2.cc: Likewise. * testsuite/22_locale/messages/members/char/1.cc: Likewise. * testsuite/22_locale/messages/members/char/2.cc: Likewise. * testsuite/22_locale/messages/members/char/3.cc: Likewise. * testsuite/22_locale/messages/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/messages/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/messages_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/money_get/get/char/1.cc: Likewise. * testsuite/22_locale/money_get/get/char/10.cc: Likewise. * testsuite/22_locale/money_get/get/char/11.cc: Likewise. * testsuite/22_locale/money_get/get/char/11528.cc: Likewise. * testsuite/22_locale/money_get/get/char/12.cc: Likewise. * testsuite/22_locale/money_get/get/char/13.cc: Likewise. * testsuite/22_locale/money_get/get/char/15.cc: Likewise. * testsuite/22_locale/money_get/get/char/16.cc: Likewise. * testsuite/22_locale/money_get/get/char/17.cc: Likewise. * testsuite/22_locale/money_get/get/char/18.cc: Likewise. * testsuite/22_locale/money_get/get/char/2.cc: Likewise. * testsuite/22_locale/money_get/get/char/3.cc: Likewise. * testsuite/22_locale/money_get/get/char/4.cc: Likewise. * testsuite/22_locale/money_get/get/char/wrapped_env.cc: Likewise. * testsuite/22_locale/money_get/get/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/10.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/11.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/11528.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/12.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/13.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/15.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/16.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/17.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/18.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.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/char/9780-3.cc: Likewise. * testsuite/22_locale/money_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/money_put/put/char/wrapped_locale.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. * testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/2.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/2.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/num_get/get/char/1.cc: Likewise. * testsuite/22_locale/num_get/get/char/3.cc: Likewise. * testsuite/22_locale/num_get/get/char/5.cc: Likewise. * testsuite/22_locale/num_get/get/char/6.cc: Likewise. * testsuite/22_locale/num_get/get/char/9.cc: Likewise. * testsuite/22_locale/num_get/get/char/wrapped_env.cc: Likewise. * testsuite/22_locale/num_get/get/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/1.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/3.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/5.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/6.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/9.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_put/put/char/1.cc: Likewise. * testsuite/22_locale/num_put/put/char/20909.cc: Likewise. * testsuite/22_locale/num_put/put/char/20914.cc: Likewise. * testsuite/22_locale/num_put/put/char/3.cc: Likewise. * testsuite/22_locale/num_put/put/char/5.cc: Likewise. * testsuite/22_locale/num_put/put/char/9780-2.cc: Likewise. * testsuite/22_locale/num_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/num_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/20909.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/20914.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct/members/char/2.cc: Likewise. * testsuite/22_locale/numpunct/members/char/3.cc: Likewise. * testsuite/22_locale/numpunct/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/numpunct/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/2.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/time_get/date_order/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/1.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_put/put/char/17038.cc: Likewise. * testsuite/22_locale/time_put/put/char/2.cc: Likewise. * testsuite/22_locale/time_put/put/char/3.cc: Likewise. * testsuite/22_locale/time_put/put/char/4.cc: Likewise. * testsuite/22_locale/time_put/put/char/6.cc: Likewise. * testsuite/22_locale/time_put/put/char/7.cc: Likewise. * testsuite/22_locale/time_put/put/char/8.cc: Likewise. * testsuite/22_locale/time_put/put/char/9780-1.cc: Likewise. * testsuite/22_locale/time_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/17038.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/12868.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-1.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-2.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-3.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-3.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-4.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/objects/wchar_t/10.cc: Likewise. * testsuite/27_io/objects/wchar_t/11.cc: Likewise. * testsuite/27_io/objects/wchar_t/12.cc: Likewise. * testsuite/27_io/objects/wchar_t/13.cc: Likewise. * testsuite/27_io/objects/wchar_t/9520.cc: Likewise. * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Likewise. From-SVN: r99889
2005-05-18 10:07:32 +02:00
// { dg-require-namedlocale "" }
// 2000-09-13 Benjamin Kosnik <bkoz@redhat.com>
// Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009
// Free Software Foundation
//
// 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 3, 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 COPYING3. If not see
// <http://www.gnu.org/licenses/>.
// 22.1.1.2 locale constructors and destructors [lib.locale.cons]
[multiple changes] 2000-10-30 Benjamin Kosnik <bkoz@redhat.com> * src/complex_io.cc : Remove ancient defines. * config/os/gnu-linux/bits/os_defines.h: Add defines. * libsupc++/tinfo2.cc: Change to cstddef. * include/bits/codecvt.h: Add include of c++config.h, so that __USE_GNU gets defined. (Important for alpha.) * include/c/bits/std_cwctype.h: Same. * include/c/bits/std_ctime.h: And here. * include/c/bits/std_cstdarg.h: Same. * include/c/bits/std_csignal.h: Same. * include/c/bits/std_csetjmp.h: Same. * include/c/bits/std_clocale.h: Same. * include/c/bits/std_climits.h: Touch. * include/c/bits/std_cfloat.h: Same. * include/c/bits/std_cerrno.h: Same. * include/c/bits/std_cwchar.h: Same. * include/c/bits/std_cassert.h: Same. * include/c/bits/std_cctype.h: Same. * include/c/bits/std_cstddef.h: And here. * include/c/bits/std_cstdlib.h: And here. * include/c/bits/std_cstdio.h: Same. * include/c/bits/std_cstring.h: Add names to namespace std::. * include/bits/c++config (_GNU_SOURCE): Move linux-specific macros from here... (_ISOC99_SOURCE): And this one.... * config/os/gnu-linux/bits/os_defines.h: ...to here. * include/bits/codecvt.h (codecvt<_InternT, _ExternT, __enc_traits>::do_in): Don't cast to const, this is a bug in glibc prior to 2.2. (codecvt<_InternT, _ExternT, __enc_traits>::do_out): Same. * include/c/bits/std_cwchar.h: Add using declarations for mbstate_t. 2000-10-30 Steven King <sxking@uswest.net> * include/bits/codecvt.h: Add cast. * include/c_std/stdio.h: Re-add printf using declaration. * include/c_std/bits/std_cstdio.h: Same * testsuite/22_locale/codecvt_wchar_t_char.cc: Fixup testsuite. * testsuite/22_locale/ctor_copy_dtor.cc: Same. * testsuite/22_locale/facet.cc: Same. * testsuite/22_locale/global_templates.cc: Same. * testsuite/22_locale/operators.cc: Same. * testsuite/22_locale/static_members.cc: Same. * testsuite/26_numerics/c_math.cc: Same. * testsuite/26_numerics/complex_inserters_extractors.cc: Same. * testsuite/27_io/fpos.cc: Same. * testsuite/27_io/istream_extractor_arith.cc: Same. * testsuite/27_io/istream_unformatted.cc: Same. * testsuite/27_io/ostream_inserter_arith.cc: Same. * testsuite/27_io/streambuf.cc: Same. From-SVN: r37149
2000-10-31 02:26:06 +01:00
#include <cwchar> // for mbstate_t
#include <locale>
#include <stdexcept>
#include <typeinfo>
acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): New macro, calls... 2001-08-06 Phil Edwards <pme@sources.redhat.com> * acinclude.m4 (GLIBCPP_CONFIGURE_TESTSUITE): New macro, calls... (GLIBCPP_CHECK_SETRLIMIT): ...this new macro, which also uses... (GLIBCPP_CHECK_SETRLIMIT_ancilliary): ...this new macro. * configure.in (AM_CONFIG_HEADER): Also generate testsuite_hooks.h. Call GLIBCPP_CONFIGURE_TESTSUITE. * aclocal.m4: Regenerate. * config.h.in: Regenerate. * configure: Regenerate. * testsuite/lib/libstdc++-v3-dg.exp: Download new header instead of old header. * testsuite_flags.in: Add build dir's testsuite to INCLUDES. * testsuite/debug_assert.h: Removed; contents merged into... * testsuite/testsuite_hooks.h.in: ...here. New file. * testsuite/17_intro/header_ciso646.cc: No longer include debug_assert.h, include testsuite_hooks.h instead. * testsuite/17_intro/header_fstream.cc: Likewise. * testsuite/17_intro/header_iomanip.cc: Likewise. * testsuite/17_intro/header_ios.cc: Likewise. * testsuite/17_intro/header_iosfwd.cc: Likewise. * testsuite/17_intro/header_iostream.cc: Likewise. * testsuite/17_intro/header_istream.cc: Likewise. * testsuite/17_intro/header_ostream.cc: Likewise. * testsuite/17_intro/header_sstream.cc: Likewise. * testsuite/17_intro/header_streambuf.cc: Likewise. * testsuite/18_support/numeric_limits.cc: Likewise. * testsuite/19_diagnostics/stdexceptions.cc: Likewise. * testsuite/20_util/allocator_members.cc: Likewise. * testsuite/20_util/auto_ptr.cc: Likewise. * testsuite/20_util/pairs.cc: Likewise. * testsuite/21_strings/append.cc: Likewise. * testsuite/21_strings/capacity.cc: Likewise. * testsuite/21_strings/char_traits_requirements.cc: Likewise. * testsuite/21_strings/compare.cc: Likewise. * testsuite/21_strings/ctor_copy_dtor.cc: Likewise. Also set up call to (disabled) __set_testsuite_memlimit() wrapper. * testsuite/21_strings/element_access.cc: Likewise. * testsuite/21_strings/find.cc: Likewise. * testsuite/21_strings/insert.cc: Likewise. Also set up call to (disabled) __set_testsuite_memlimit() wrapper. * testsuite/21_strings/inserters_extractors.cc: Likewise. * testsuite/21_strings/invariants.cc: Likewise. * testsuite/21_strings/nonmember.cc: Likewise. * testsuite/21_strings/operations.cc: Likewise. * testsuite/21_strings/replace.cc: Likewise. * testsuite/21_strings/rfind.cc: Likewise. * testsuite/21_strings/substr.cc: Likewise. * testsuite/22_locale/codecvt_char_char.cc: Likewise. * testsuite/22_locale/codecvt_unicode_char.cc: Likewise. * testsuite/22_locale/codecvt_unicode_wchar_t.cc: Likewise. * testsuite/22_locale/codecvt_wchar_t_char.cc: Likewise. * testsuite/22_locale/ctor_copy_dtor.cc: Likewise. * testsuite/22_locale/ctype_char_members.cc: Likewise. * testsuite/22_locale/ctype_wchar_t_members.cc: Likewise. * testsuite/22_locale/facet.cc: Likewise. * testsuite/22_locale/global_templates.cc: Likewise. * testsuite/22_locale/members.cc: Likewise. * testsuite/22_locale/numpunct_byname.cc: Likewise. * testsuite/22_locale/numpunct_char_members.cc: Likewise. * testsuite/22_locale/operators.cc: Likewise. * testsuite/22_locale/static_members.cc: Likewise. * testsuite/23_containers/bitset_ctor.cc: Likewise. * testsuite/23_containers/bitset_members.cc: Likewise. * testsuite/23_containers/bitset_shift.cc: Likewise. * testsuite/23_containers/vector_capacity.cc: Likewise. * testsuite/23_containers/vector_ctor.cc: Likewise. * testsuite/23_containers/vector_element_access.cc: Likewise. * testsuite/23_containers/vector_modifiers.cc: Likewise. * testsuite/24_iterators/istreambuf_iterator.cc: Likewise. * testsuite/24_iterators/iterator.cc: Likewise. * testsuite/24_iterators/ostreambuf_iterator.cc: Likewise. * testsuite/25_algorithms/binary_search.cc: Likewise. * testsuite/25_algorithms/copy.cc: Likewise. * testsuite/25_algorithms/heap.cc: Likewise. * testsuite/25_algorithms/lower_bound.cc: Likewise. * testsuite/25_algorithms/min_max.cc: Likewise. * testsuite/25_algorithms/partition.cc: Likewise. * testsuite/25_algorithms/rotate.cc: Likewise. * testsuite/25_algorithms/sort.cc: Likewise. * testsuite/26_numerics/c_math.cc: Likewise. * testsuite/26_numerics/complex_inserters_extractors.cc: Likewise. * testsuite/26_numerics/complex_value.cc: Likewise. * testsuite/27_io/filebuf.cc: Likewise. * testsuite/27_io/filebuf_members.cc: Likewise. * testsuite/27_io/filebuf_virtuals.cc: Likewise. * testsuite/27_io/fpos.cc: Likewise. * testsuite/27_io/fstream_members.cc: Likewise. * testsuite/27_io/ifstream_members.cc: Likewise. * testsuite/27_io/ios_base_callbacks.cc: Likewise. * testsuite/27_io/ios_base_members_static.cc: Likewise. * testsuite/27_io/ios_base_storage.cc: Likewise. * testsuite/27_io/ios_ctor.cc: Likewise. * testsuite/27_io/ios_init.cc: Likewise. * testsuite/27_io/ios_manip_basefield.cc: Likewise. * testsuite/27_io/ios_manip_fmtflags.cc: Likewise. * testsuite/27_io/ios_members.cc: Likewise. * testsuite/27_io/istream_extractor_arith.cc: Likewise. * testsuite/27_io/istream_extractor_char.cc: Likewise. * testsuite/27_io/istream_extractor_other.cc: Likewise. * testsuite/27_io/istream_manip.cc: Likewise. * testsuite/27_io/istream_seeks.cc: Likewise. * testsuite/27_io/istream_sentry.cc: Likewise. * testsuite/27_io/istream_unformatted.cc: Likewise. * testsuite/27_io/istringstream_members.cc: Likewise. * testsuite/27_io/narrow_stream_objects.cc: Likewise. * testsuite/27_io/ofstream_members.cc: Likewise. * testsuite/27_io/ostream_inserter_arith.cc: Likewise. * testsuite/27_io/ostream_inserter_char.cc: Likewise. * testsuite/27_io/ostream_inserter_other.cc: Likewise. * testsuite/27_io/ostream_manip.cc: Likewise. * testsuite/27_io/ostream_seeks.cc: Likewise. * testsuite/27_io/ostream_unformatted.cc: Likewise. * testsuite/27_io/ostringstream_members.cc: Likewise. * testsuite/27_io/streambuf.cc: Likewise. * testsuite/27_io/stringbuf.cc: Likewise. * testsuite/27_io/stringbuf_virtuals.cc: Likewise. * testsuite/27_io/stringstream.cc: Likewise. * testsuite/27_io/stringstream_members.cc: Likewise. * testsuite/27_io/wide_stream_objects.cc: Likewise. From-SVN: r44679
2001-08-07 05:38:33 +02:00
#include <testsuite_hooks.h>
typedef std::codecvt<char, char, std::mbstate_t> c_codecvt;
#ifdef _GLIBCXX_USE_WCHAR_T
typedef std::codecvt<wchar_t, char, std::mbstate_t> w_codecvt;
#endif
class gnu_codecvt: public c_codecvt { };
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
class gnu_facet: public std::locale::facet
{
public:
static std::locale::id id;
};
std::locale::id gnu_facet::id;
void test01()
{
using namespace std;
bool test __attribute__((unused)) = true;
// construct a locale object with the C facet
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
const locale loc01 = locale::classic();
// 1
// template <class Facet> locale(const locale& other, Facet* f)
// construct a locale object with the specialized facet.
locale loc02(locale::classic(), new gnu_codecvt);
VERIFY( loc01 != loc02 );
VERIFY( loc02.name() == "*" );
try
{
VERIFY( has_facet<gnu_codecvt>(loc02) );
VERIFY( has_facet<c_codecvt>(loc02) );
#ifdef _GLIBCXX_USE_WCHAR_T
VERIFY( has_facet<w_codecvt>(loc02) );
#endif
}
catch(...)
{ VERIFY( false ); }
try
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
{ use_facet<gnu_facet>(loc02); }
catch(bad_cast& obj)
{ VERIFY( true ); }
catch(...)
{ VERIFY( false ); }
// 2
// locale() throw()
locale loc03;
VERIFY( loc03 == loc01 );
VERIFY( loc03.name() == "C" );
locale loc04 = locale::global(loc02);
locale loc05;
VERIFY( loc05 != loc03 );
VERIFY( loc05 == loc02 );
// 3
// explicit locale(const char* std_name)
testsuite_hooks.cc: Remove try_named_locale. 2005-05-18 Paolo Carlini <pcarlini@suse.de> * testsuite/testsuite_hooks.cc: Remove try_named_locale. * testsuite/testsuite_hooks.h: Remove try_named_locale. * testsuite/lib/libstdc++.exp (check_v3_target_namedlocale): New. * testsuite/lib/dg-options.exp (dg-require-namedlocale): New, uses the above. * testsuite/22_locale/codecvt/always_noconv/char/wrapped_env.cc: Use dg-require-namedlocale. * testsuite/22_locale/codecvt/always_noconv/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/always_noconv/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/encoding/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/encoding/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/encoding/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/in/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/in/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/7.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/8.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/9.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/in/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/length/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/length/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/7.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/length/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/max_length/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/max_length/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/max_length/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/out/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/out/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/7.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/out/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/unshift/char/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/unshift/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/2.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/3.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/4.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/codecvt/unshift/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/compare/char/1.cc: Likewise. * testsuite/22_locale/collate/compare/char/2.cc: Likewise. * testsuite/22_locale/collate/compare/char/3.cc: Likewise. * testsuite/22_locale/collate/compare/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/compare/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/1.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/3.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/compare/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/hash/char/2.cc: Likewise. * testsuite/22_locale/collate/hash/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/hash/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/hash/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/transform/char/2.cc: Likewise. * testsuite/22_locale/collate/transform/char/3.cc: Likewise. * testsuite/22_locale/collate/transform/char/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/transform/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/2.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/3.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/collate/transform/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/collate_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/ctype/cons/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/cons/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/is/char/2.cc: Likewise. * testsuite/22_locale/ctype/is/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/is/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/2.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/is/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/narrow/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/narrow/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/3.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/narrow/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/scan/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/scan/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/scan/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/scan/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/to/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/to/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/to/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/to/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/widen/char/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/widen/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/2.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/3.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/ctype/widen/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/facet/2.cc: Likewise. * testsuite/22_locale/locale/cons/12352.cc: Likewise. * testsuite/22_locale/locale/cons/12438.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-1.cc: Likewise. * testsuite/22_locale/locale/cons/12658_thread-2.cc: Likewise. * testsuite/22_locale/locale/cons/2.cc: Likewise. * testsuite/22_locale/locale/cons/4.cc: Likewise. * testsuite/22_locale/locale/cons/5.cc: Likewise. * testsuite/22_locale/locale/cons/7.cc: Likewise. * testsuite/22_locale/locale/cons/7222-env.cc: Likewise. * testsuite/22_locale/locale/global_locale_objects/14071.cc: Likewise. * testsuite/22_locale/locale/global_locale_objects/2.cc: Likewise. * testsuite/22_locale/messages/members/char/1.cc: Likewise. * testsuite/22_locale/messages/members/char/2.cc: Likewise. * testsuite/22_locale/messages/members/char/3.cc: Likewise. * testsuite/22_locale/messages/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/messages/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/messages_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/money_get/get/char/1.cc: Likewise. * testsuite/22_locale/money_get/get/char/10.cc: Likewise. * testsuite/22_locale/money_get/get/char/11.cc: Likewise. * testsuite/22_locale/money_get/get/char/11528.cc: Likewise. * testsuite/22_locale/money_get/get/char/12.cc: Likewise. * testsuite/22_locale/money_get/get/char/13.cc: Likewise. * testsuite/22_locale/money_get/get/char/15.cc: Likewise. * testsuite/22_locale/money_get/get/char/16.cc: Likewise. * testsuite/22_locale/money_get/get/char/17.cc: Likewise. * testsuite/22_locale/money_get/get/char/18.cc: Likewise. * testsuite/22_locale/money_get/get/char/2.cc: Likewise. * testsuite/22_locale/money_get/get/char/3.cc: Likewise. * testsuite/22_locale/money_get/get/char/4.cc: Likewise. * testsuite/22_locale/money_get/get/char/wrapped_env.cc: Likewise. * testsuite/22_locale/money_get/get/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/1.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/10.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/11.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/11528.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/12.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/13.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/15.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/16.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/17.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/18.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/2.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/3.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/4.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/money_get/get/wchar_t/wrapped_locale.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/char/9780-3.cc: Likewise. * testsuite/22_locale/money_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/money_put/put/char/wrapped_locale.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. * testsuite/22_locale/money_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/money_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/2.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/moneypunct/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/2.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/moneypunct/members/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/moneypunct_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/num_get/get/char/1.cc: Likewise. * testsuite/22_locale/num_get/get/char/3.cc: Likewise. * testsuite/22_locale/num_get/get/char/5.cc: Likewise. * testsuite/22_locale/num_get/get/char/6.cc: Likewise. * testsuite/22_locale/num_get/get/char/9.cc: Likewise. * testsuite/22_locale/num_get/get/char/wrapped_env.cc: Likewise. * testsuite/22_locale/num_get/get/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/1.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/3.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/5.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/6.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/9.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/num_get/get/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_put/put/char/1.cc: Likewise. * testsuite/22_locale/num_put/put/char/20909.cc: Likewise. * testsuite/22_locale/num_put/put/char/20914.cc: Likewise. * testsuite/22_locale/num_put/put/char/3.cc: Likewise. * testsuite/22_locale/num_put/put/char/5.cc: Likewise. * testsuite/22_locale/num_put/put/char/9780-2.cc: Likewise. * testsuite/22_locale/num_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/num_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/1.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/20909.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/20914.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/5.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/num_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct/members/char/2.cc: Likewise. * testsuite/22_locale/numpunct/members/char/3.cc: Likewise. * testsuite/22_locale/numpunct/members/char/wrapped_env.cc: Likewise. * testsuite/22_locale/numpunct/members/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/2.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/numpunct/members/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/numpunct_byname/named_equivalence.cc: Likewise. * testsuite/22_locale/time_get/date_order/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/date_order/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/date_order/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/date_order/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/12750.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_date/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/12750.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/4.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_date/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_monthname/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/1.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_time/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/1.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_time/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_get/get_weekday/wchar_t/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_put/put/char/17038.cc: Likewise. * testsuite/22_locale/time_put/put/char/2.cc: Likewise. * testsuite/22_locale/time_put/put/char/3.cc: Likewise. * testsuite/22_locale/time_put/put/char/4.cc: Likewise. * testsuite/22_locale/time_put/put/char/6.cc: Likewise. * testsuite/22_locale/time_put/put/char/7.cc: Likewise. * testsuite/22_locale/time_put/put/char/8.cc: Likewise. * testsuite/22_locale/time_put/put/char/9780-1.cc: Likewise. * testsuite/22_locale/time_put/put/char/wrapped_env.cc: Likewise. * testsuite/22_locale/time_put/put/char/wrapped_locale.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/17038.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/2.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/3.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/4.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/6.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/7.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/8.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/wrapped_env.cc: Likewise. * testsuite/22_locale/time_put/put/wchar_t/wrapped_locale.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13171-4.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/14975-1.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/12868.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13007.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13171-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/13582-3.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/14975-2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-1.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-2.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-3.cc: Likewise. * testsuite/27_io/basic_filebuf/overflow/wchar_t/11305-4.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/seekoff/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/seekpos/wchar_t/9874.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-1.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-3.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/11389-4.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/3.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/4.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/5.cc: Likewise. * testsuite/27_io/basic_filebuf/underflow/wchar_t/9520.cc: Likewise. * testsuite/27_io/basic_ios/copyfmt/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/char/2.cc: Likewise. * testsuite/27_io/basic_ostream/inserters_arithmetic/wchar_t/2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/13007-1.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-1.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/13007-2.cc: Likewise. * testsuite/27_io/basic_streambuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/char/9322.cc: Likewise. * testsuite/27_io/basic_stringbuf/imbue/wchar_t/9322.cc: Likewise. * testsuite/27_io/objects/wchar_t/10.cc: Likewise. * testsuite/27_io/objects/wchar_t/11.cc: Likewise. * testsuite/27_io/objects/wchar_t/12.cc: Likewise. * testsuite/27_io/objects/wchar_t/13.cc: Likewise. * testsuite/27_io/objects/wchar_t/9520.cc: Likewise. * testsuite/ext/stdio_sync_filebuf/wchar_t/12077.cc: Likewise. From-SVN: r99889
2005-05-18 10:07:32 +02:00
locale loc06 = locale("fr_FR");
VERIFY( loc06 != loc01 );
VERIFY( loc06 != loc02 );
VERIFY( loc06.name() == "fr_FR");
locale loc07("");
VERIFY( loc07 != loc02 );
VERIFY( loc07.name() != "" );
try
{ locale loc08(static_cast<const char*>(NULL)); }
catch(runtime_error& obj)
{ VERIFY( true ); }
catch(...)
{ VERIFY( false ); }
try
{ locale loc08("saturn_SUN*RA"); }
catch(runtime_error& obj)
{ VERIFY( true ); }
catch(...)
{ VERIFY( false ); }
// 4
// locale(const locale& other, const char* std_name, category)
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
{
// This is the same as 5 only use "C" for loc("C")
locale loc09(loc06, "C", locale::ctype);
VERIFY( loc09.name() != "fr_FR" );
VERIFY( loc09.name() != "C" );
VERIFY( loc09.name() != "*" );
VERIFY( loc09 != loc01 );
VERIFY( loc09 != loc06 );
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
locale loc10(loc02, "C", locale::ctype);
VERIFY( loc10.name() == "*" );
VERIFY( loc10 != loc01 ); // As not named, even tho facets same...
VERIFY( loc10 != loc02 );
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
locale loc11(loc01, "C", locale::ctype);
VERIFY( loc11.name() == "C" );
VERIFY( loc11 == loc01 );
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
try
{ locale loc12(loc01, static_cast<const char*>(NULL), locale::ctype); }
catch(runtime_error& obj)
{ VERIFY( true ); }
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
catch(...)
{ VERIFY( false ); }
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
try
{ locale loc13(loc01, "localized by the wu-tang clan", locale::ctype); }
catch(runtime_error& obj)
{ VERIFY( true ); }
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
catch(...)
{ VERIFY( false ); }
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
locale loc14(loc06, "C", locale::none);
VERIFY( loc14.name() == "fr_FR" );
VERIFY( loc14 == loc06 );
locale loc15(loc06, "C", locale::collate );
VERIFY( loc15.name() != "fr_FR" );
VERIFY( loc15.name() != "C" );
VERIFY( loc15.name() != "*" );
VERIFY( loc15.name() != loc09.name() );
VERIFY( loc15 != loc01 );
VERIFY( loc15 != loc06 );
VERIFY( loc15 != loc09 );
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
}
// 5
// locale(const locale& other, const locale& one, category)
{
// This is the exact same as 4, with locale("C") for "C"
locale loc09(loc06, loc01, locale::ctype);
VERIFY( loc09.name() != "fr_FR" );
VERIFY( loc09.name() != "C" );
VERIFY( loc09.name() != "*" );
VERIFY( loc09 != loc01 );
VERIFY( loc09 != loc06 );
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
locale loc10(loc02, loc01, locale::ctype);
VERIFY( loc10.name() == "*" );
VERIFY( loc10 != loc01 ); // As not named, even tho facets same...
VERIFY( loc10 != loc02 );
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
locale loc11(loc01, loc01, locale::ctype);
VERIFY( loc11.name() == "C" );
VERIFY( loc11 == loc01 );
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
try
{ locale loc12(loc01, static_cast<const char*>(NULL), locale::ctype); }
catch(runtime_error& obj)
{ VERIFY( true ); }
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
catch(...)
{ VERIFY( false ); }
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
try
{ locale loc13(loc01, locale("wu-tang clan"), locale::ctype); }
catch(runtime_error& obj)
{ VERIFY( true ); }
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
catch(...)
{ VERIFY( false ); }
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
locale loc14(loc06, loc01, locale::none);
VERIFY( loc14.name() == "fr_FR" );
VERIFY( loc14 == loc06 );
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
locale loc15(loc06, loc01, locale::collate);
VERIFY( loc15.name() != "fr_FR" );
VERIFY( loc15.name() != "C" );
VERIFY( loc15.name() != "*" );
VERIFY( loc15.name() != loc09.name() );
VERIFY( loc15 != loc01 );
VERIFY( loc15 != loc06 );
VERIFY( loc15 != loc09 );
Preliminary named locales. 2001-01-29 Benjamin Kosnik <bkoz@redhat.com> Preliminary named locales. * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): New macro. * aclocal.m4: Regenerate. * configure.in: Use it. * configure: Regerate. * src/Makefile.am (sources): Add c++locale.cc. (build_headers): Add c++locale.h. * src/Makefile.in: Regenerate. * config/c_locale_gnu.h: New file. * config/c_locale_gnu.cc: New file. Non-inline member functions for named locales, gnu-specific. * config/c_locale_generic.h: New file. * config/c_locale_generic.cc: New file. Non-inline member functions for named locales, generic version. * docs/html/configopts.html: Add documentation on new options. * include/bits/locale_facets.h (class _Messages): Remove. (class _Moneypunct): Remove. * src/locale-inst.cc: Remove. * include/bits/locale_facets.h (class _Collate): Remove. * src/locale-inst.cc (std): Remove. * src/locale.cc: And here. * include/bits/localefwd.h (locale::_M_coalesce): New function. Correctly put together multi-name locales. (_Impl(const _Impl&, category, size_t)): Remove. * include/bits/localefwd.h (locale::_Impl): Remove _M_construct_* member functions. (_M_normalize_category_names): Remove. (_M_replace_categories): Fix. * src/localename.cc (locale::_Impl::_M_construct_collate): Remove. (locale::_Impl::_M_construct_ctype): Remove. (locale::_Impl::_M_construct_monetary): Remove. (locale::_Impl::_M_construct_numeric): Remove. (locale::_Impl::_M_construct_time): Remove. (locale::_Impl::_M_construct_messages): Remove. * include/bits/locale_facets.h (_Bad_use_facet): Remove. (_Use_facet_failure_handle): Remove. * src/locale.cc: Remove definitions. * src/locale-inst.cc: And here. * testsuite/22_locale/ctor_copy_dtor.cc (test01): Fixup. Add tests. * src/localename.cc (locale::facet::_S_create_c_locale): Properly create and error-check underlying locale object. (locale::facet::_S_destroy_c_locale): Add, take care of properly tearing down underlying locale object. * include/bits/localefwd.h (locale::facet): Declare. * testsuite/22_locale/members.cc: Don't test "fr_FR" locale for correctness, as glibc apparently has incorrect info in it. Test with it when it works again..... * include/bits/localefwd.h (locale::_Impl::__vec_string): Remove. Number of categories is fixed at six, so just simplify and make this an array of strings. (locale::_Impl::_M_has_name): Remove. (locale::_Impl::_M_name): Remove. (locale::_Impl::_M_category_names): Turns into... (locale::_Impl::_M_names): ...this. (locale::_Impl::_M_has_same_name()): New function. * src/localename.cc (locale::_Impl::~_Impl()): Remove here. (locale::_Impl::_Impl(size_t __refs, string __str)): Simplify signature. * src/locale.cc (locale::name()): Construct mangled name accurately reflecting combined locale categories. * src/locale.cc (locale::classic()): Don't initialize here. * src/localename.cc (locale::_Impl::_Impl(size_t __num, size_t __refs, bool __has_name, string __str): Do it here. * include/bits/localefwd.h: _S_categories_num to _S_num_categories. _S_facets_num to _S_num_facets. (locale::id::id()): Explicitly set _M_index to zero. * src/locale.cc: Same. * src/locale.cc: (locale::locale(const char*)): Construct named locales uniquely. * src/locale.cc: Remove numpunct_byname ctors. * testsuite/22_locale/numpunct_byname.cc: New file. * testsuite/22_locale/numpunct.cc: New file. * include/bits/localefwd.h (class locale): Change data members to protected, from private. (_Impl::_M_get_c_locale): Add member function. (locale::facet::_M_get_global_impl()): Add member function. * include/bits/locale_facets.h (numpunct::_M_init): Change to take a __c_locale pointer. (numpunct::numpunct( __c_locale*, size_t)): Add additonal ctor for named locales. * testsuite/22_locale/members.cc: New file, test name and combine. * include/bits/locale_facets.h (class numpunct): Remove class _Punct and _Numpunct. Rewrite class numpunct to be correct for named locales. * include/bits/localefwd.h (locale::_Imp::_M_c_locale): Add. * src/localename.cc (_Impl::~_Impl()): Call __frelocale. (_Imp::_Impl(size_t, size_t, bool, string)) Initialize _M_c_locale. * src/locale-inst.cc: Remove _Numpunct, _Punct instantiations. * testsuite/22_locale/numpunct_char_members.cc: New file. From-SVN: r39347
2001-01-30 10:18:51 +01:00
}
}
int main()
{
test01();
return 0;
}