2007-08-06  Martin Sebor  <sebor@roguewave.com>

	* ChangeLog: Updated, keeping original TABs.

2007-07-27 Farid Zaripov <Farid_Zaripov@epam.com>

	* gcc.config [__CYGWIN__]: Added -D_REENTRANT option in
	multithreaded builds. Don't define AS_EXT as .s.
	* atomic.s [__CYGWIN__]: Prepend symbol names by '_'.

2007-07-17  Martin Sebor  <sebor@roguewave.com>

	STDCXX-486
	* time_put.cpp (tzset): Added throw() to the declaration.

2007-07-13  Martin Sebor  <sebor@roguewave.com>

	STDCXX-485
	* locale_body.cpp (_C_manage): Reset the capacity of the locale
	buffer to the capacity of the statically allocated buffer after
	its size shrinks below that level.

2007-07-10 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-508
	* catalog.cpp (catopen): while() loop replaced to for() loop
	with checking for max iterations.

2007-07-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-478
	* locale_eq.cpp (operator==): Removed the assumption that the same
	user-defined facets must be stored at the same index in the array
	in order for two locales in which they are installed to compare
	equal.

2007-07-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-477
	* locale_eq.cpp (operator==): Considered the names of locales when
	all their standard and byname facet masks are the same and all their
	facet pointers are the same.

2007-07-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-395
	* etc/config/src/LIMITS.cpp (_RWSTD_WCHAR_T_MAX, _RWSTD_WCHAR_T_MIN,
	_RWSTD_WCHAR_T_SIZE): Renamed to _RWSTD_WCHAR_MAX, _RWSTD_WCHAR_MIN,
	and _RWSTD_WCHAR_SIZE, respectively, for consistency with the libc
	macros.
	* tests/src/locale.cpp: Same.
	* tests/src/char.cpp: Same.
	* tests/src/printf.cpp: Same.
	* tests/localization/22.locale.codecvt.out.cpp: Same.
	* tests/self/0.printf.cpp: Same.
	* include/limits: Same.
	* include/tr1/cstdint: Same.
	* include/ansi/_cwchar.h: Same.
	* src/wctype.cpp: Same.
	* src/wcodecvt.cpp: Same.
	* util/ctype.cpp: Same.
	* util/charmap.cpp: Same.

2007-07-06  Martin Sebor  <sebor@roguewave.com>

	* ctype_bits.cpp (_RWSTD_NO_V3_LOCALE): Removed unnecessary guards
	and replaces references to _V3_LOCALE with _STD and std, whichever
	is appropriate.
	* time_get.cpp: Same.
	* iso2022.cpp: Same.
	* wctype.cpp: Same.
	* iso2022.h: Same.
	* locale_bits.cpp: Same.
	* locale_eq.cpp: Same.
	* codecvt.cpp: Same.
	* locale_name.cpp: Same.
	* locale_classic.cpp: Same.
	* locale_core.cpp: Same.
	* wcodecvt.cpp: Same.
	* locale_global.cpp: Same.
	* locale_body.h: Same.
	* locale_combine.cpp: Same.

2007-07-06  Martin Sebor  <sebor@roguewave.com>

	* mman.h: Header with declarations of portability helper functions
	for the manipulation of memory mapped files.
	* mman.cpp: Definitions of the said helpers.
	* facet.cpp (__rw_mmap, __rw_unmmap): Moved functions to mman.cpp.

2007-07-05  Martin Sebor  <sebor@roguewave.com>

	* use_facet.h (_RWSTD_DEFINE_FACET_FACTORY): Documented macro
	and "constified" a local variable in its definition.

2007-07-05  Martin Sebor  <sebor@roguewave.com>

	* stdexcept (range_error, domain_error, runtime_error): Declared
	virtual destructors instead of relying on the compiler to generate
	them automatically to avoid generating the class vtable in every
	translation unit that uses each of the classes.
	* range_error.cpp: Defined range_error destructor.
	* domain_error.cpp: Defined domain_error destructor.
	* runtime_error.cpp: Defined runtime_error destructor.

2007-06-28  Martin Sebor  <sebor@roguewave.com>

	STDCXX-461
	* num_put.cpp (__rw_fix_flt): Corrected the formatting of Infinities
	and NaN's when precision exceeds the length of the formatted string.

2007-06-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-457
	* podarray.cc: Updated license statement.
	* podarray.c: Same.
	* version.cpp: Updated copyright.

2007-06-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-457
	* catalog.h: Updated license statement.
	* access.h: Same.
	* use_facet.h: Same.
	* iso2022.h: Same.
	* setlocale.h: Same.
	* version.cpp: Same.
	* iosdata.h: Same.
	* locale_body.h: Same.
	* strtol.h: Same.

