locale.cc (locale::locale(const char* __name)): Consolidate name setting.
authorBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 15 Sep 2000 22:50:11 +0000 (22:50 +0000)
committerBenjamin Kosnik <bkoz@gcc.gnu.org>
Fri, 15 Sep 2000 22:50:11 +0000 (22:50 +0000)
2000-09-15  Benjamin Kosnik  <bkoz@purist.soma.redhat.com>

* src/locale.cc (locale::locale(const char* __name)): Consolidate
name setting. Add checks for NULL __name pointers. Remove calls to
_S_initialize() as initial locale initialization can either be
assumed, or needs to be made consistent throughout locale
construtors.
(locale::locale(const locale& __other, const char* __name,
category __cat): Add checks for NULL name. Add checks for
assignment to self.
* src/localename.cc (locale::_Impl:: _Impl(const _Impl& __other,
const string& __name, category __cat, size_t __refs)): Set correct
name, has_name values.
* testsuite/22_locale/ctor_copy_dtor.cc (test01): More tests.
* docs/22_locale/locale.html: New file, more unfinished docs...

From-SVN: r36450

libstdc++-v3/docs/22_locale/locale.html [new file with mode: 0644]

diff --git a/libstdc++-v3/docs/22_locale/locale.html b/libstdc++-v3/docs/22_locale/locale.html
new file mode 100644 (file)
index 0000000..dc3510b
--- /dev/null
@@ -0,0 +1,103 @@
+<HTML>
+<HEAD>
+  <H1>
+  Notes on the locale implementation.
+  </H1>
+</HEAD>
+<I>
+prepared by Benjamin Kosnik (bkoz@redhat.com) on September 15, 2000
+</I>
+
+<P>
+<H2>
+1. Abstract
+</H2>
+<P>
+</P>
+
+<P>
+<H2>
+2. What the standard says
+</H2>
+
+
+<P>
+<H2>
+3. Problems with &quot;C&quot; locales : global locales, termination.
+</H2>
+
+<P>
+For the required specialization codecvt&lt;wchar_t, char, mbstate_t&gt; ,
+conversions are made between the internal character set (always UCS4
+on GNU/Linux) and whatever the currently selected locale for the
+LC_CTYPE category implements.
+
+<P>
+<H2>
+4. Design
+</H2>
+The two required specializations are implemented as follows:
+
+
+<P>
+<H2>
+5.  Examples
+</H2>
+
+<pre>
+  typedef ctype<char> cctype;
+</pre>
+
+More information can be found in the following testcases:
+<UL>
+<LI> testsuite/22_locale/ctype_char_members.cc 
+<LI> testsuite/22_locale/ctype_wchar_t_members.cc 
+</UL>
+
+<P>
+<H2>
+6.  Unresolved Issues
+</H2>
+
+<UL>
+       <LI> locale -a displays available locales on linux
+
+       <LI> locale initialization: at what point does _S_classic,
+       _S_global get initialized? Can named locales assume this
+       initialization has already taken place?
+</UL>
+
+
+<P>
+<H2>
+7. Acknowledgments
+</H2>
+
+<P>
+<H2>
+8. Bibliography / Referenced Documents
+</H2>
+
+Drepper, Ulrich, GNU libc (glibc) 2.2 manual. In particular, Chapters &quot;6. Character Set Handling&quot; and &quot;7 Locales and Internationalization&quot;
+
+<P>
+Drepper, Ulrich, Numerous, late-night email correspondence
+
+<P>
+ISO/IEC 14882:1998 Programming languages - C++
+
+<P>
+ISO/IEC 9899:1999 Programming languages - C
+
+<P>
+Langer, Angelika and Klaus Kreft, Standard C++ IOStreams and Locales, Advanced Programmer's Guide and Reference, Addison Wesley Longman, Inc. 2000
+
+<P>
+Stroustrup, Bjarne, Appendix D, The C++ Programming Language, Special Edition, Addison Wesley, Inc. 2000
+
+<P>
+System Interface Definitions, Issue 6 (IEEE Std. 1003.1-200x)
+The Open Group/The Institute of Electrical and Electronics Engineers, Inc.
+http://www.opennc.org/austin/docreg.html
+
+