2007-06-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-457
	* ti_istream.cpp: Updated license statement.
	* ti_stringbuf.cpp: Same.
	* ti_string.cpp: Same.
	* ti_wmoney_put.cpp: Same.
	* ctype_bits.cpp: Same.
	* ti_ostream.cpp: Same.
	* memory.cpp: Same.
	* ti_wstreambuf.cpp: Same.
	* ti_collate.cpp: Same.
	* ti_insert_dbl.cpp: Same.
	* strtol.cpp: Same.
	* ti_wistream.cpp: Same.
	* ti_wnumpunct.cpp: Same.
	* ti_moneypunct.cpp: Same.
	* ti_wostream.cpp: Same.
	* time_get.cpp: Same.
	* iso2022.cpp: Same.
	* ti_winsert_int.cpp: Same.
	* limits.cpp: Same.
	* ti_numpunct.cpp: Same.
	* ti_wcollate.cpp: Same.
	* ti_wmoney_get.cpp: Same.
	* ti_money_put.cpp: Same.
	* ti_winsert_ptr.cpp: Same.
	* ti_num_put.cpp: Same.
	* ti_streambuf.cpp: Same.
	* ti_ios.cpp: Same.
	* locale_core.cpp: Same.
	* ti_wstring.cpp: Same.
	* typeinfo.cpp: Same.
	* assert.cpp: Same.
	* ti_winsert_dbl.cpp: Same.
	* ti_wtime_put.cpp: Same.
	* ti_wnum_put.cpp: Same.
	* ios_bits.cpp: Same.
	* ti_wios.cpp: Same.
	* rwstderr.cpp: Same.
	* locale_bits.cpp: Same.
	* random.cpp: Same.
	* ti_money_get.cpp: Same.
	* ti_time_put.cpp: Same.
	* ti_wmoneypunct.cpp: Same.
	* locale_eq.cpp: Same.
	* strstream.cpp: Same.
	* version.cpp: Same.
	* ti_wstringbuf.cpp: Same.
	* num_put.cpp: Same.
	* codecvt.cpp: Same.
	* vecbool.cpp: Same.
	* ios.cpp: Same.
	* ti_num_get.cpp: Same.
	* catalog.cpp: Same.
	* ti_wmessages.cpp: Same.
	* locale_name.cpp: Same.
	* locale_classic.cpp: Same.
	* ti_messages.cpp: Same.
	* ti_insert_int.cpp: Same.
	* locale_global.cpp: Same.
	* ti_wtime_get.cpp: Same.
	* ti_wnum_get.cpp: Same.
	* limits_bits.cpp: Same.
	* ti_insert_ptr.cpp: Same.
	* ti_time_get.cpp: Same.
	* locale_combine.cpp: Same.

2007-06-22 Farid Zaripov <Farid_Zaripov@epam.com>

	* _error.h(__rw_free_what_buf): Removed inline in declaration.
	* exception.cpp(__rw_free_what_buf): The same.

2007-06-22 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-454
	* _error.h: Added declaration of the __rw_free_what_buf.
	* exception.cpp (__rw_free_what_buf): Added _RWSTD_EXPORT to prototype.
	Added assertion on __rw_what_refcnt value.
	(_C_assign): If whatstr == __rw_what_buf, just reuse it without
	allocation
	of the new buffer.
	* rwexcept.cpp: Use __rw_free_what_buf() instead of delete[].

2007-06-21 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-293
	* exception.cpp (__rw_throw): Don't delete allocated what string because
	of __rw_throw_proc() takes ownership and must delete what string.

2007-06-21 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-293
	* exception.cpp (__rw_free_what_buf): New function to free buffer,
	allocated by __rw_vfmtwhat().
	Used __rw_free_what_buf() instead of delete[].

2007-06-19  Martin Sebor  <sebor@roguewave.com>

	* punct.cpp (_RWSTD_NO_V3_LOCALE): Removed a dead guard.
	(_RWSTD_SIZE_T): Replaced with size_t throughout.
	Removed the :: scope resolution operator from references
	to C library functions.

2007-06-09  Martin Sebor  <sebor@roguewave.com>

	STDCXX-446
	STDCXX-447
	* complex (pow, operator>>, operator<<): Removed inline definitions.
	* complex.cc (pow, operator>>, operator<<): Defined out-of-line and
	exported.
	* complex.c: #included complex.cc.
	* export.cpp (<complex>, complex.cc): #included.

2007-06-08  Martin Sebor  <sebor@roguewave.com>

	* src/wctype.cpp (do_widen): Explicitly specified template argument
	list to work around HP aCC 3 and 5 bug resulting in Error 331: Illegal
	cast expression; cannot cast expression type '<no type>' to 'wchar_t'.
	See STDCXX-445.

2007-06-07  Martin Sebor  <sebor@roguewave.com>

	* _ctype.h (do_toupper, do_tolower, do_widen, do_narrow): Outlined
	virtual member functions of ctype<wchar_t> since they can almost
	never be inlined anyway.
	* wctype.cpp: Same.

2007-06-06 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-188
	* typeinfo.cpp: use ::_C_name or std::_C_name depending on
	_RWSTD_NO_STD_TYPE_INFO macro.

2007-06-05 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-188
	* typeinfo.cpp: silenced warning: _C_name was declared
	but never referenced

2007-06-01  Martin Sebor  <sebor@roguewave.com>

	STDCXX-432
	* _config.h (_config-eccp.h): Avoided #including when using HP aCC.
	* exception.cpp (stdarg.h): Used _RWSTD_EDG_ECCP to guard against
	inclusion when using EDG eccp based compilers including HP aCC 6.

2007-05-28  Martin Sebor  <sebor@roguewave.com>

	STDCXX-402
	* strtol.cpp (__rw_strtoul, __rw_strtol, __rw_strtoull, __rw_strtoll):
	Asserted preconditions.
	(LLong, ULLong): New convenience typedefs at namespace scope.
	(__rw_strtoull, __rw_strtoll): Corrected off by one errors.

2007-05-15  Martin Sebor  <sebor@roguewave.com>

	STDCXX-417
	* atomic.s (TYPE_DIR): New macro conditionally defined to the .type
	directive for GNU as on ELF targets.

2007-05-15  Martin Sebor  <sebor@roguewave.com>

	STDCXX-416
	* stdexcept (logic_error): Declared dtor.
	* logic_error.cpp: New file.
	(logic_error): Defined class dtor

2007-04-07  Martin Sebor  <sebor@roguewave.com>

	STDCXX-387
	* DAYLIGHT.cpp: New config test to determine whether the system
	supports the XSI POSIX extension daylight.
	* time_put.cpp (daylight): #defined to 0 when _RWSTD_NO_DAYLIGHT
	is #defined.

2007-03-28  Martin Sebor  <sebor@roguewave.com>

	* ctype.cpp (ctype_byname ctor): Asserted a precondition.
	(_RWSTD_NO_V3_LOCALE, _V3_LOCALE): Removed/replaced obsolete macros.

2007-03-07  Martin Sebor  <sebor@roguewave.com>

	STDCXX-349
	* iostore.cpp (_C_copyfmt): Zeroed out a_size array to prevent
	(bogus) gcc warnings about the variable being used uninitialized.

2007-01-04 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* string.cpp (__rw_memchr, __rw_wmemchr): Fixed bug: the function
	returns incorrect result when nbytes == 0 and *src == c

2006-12-11  Martin Sebor  <sebor@roguewave.com>

	STDCXX-309
	* valarray (operator[]): Invoked next_ind() at most once per each
	iteration of the loop.
	* valarray.cpp (next_ind): Returned start() instead of 0 after
	wrapping around.

2006-12-05  Martin Sebor  <sebor@roguewave.com>

	* string.cpp (__rw_memcpy, __rw_memmove, __rw_memchr, __rw_memset,
	__rw_memcmp, __rw_strlen): Defined each helper without depending
	on the corresponding libc function in order to avoid infinite
	recursion.
	(__rw_wmemcpy, __rw_wmemmove, __rw_wmemchr, __rw_wmemset, __rw_wmemcmp,
	__rw_wcslen): Same.

2006-11-29  Martin Sebor  <sebor@roguewave.com>

	* time_put.cpp [MSVC >= 8.0] (__rw_put_time): Used the conforming
	swprintf() rather than the legacy Microsoft one without the size
	argument as suggested by the compiler warning.

2006-11-14  Martin Sebor  <sebor@roguewave.com>

	* memattr.cpp (__rw_memattr): Used msync() instead of the unreliable
	madvise() on IRIX.

2006-10-09  Martin Sebor  <sebor@roguewave.com>

	* wcodecvt.cpp (__rw_libc_do_in): Corrected a typo in conditionally
	compiled code.

2006-10-09 Farid Zaripov <faridz@kyiv.vdiweb.com>

	STDCXX-93
	* time_put.cpp (__rw_get_timepunct): Corrected buffer size in
	wcsftime() calls; _RWSTD_SIZE_MAX changed to size of source
	string in mbstowcs() calls to deal with MSVC 8.0 CRT

2006-10-05  Martin Sebor  <sebor@roguewave.com>

	* time_put.cpp (__rw_get_time_put_data): Added braces around
	the initializer of a local array to silence a gcc warning.

2006-10-04 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* exception.cpp [_MSC_VER]: #undefined _RWSTD_NO_VSNPRINTF after
	#define vsnprintf _vsnprintf

2006-10-03 Farid Zaripov <faridz@kyiv.vdiweb.com>

	Set svn:eol-style property.

2006-09-29 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* _num_put.cc: Updated the licensing header
	* _select.h: The same
	* file.cpp: The same

2006-09-29 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* _num_put.cc (__rw_iter_failed): Removed const to resolve
	ambiguity on MSVC 7.0
	* _select.h [_RWSTD_NO_CLASS_PARTIAL_SPEC]: Added __rw_is_same
	for compilers which not support the partial template specialization
	* file.cpp: Declare fileno() only if it not declared in CRT header,
	but present in libc
	* NEW_THROWS.cpp: Returned 1 if operator new doesn't throws

2006-08-28  Martin Sebor  <sebor@roguewave.com>

	STDCXX-280
	* wcodecvt.cpp (__rw_libc_do_out): Used wcrtomb instead of wcsrtombs
	in order to avoid reading past the end of the source sequence when
	it doesn't contain an embedded NUL.

2006-08-20  Martin Sebor  <sebor@roguewave.com>

	* collate.cpp ("podarray.cc"): Removed #include directive
	to prevent multiple definition errors.
	(__rw_pod_array): Moved explicit instantiation...
	* podarray.h: ...to here.

2006-08-18  Martin Sebor  <sebor@roguewave.com>

	* messages.cpp: Constified locals and sanitized formatting.
	(_RWSTD_NO_V3_LOCALE): Removed dead macro.
	(_V3_LOCALE): Replaced with _STD.

2006-08-18  Martin Sebor  <sebor@roguewave.com>

	* collate.cpp (podarray.cc): #included in order to be able
	to explicitly instantiate __rw_pod_array.

2006-08-14  Martin Sebor  <sebor@roguewave.com>

	* podarray.h: Moved brace closing a namespace to the correct place.

2006-08-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-276
	* podarray.h (__rw_pod_array): Moved member initialization into
	the body of the ctor in order to prevent HP aCC 3.70 ICE.

2006-08-13  Martin Sebor  <sebor@roguewave.com>

	* exception.cpp: Added/modified comments.
	* iostream.cpp: Same.
	* tmpbuf.cpp: Same.
	* facet.cpp: Same. Removed dead macro.
	* setlocale.cpp: Same.

2006-08-13  Martin Sebor  <sebor@roguewave.com>

	STDCXX-274
	* collate.cpp (__rw_pod_array): Explicitly instantiated for Compaq C++
	and other compilers that do not do so automatically when a template
	specialization is used.
	(_RWSTD_NO_V3_LOCALE, _V3_LOCALE): Removed dead macros.
	* podarray.h (__rw_pod_array): Added explicit instantiation directive.
	* ti_podarray.cpp: New file for the explicit instantiation of class
	__rw_pod_array.

2006-06-26  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* include/rw/_mutex.h: Added missed _RWSTD_EXPORT directive.
	* src/exception.cpp: Added missed _RWSTD_EXPORT directive.

2006-06-15  Martin Sebor  <sebor@roguewave.com>

	* atomic-64.s: Updated copyright notice.
	* atomic.s: Same.

2006-06-14  Martin Sebor  <sebor@roguewave.com>

	* collate.cpp (wcstombs): Decorated with dllimport to silence
	MSVC warnings about incompatible DLL linkage.
	* wcodecvt.cpp (wctomb): Same.

2006-06-13  Martin Sebor  <sebor@roguewave.com>

	STDCXX-200
	* _localedef.h (__rw_time_t): Changed function argument types
	to silence Sun C++ 5.8 64-bit conversion/truncation warnings.
	* punct.cpp (__rw_get_numpunct, __rw_get_moneypunct): Explicitly
	cast wide expressions to the (narrower) destination type in order
	to silence Sun C++ 5.8 64-bit truncation warnings.
	* time_put.cpp (__rw_get_timepunct, __rw_get_zone): Same.

2006-06-01  Martin Sebor  <sebor@roguewave.com>

	STDCXX-192
	* atomic.s: Removed .type directives to prevent as errors
	on Mac OS X.

2006-05-12  Martin Sebor  <sebor@roguewave.com>

	* instance.cpp (__nullref): Increased the size of the array to make
	big enough to accommodate std::wstring times two with some extra
	space to spare.

2006-04-20  Martin Sebor  <sebor@roguewave.com>

	* bitset.cpp (__rw_bit_count): Reimplemented to work around
	an uncharacterized MSVC 8.0 codegen bug on EM64T and for
	better efficiency (> 2x speedup on ILP32, likely much greater
	on LP64).

2006-03-28  Martin Sebor  <sebor@roguewave.com>

	* memattr.cpp (__rw_memattr): Checked errno for EFAULT and ENOMEM
	after caling madvise() on Linux to prevent false negatives when
	errno is set to EBADF for mapped address ranges not backed by a
	file.

2006-03-25  Martin Sebor  <sebor@roguewave.com>

	* locale_body.cpp (__rw_cats): Guarded the use of _RWSTD_CAT_5
	and used _RWSTD_CAT_0 in its place when not #defined (e.g., by
	dumb windoze).

2006-03-25  Martin Sebor  <sebor@roguewave.com>

	* _defs.h (_RWSTD_VA_COPY): New helper macro.
	* VA_LIST.cpp(_RWSTD_NO_VA_COPY): New macro #defined in response
	to the C99 va_copy() macro not being #defined in <stdarg.h>.
	* exception.cpp (__rw_vfmtwhat): Unconditionally used _RWSTD_VA_COPY().
	* printf.cpp (rw_vasnprintf): Used _RWSTD_VA_COPY.
	(rw_sprintf, rw_snprintf): Provided definitions.

2006-03-25  Martin Sebor  <sebor@roguewave.com>

	* memattr.cpp (__rw_memattr): Used mvalid() instead of madvise()
	on Tru64 UNIX.
	Removed checks for errno values EFAULT and EINVAL for portability
	and simply tested for any non-zero errno value.

2006-03-22  Martin Sebor  <sebor@roguewave.com>

	STDCXX-140
	* locale_body.cpp (_C_is_managed): Avoided an infinite loop
	when _RWSTD_CAT_SEP is #defined to the empty string ("").

2006-03-22  Martin Sebor  <sebor@roguewave.com>

	* locale_body.cpp (size_t): Used instead of _RWSTD_SIZE_T for
	readability.
	(_V3_LOCALE, _RWSTD_NO_V3_LOCALE): Removed dead macro/guard.
	Minor formatting adjustments for consistency.

2006-03-18  Martin Sebor  <sebor@roguewave.com>

	STDCXX-165
	* num_get.cpp (__rw_get_num): Checked _LONG_DOUBLE in addition to __hpux
	before using struct long_double in case the struct is not defined e.g.,
	when using gcc's replacement <stdlib.h> on HP-UX.

2006-03-17  Martin Sebor  <sebor@roguewave.com>

	* exception.cpp (_C_assign): Replaced size_t (~0) with SIZE_MAX
	to avoid HP aCC remark 4237.
	(operator=): Avoided the use of a comma expression in the return
	statement to prevent the bogus HP aCC remark 4284 (operator= does
	not return reference to *this).

2006-03-17  Martin Sebor  <sebor@roguewave.com>

	* ti_filebuf.cpp (<stdio.h>): Included before <fstream> to get
	the extended member functions of basic_filebuf that take FILE*
	as an argument defined and to prevent unsats from programs that
	do the same thing when extern template is enabled.
	* ti_filebuf.cpp: Ditto.

2006-03-16  Martin Sebor  <sebor@roguewave.com>

	* memattr.cpp (__rw_memattr): Handled EFAULT (set by HP-UX)
	in addition to ENOMEM.

2006-03-09  Martin Sebor  <sebor@roguewave.com>

	* collate.cpp (_RWSTD_MB_MAX): Defined to avoid using MB_LEN_MAX
	in case it's less than 8 (the theoretical maximum for UTF-8) or
	even less than 6 (the real maximum for UTF-8). Noted by HP aCC
	6.07.
	(__rw_get_w_ce_offset, __rw_get_wchar_offset, do_transform): Used
	_RWSTD_MB_MAX.
	(__rw_strnxfrm, __rw_wcsnxfrm): Plugged a potential memory leak
	noted by HP aCC 6.07.

2006-03-06  Martin Sebor  <sebor@roguewave.com>

	* atomic-cxx.S: Changed copyright to the ASF.

2006-03-06  Martin Sebor  <sebor@roguewave.com>

	STDCXX-162
	* _config.h (_RWSTD_NO_STRING_MUTEX): Removed conditional definition.
	* _mutex.h (_RWSTD_ATOMIC_OPS): Corrected spelling and simplified the
	handling of the macro. Handled x86_64 in the same block as IA64.
	* _strref.h (_RWSTD_NO_STRING_MUTEX): Defined in response to
	_RWSTD_ATOMIC_OPS being undefined.
	* atomic.s: Handled __x86_64 (and __x86_64__).
	* i86_64/atomic.s: AMD64/EM64T implementation.

2006-03-03  Martin Sebor  <sebor@roguewave.com>

	* wcodecvt.cpp (wcrtomb): Corrected declaration.

2006-02-02  Martin Sebor  <sebor@roguewave.com>

	* wcodecvt.cpp [_RWSTD_NO_WCRTOMB] (__rw_libc_do_out): Corrected
	the spelling of wctomb() in conditionally compiled code.

Updated.

2006-02-01  Martin Sebor  <sebor@roguewave.com>

	* wcodecvt.cpp (__rw_libc_do_out): Removed the RWSTD_WCRTOMB macro and
	instead explicitly spelled out the code	the macro used to expand to.
	(__rw_libc_do_unshift): Same.
	(__rw_libc_do_in): Same for _RWSTD_MBRTOWC().

2006-02-01  Martin Sebor  <sebor@roguewave.com>

	* wctype.cpp (<stdlib.h>): Included for wctomb.
	(_RWSTD_NO_V3_LOCALE): Removed dead macro.
	(__rw_toupper): Used _STD instead of _V3_LOCALE.
	(__rw_tolower): Same.

2006-01-19  Martin Sebor  <sebor@roguewave.com>

	* ChangeLog: Generated and added.

2006-01-19  Martin Sebor  <sebor@roguewave.com>

	* string.cpp [_RWSTD_NO_MEMCPY] (__rw_memcpy): Corrected logic
	errors in conditionally compiled code.
	[_RWSTD_NO_MEMCHR] (__rw_memchr): Same.
	[_RWSTD_NO_MEMCMP] (__rw_memcmp): Same.
	[_RWSTD_NO_STRLEN] (__rw_strlen): Same(!) 
	[_RWSTD_NO_WMEMCPY] (__rw_wmemcpy): Same.
	[_RWSTD_NO_WMEMCHR] (__rw_wmemchr): Same.
	[_RWSTD_NO_WMEMCMP] (__rw_wmemcmp): Same.
	[_RWSTD_NO_WSTRLEN] (__rw_wcslen): Same.

2006-01-19  Martin Sebor  <sebor@roguewave.com>

	* string.cpp [_RWSTD_NO_MEMCPY] (__rw_memcpy): Explicitly cast void*
	to char* before doing any arithmetic on the value.
	(__rw_memchr): Same.
	(__rw_memset): Same.
	(__rw_memcmp): Same.
	(__rw_memmove): Same. Added a missing return statement.
	[_RWSTD_NO_WMEMMOVE] (__rw_wmemmove): Added a missing return statement.

2006-01-19  Martin Sebor  <sebor@roguewave.com>

	* wcodecvt.cpp [_RWSTD_NO_MBTOWC] (mbtowc): Declared when not
	declared in <stdlib.h> but known to be defined in the libc binary.
	(do_in, do_out, do_length): Guarded references to mbtowc() with
	_RWSTD_NO_MBTOWC.
	[_RWSTD_NO_MBRLEN && _RWSTD_NO_MBLEN] (__rw_libc_mbrlen): Silenced
	an unused variable warning.
	(do_unshift): Removed an unnecessary scope resolution operator
	from a call to mbtowc().

2006-01-16  Martin Sebor  <sebor@roguewave.com>

	STDCXX-104
	* wcodecvt.cpp (__rw_libc_do_out): Used the _RWSTD_WCSLEN() macro
        instead of invoking wcslen() directly.

2006-01-14  Martin Sebor  <sebor@roguewave.com>

	* codecvt.cpp (StateT): Moved convenience typedef from __rw_mbsinit
	to file scope and used it to declare the function's formal argument.

2006-01-14  Martin Sebor  <sebor@roguewave.com>

	* wcodecvt.cpp (StateT): New convenience typedef.
	(__rw_libstd_do_out): Documented the purpose of dead code
	and unreachable warnings.

2006-01-12  Martin Sebor  <sebor@roguewave.com>

	* codecvt.cpp: Removed assumptions about _RWSTD_MBSTATE_T being
	a simple type (not really necessary after r368468 but it doesn't
	hurt to be extra safe).
	* wcodecvt.cpp: Same.

2006-01-12  Martin Sebor  <sebor@roguewave.com>

	STDCXX-108
	* TIMEZONE.cpp: New test to determine whether the POSIX timezone
	variable is declared in <time.h>.
	* time_put.cpp (__rw_get_zone): Changed to return 0 instead of void
	on success (and non-zero on error) and handled _RWSTD_NO_TIMEZONE.
	(__rw_get_time_put_data): Handled __rw_get_zone failure.

2006-01-11  Andrew Black <ablack@roguewave.com>

	STDCXX-103
	* time_put.cpp [_RWSTD_NO_NL_LANGINFO] (<langinfo.h>): Guarded
        against inclusion when the header is detected to be missing at
        configuration time.
        * _defs.h [_RWSTD_NO_WCHAR_H] (_RWSTD_ANSI_C_WCHAR_H): Defined
        to <rw/_defs.h> when the header is absent on a platform.

2006-01-10  Martin Sebor  <sebor@roguewave.com>

	* _mbstate.h (_RWSTD_MBSTATE_T): New macro for std::mbstate_t,
	::mbstate_t, the internal ::__mbstate_t (on Linux and Solaris),
	char* on AIX, char on IRIX, and int for MSVC.
	* iosfwd (_mbstate.h, _RWSTD_MBSTATE_T): Unconditionally included
	and used the macro instead of referring to mbstate_t directly.
	* _codecvt.h: Same.
	* _locale.h: Same.
	* _messages.cc: Same.
	* _traits.h: Same.
	* codecvt.cpp: Same.
	* iso2022.cpp: Same.
	* iso2022.h: Same.
	* wcodecvt.cpp: Same.

2006-01-10  Martin Sebor  <sebor@roguewave.com>

	* string.cpp [_RWSTD_NO_WMEMCHR] (wmemchr): Corrected a typo
	in function name.

2006-01-09  Martin Sebor  <sebor@roguewave.com>

	STDCXX-104
	* collate.cpp (wsccoll, wcsxfrm, wcstombs): Declared when the functions
	are known to be defined in the libc binary but not declared in the libc
	headers.
	(__rw_wcsxfrm): New. Just like wcsxfrm but implemented in terms of
	mbstowcs and strxfrm when wcxfrm is not implemented by the system's
	libc.
	(_RWSTD_WCSXFRM): New macro expands to wcsxfrm or __rw_wcsxfrm.
	(__rw_wcsnxfrm): Used _RWSTD_WCSXFRM.
	[_RWSTD_NO_WCSCOLL] (collate_byname::do_compare): Implemented in terms
	of do_transform when there is no support for wcscoll in libc.

2006-01-09  Martin Sebor  <sebor@roguewave.com>

	STDCXX-106
	* memattr.cpp (__rw_memattr): Used getpagesize(3) instead of sysconf(3)
	when neither _SC_PAGE_SIZE or _SC_PAGESIZE is #defined in <unistd.h>
	(e.g., on BSD UNIX).
	Restored errno to its original value if it got clobbered by one of the
	called functions.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* time_put.cpp (__rw_get_timepunct): Removed unnecessary qualification
	from references to libc functions. Inserted a wide NUL character, not
	just a narrow one, at the beggining of the __rw_time_t structure.
	(__rw_put_time): NUL-terminated format string before passing it to
	strftime and wcsftime.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* locale_body.cpp (__rw_locale): Removed a stray std:: qualification
	from a call to strlen().
	(_C_is_managed): Eliminated a gcc -Wextra warning: operation may be
	undefined.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* string.cpp: New file with defitions of string helpers.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* locale_core.cpp (_C_get_std_facet): Used size_t instead of the
	_RWSTD_SIZE_T macro and explicitly cast the result of an expression
	to the type to silence the asinine HP aCC +DD64 Warning (suggestion)
	887: # Type 'int' is smaller than type 'unsigned long', unwanted
	widening in value may result.

2006-01-05  Martin Sebor  <sebor@roguewave.com>

	* wctype.cpp (wchar.h): Included for wctomb().

2005-12-06  Martin Sebor  <sebor@roguewave.com>

	* mapfile.gcc: Exported additional symbols.

2005-12-05  Martin Sebor  <sebor@roguewave.com>

	* typeinfo.cpp: Corrected preprocessor guards around definitions
	of class bad_typeid member functions.

2005-12-02  Martin Sebor  <sebor@roguewave.com>

	STDCXX-81
	* assert.cpp: On Solaris 8 and beyond, declared the printstack function
	instead of #including <ucontext.h>, the system header in which it is
	declared, in order to avoid having to #define enabling macros (i.e.,
	__EXTENSIONS__) and deal with the breakage when using a strict compiler
	such as EDG eccp with the long long extension (used in some system other
	headers) disabled.

2005-12-02  Martin Sebor  <sebor@roguewave.com>

	STDCXX-73
	* typeinfo: Used guard macros appropriate for each class instead
	of fudging it based on what appears to work in most cases (except
	for MSVC 8).
	* typeinfo.cpp: Same. Also indented preprocessor conditionals for
	readability.

2005-12-01  Martin Sebor  <sebor@roguewave.com>

	* collate.cpp (__rw_strnxfrm): As a workaround for STDCXX-68 and
	STDCXX-69, provided dummy destination buffers instead of passing
	in 0 when calling strxfrm and wcsxfrm with the last argument of
	0 in case the functions are buggy (such as those implemented by
	MSVC) and try to write to the buffer anyway.
	(__rw_wcsnxfrm): Same.

2005-12-01  Martin Sebor  <sebor@roguewave.com>

	STDCXX-80
	* GNUmakefile: Wrote the definition of the MAPFLAGS variable to
	makefile.in. Wrote out the definition of MAPFILE using/relative
	to TOPDIR, and the definition of LIBDIR relative to BUILDDIR.
	* GNUmakefile.lib: Appended MAPFILE to LDFLAGS, after MAPFLAGS.
	* gcc.config: Defined MAPFLAGS on Solaris and defined MAPFILE
	as a relative pathname WRT TOPDIR.
	* mapfile.gcc-3: Renamed...
	* mapfile.gcc: ...to this file (used with gcc 3 and beyond) and
	populated it with exported symbols.

2005-11-30  Martin Sebor  <sebor@roguewave.com>

	STDCXX-76
	* exception.cpp: (uncaught_exception): With MSVC 7 and better, used
	__uncaught_exception() to implement std::uncaught_exception() instead
	of relying on the global symbol.

2005-11-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-64
	* ti_num_get.cpp: Silenced HP aCC warning 933: Null macro argument.
	* ti_num_put.cpp: Same.
	* ti_numpunct.cpp: Same.

2005-09-29  Martin Sebor  <sebor@roguewave.com>

	STDCXX-22
	* _time_put.cc (__rw_put_time): Changed to an ordinary function.
	* time_put.cpp (__rw_put_time): Changed linkage from internal to
	external.

2005-09-28  Martin Sebor  <sebor@roguewave.com>

	STDCXX-43
	* i86/atomic.s (__rw_atomic_add): renamed to __rw_atomic_add32.
	(__rw_atomic_xchg): renamed to __rw_atomic_xchg32.
	* sparc/atomic-64.s: Ditto.
	* _mutex.h: Simplified by factoring out common code from platform
	specific blocks to a single platform-independent block (wherever
	possible).
	(__rw_atomic_add): renamed to __rw_atomic_add32.
	(__rw_atomic_xchg): renamed to __rw_atomic_xchg32.

2005-09-28  Martin Sebor  <sebor@roguewave.com>

	STDCXX-22
	* time_put.cpp (__rw_put_time): Changed from a function template
	and its two specializations to overloads of an ordinary function
	to prevent an SGI MIPSpro 7.41 ICE.

2005-09-28  Martin Sebor  <sebor@roguewave.com>

	* time_put.cpp: Removed unnecessary scope resolution operators from
	global names.
	(__rw_put_time): Renamed the 6-argument overloads taking a character
	pointer as the last argument to __rw_fmt_time in order to distinguish
	them from the 12-argument function template and its specializations.

2005-09-19  Martin Sebor  <sebor@roguewave.com>

	* atomic.s: Included the correct IA64 implementation files, along
	the lines of rev 230382 (inadvertently reverted in rev 290311).

2005-09-19  Martin Sebor  <sebor@roguewave.com>

	* atomic-ia64-32.s: Renamed...
	* ia64/atomic.s: ...to this.

2005-09-19  Martin Sebor  <sebor@roguewave.com>

	* ia64/atomic.s: Renamed...
	* ia64/atomic-64.s: ...to this for consistency with the other
	assembly files.

2005-09-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-14 (part 2)
	* atomic.S: Renamed...
	* atomic-cxx.S: ...to this.

2005-09-19  Martin Sebor  <sebor@roguewave.com>

	* atomic-64.s: Changed the name of the included file to correspond
	to its new location (see rev 290311).

2005-09-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-14 (part 1)
	* src/atomic-i86.s: Renamed to...
	* src/i86/atomic.s: ...this.
	* src/atomic-ia64.s: Renamed to...
	* src/ia64/atomic.s: ...this.
	* src/atomic-pa2.s: Renamed to...
	* src/parisc/atomic.s:  ...this.
	* src/atomic-pa2-64.s: Renamed to...
	* src/parisc/atomic-64.s: ...this.
	* src/atomic-sparc.s: Renamed to...
	* src/sparc/atomic.s: ...this.
	* src/atomic-sparc64.s Renamed to...
	* src/sparc/atomic-64.s: ...this.
	* src/atomic.s: Changed the names of included files according
	to the above.
	* GNUmakefile: Introduced the AS_EXT variable and set it to.S by
	default (unless already defined in the .config file).
	* makefile.common: Replaced platform-specific hackery with a more
	general handling of assembly files.
	* makefile.rules: Introduced the AS_EXT variable into the %.o: %.s
	suffix rule and guarded the whole thing against expanding when AS_EXT
	is not defined or valid.
	* acc.config: Defined AS_EXT to .s.
	* mipspro.config: Same.
	* vacpp.config: Defined AS_EXT to an invalid value on AIX to prevent
	the assembly of .{S,s} files (Linux will use the default extension
	defined in GNUmakefile).
	* eccp.config: Defined AS_EXT to an invalid value to disable the
	processing of assembly files until a solution to invoke the system
	assembler is implemented.

2005-09-15  Martin Sebor  <sebor@roguewave.com>

	STDCXX-21
	* wcodecvt.cpp (__rw_libstd_do_out): Converted each character
	to unsigned long before comparing its value against the surrogate
	pair ranges in order to silence gcc warning on Cygwin (where
	sizeof(wchar_t) == 2): comparison is always true due to limited
	range of data type.

2005-09-15  Martin Sebor  <sebor@roguewave.com>

	STDCXX-19
	* memattr.cpp: #defined _SC_PAGE_SIZE to _SC_PAGESIZE when the former
	is not #defined (such as Cygwin).

	STDCXX-20
	* memattr.cpp: #defined _WIN32 when __CYGWIN__ is #defined to take
	advantage of the Windows Memory Management API and to work aound
	the lack of madvise().

2005-08-04  Nicole  Willson  <willson@roguewave.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-11:
	* include/rw/_mutex.h (__rw_atomic_preincrement,
	__rw_atomic_predecrement, __rw_atomic_exhange): Added
	long long overloads for 32-bit IA64.
	* src/atomic.s: Conditionally #included atomic-ia64-32.s.
	* src/atomic-ia64-32.s: New. Same as atomic-ia64.s except
	for 32-bit mode.

2005-07-26  Martin Sebor  <sebor@roguewave.com>

	Set the svn:keywords property and enabled the expansion of the Id
	keyword.

2005-07-19  Martin Sebor  <sebor@roguewave.com>

	Initial import of the Rogue Wave C++ Standard library 4.1.2.
