2007-10-16  Martin Sebor  <sebor@roguewave.com>

	* ChangeLog: Generated a single per-project ChangeLog.
	* examples/ChangeLog: Deleted. Superseded by the above.
	* include/ChangeLog: Likewise.
	* src/ChangeLog: Likewise.
	* util/ChangeLog: Likewise.
	* tests/ChangeLog: Likewise.

2007-10-16  Martin Sebor  <sebor@roguewave.com>

	Merged a partial fix for STDCXX-600 from branches/4.2.0.
	* include/exception (exception): Partially reverted fix for STDCXX-262
	committed in rev 583667 due to the binary incompatibility of the change
	both with stdcxx 4.1.x as well as with gcc's libsupc++.

2007-10-16  Martin Sebor  <sebor@roguewave.com>

	Merged a (mostly) binary compatible fix for STDCXX-509 from
	branches/4.2.0:
	* inlcude/limits [_RWSTD_NO_OBJECT_MANGLING] (__rw_flt_denorm_min,
	__rw_flt_infinity, __rw_flt_qNaN, __rw_flt_sNaN, __rw_dbl_denorm_min,
	__rw_dbl_infinity, __rw_dbl_qNaN, __rw_dbl_sNaN, __rw_ldbl_denorm_min,
	__rw_ldbl_infinity, __rw_ldbl_qNaN, __rw_ldbl_sNaN): Declared with C++
	linkage when the config macro is #defined for binary compatibility with
	prior 4.x releases.
	* src/limits_bits.cpp: Same as above for definitions of constants.
	* src/num_get.cpp  [_RWSTD_NO_OBJECT_MANGLING] (__rw_flt_infinity,
	__rw_dbl_infinity, __rw_ldbl_infinity): Same.

2007-10-15 Andrew Black <ablack@roguewave.com>

	STDCXX-109 
	* etc/config/makefile.rules ($(CATFILE)): Make failure to execute
	the gencat utility non-fatal. 

2007-10-16 Travis Vitek <vitek@roguewave.com>

	STDCXX-596
	* 0.printf.cpp (_rw_fmtarray): Check pointer bounds before
	examining the contents to avoid uninitialized memory read.

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

	* src/ChangeLog: Updated.
	* include/ChangeLog: Generated.
	* examples/ChangeLog: Ditto.
	* tests/ChangeLog: Ditto.
	* util/ChangeLog: Ditto.

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

	* README: Removed the "(pre-release)" bit from the version string
	and added the set of platforms on which 4.2.0 has been tested on.

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

	* _config.h: Corrected a typo in a comment and updated the year
	of copyright.

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

	* 21.string.io.stdcxx-206.cpp: Added a license header.

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

	* NO_OBJECT_MANGLING.cpp: New config test to determine whether
	namespace-scope objects have their types mangled into their
	names (as done by MSVC) or not (other compilers).
	* object_mangling_imp.cpp: Helper file to go with the above.

2007-10-15 Farid Zaripov <farid_zaripov@epam.com>

	* 21.string.io.stdcxx-206.cpp: Perform testing with zero
	and non-zero padding. Perform checking according to
	_RWSTD_NO_EXT_KEEP_WIDTH_ON_FAILUDE macro definition.

2007-10-15 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-206
	* _ioinsert.cc (__rw_insert): Corrected #ifndef to #ifdef.

2007-10-14  Martin Sebor  <sebor@roguewave.com>

	* 26.valarray.sub.stdcxx-224.cpp: Added regression test for STDCXX-224.

2007-10-14  Marc Betz  <betz@roguewave.com>

	* 1-5.html: Editorial improvements not related to but made
	in the process of resolving STDCXX-574.

2007-10-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-278
	* valarray.html: Updated example source code to reflect rev 584618.

2007-10-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-278
	* valarray.cpp (<valarray.h>): Removed a confusing #include directive
	and added the definition of a generic operator<<() for valarray copied
	from the said header.
	(main): Replaced endl with '\n' for efficiency.

2007-10-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-407
	* frames-contents-all.html: Removed section 1.2.3 - Relationship
	to the Essential Tools Module.
	* 1-1.html: Replaced C++ Standard Library Module with Apache C++
	Standard Library.

2007-10-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-407
	* tindex.html: Replaced "Rogue Wave" with Apache.
	* frames-contents-all.html: Same.

2007-10-14  Marc Betz  <betz@roguewave.com>

	STDCXX-407
	* copyright.html: Deleted.
	* contact.html: Same.

2007-10-14  Marc Betz  <betz@roguewave.com>

	STDCXX-407
	* copyright.html: Deleted.
	* contact.html: Same.
	* 1-6.html: Same.
	* 1-7.html: Same.

2007-10-14  Marc Betz  <betz@roguewave.com>

	STDCXX-407
	* 40-5.html: Replaced "C++ Standard Library Module" with "Apache C++
	Standard Library."
	* 1-1.html: Same.
	* 33-3.html: Same.
	* 25-5.html: Same.
	* 39-1.html: Same.
	* 1-5.html: Same. Also made the width of the "next" button the same
	as that of the "previous" button. 
	* 32-5.html: Same.
	* 18-3.html: Same. Also made the width of the "next" button the same
	as that of the "previous" button. 
	* 24-4.html: Same.
	* 27-3.html: Same.
	* 41-2.html: Same.
	* 16-3.html: Same.
	* 22-7.html: Same.
	* 36-3.html: Same.
	* noframes.html: Same.
	* 30-2.html: Same.
	* 22-4.html: Same.
	* 42-1.html: Same.
	* 17-2.html: Same.
	* II.html: Same. Also made the width of the "next" button the same
	as that of the "previous" button.
	* 1-3.html: Same.
	* 27-4.html: Same.
	* 24-2.html: Same.
	* 16-1.html: Same.
	* 28-3.html: Same.
	* tindex.html: Same. Removed references to Rogue Wave SourcePro C++
	products and services.
	* booktoc.html: Same.
	* 1.html: Same.
	* 1-2.html: Same.
	* 1-4.html: Same.

2007-10-14  Martin Sebor  <sebor@roguewave.com>

	* 1-1.html: Corrected a link to the Rogue Wave site.
	* 1-4.html: Corrected paths pointing to documentation.

2007-10-14  Marc Betz  <betz@roguewave.com>

	STDCXX-407
	* locale.html: Replaced "C++ Standard Library Module" with "Apache C++
	Standard Library." Also made the width of the "next" button the same
	as that of the "previous" button. 
	* noframes.html: Same.
	* localedefutility.html: Same.

2007-10-11  Martin Sebor  <sebor@roguewave.com>

	STDCXX-509
	* limits_bits.cpp [_RWSTD_NO_INFINITY] (__rw_flt_denorm_min,
	__rw_flt_infinity, __rw_flt_qNaN, __rw_flt_sNaN, __rw_dbl_denorm_min,
	__rw_dbl_infinity, __rw_dbl_qNaN, __rw_dbl_sNaN, __rw_ldbl_denorm_min,
	__rw_ldbl_infinity, __rw_ldbl_qNaN, __rw_ldbl_sNaN): Declared constants
	with "C" linkage corresponding to rev 564059.

2007-10-11  Martin Sebor  <sebor@roguewave.com>

	STDCXX-590
	* _cerrno.h [__linux__] (errno): Unconditionally #defined to
	__errno_location() which is always declared/defined by GNU
	libc, going as far back as Red Hat Linux 8 (libc 2.2.93).

2007-10-11  Martin Sebor  <sebor@roguewave.com>

	STDCXX-589
	* file.cpp [!_RWSTD_NO_PURE_C_HEADERS] (fileno): Relaxed a guard
	around a declaration.

2007-10-11  Martin Sebor  <sebor@roguewave.com>

	STDCXX-588
	* _config-eccp.h (_RWSTD_NO_DEPRECATED_C_HEADERS,
	_RWSTD_NO_PURE_C_HEADERS): #undef'ined config macros for EDG eccp.

2007-10-11  Martin Sebor  <sebor@roguewave.com>

	STDCXX-586
	* WCHAR_T.cpp [_RWSTD_NO_NATIVE_WCHAR_T] (<wchar.h>): Guarded #include
	directive to prevent failures when wchar_t is already known to be a
	fundamental type.

2007-10-04 Travis Vitek <vitek@roguewave.com>

	STDCXX-580
	* strstream.cpp (main): Unfreeze streambuf so destructor
	will deallocate memory.

2007-10-11 Farid Zaripov <farid_zaripov@epam.com>

	* configure.wsf (configure): Removed IncludeDir command
	line option.
	* projects.js (CreateProjectsDefs): Removed /IncludeDir
	option from command line of the configure.wsf script.

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

	STDCXX-262
	* exception (~exception): Declared after what() to prevent gcc 4
	on Darwin from generating a vtable for the class in exception.o.
	gcc 3.4.6 on FreeBSD 6.2 has no problem either way.
	(~bad_exception): Declared before what() to achieve the same
	effect as above.
	* new (~bad_alloc): Declared before what() for the same reason.

2007-10-10  Martin Sebor  <sebor@roguewave.com>

	* 21.string.io.stdcxx-206.cpp: Regression test for STDCXX-206.

2007-10-10  Martin Sebor  <sebor@roguewave.com>

	* 26.valarray.members.stdcxx-313.cpp: Regression test for STDCXX-313.

2007-10-10  Martin Sebor  <sebor@roguewave.com>

	* 26.valarray.unary.stdcxx-314.cpp: Regression test for STDCXX-314.

2007-10-10  Martin Sebor  <sebor@roguewave.com>

	* 26.valarray.members.stdcxx-318.cpp: Regression test for STCDCXX-318.

2007-10-10 Travis Vitek <vitek@roguewave.com>

	STDCXX-582
	* 0.printf.cpp (test_errno): Deallocate memory allocated
	automatically by rw_snprintfa().

2007-10-05 Farid Zaripov <farid_zaripov@epam.com>

	* _punct.cc (__rw_match_name): Added missing space character.

2007-10-04 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-575
	* 22.locale.cons.mt.cpp [_MSC_VER] (test_ctors): If
	cat == std::locale::messages, compare combined locale
	with first because of the MSVC doesn't support
	LC_MESSAGES constant.

2007-10-04 Farid Zaripov <farid_zaripov@epam.com>

	* Merged the head of branches/4.2.0

2007-10-04 Farid Zaripov <farid_zaripov@epam.com>

	* 27.stringbuf.xsputn.stdcxx-576.cpp: Regression test for STDCXX-576
	issue.

2007-10-04 Farid Zaripov <farid_zaripov@epam.com>

	* Merged the head of branches/4.2.0

2007-10-03 Farid Zaripov <farid_zaripov@epam.com>

	* 22.locale.moneypunct.cpp (convert): Save the name of the
	original locale using std::string object. Use return instead
	of break to avoid restoring the original locale twice.

2007-10-03 Farid Zaripov <farid_zaripov@epam.com>

	* 23.vector.bool.stdcxx-235.cpp (main): Corrected the
	lines which are testing the operator!=.

2007-10-03 Farid Zaripov <farid_zaripov@epam.com>

	* display.cpp (print_status_plain): Use float arithmetic when
	calculating the percent of the failed assertions to avoid
	overflow of the unsigned int type.

2007-10-01 Farid Zaripov <farid_zaripov@epam.com>

	* Merged the head of branches/4.2.0

2007-10-01 Farid Zaripov <farid_zaripov@epam.com>

	* Merged the head of branches/4.2.0

2007-10-01  Farid Zaripov  <farid_zaripov@epam.com>

	* time_put.cpp (__rw_get_date_fmat): Convert char argument
	of isspace(), isdigit(), ispunct() to unsigned char.
	(__rw_get_time_fmat): Ditto.

2007-10-01  Farid Zaripov  <farid_zaripov@epam.com>

	* locale.cpp [_WIN32] (EnumLocales): New function to
	enumerate system locales.
	(print_locale_names): Obtain list of system locales if
	RWSTD_LOCALE_ROOT environment variable is not defined.

2007-10-01  Farid Zaripov  <farid_zaripov@epam.com>

	* Merged the head of branches/4.2.0

2007-09-26 Travis Vitek <vitek@roguewave.com>

	STDCXX-571
	* 22.locale.numpunct.mt.cpp (run_test): Use C++ locale to
	generate test data. This is to avoid any incompatibilities
	between C and C++ locales.
	(thread_func): Updated to use changed test data types.
	(main): add support for command line options nlocales and
	shared-locale for consistency with other multithreaded locale
	tests.

2007-09-27  Farid Zaripov  <farid_zaripov@epam.com>

	* projects.js (CreateProjectsDefs): Set stdcxx_runtests
	project dependent on stdcxx_utils project (was dependent
	on exec project only).

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

	* ctype.cpp (main): Parenthesized a call to ctype::toupper() to avoid
	errors when the symbol is shadowed by a macro defined in libc header(s)
	as happens to be the case with gcc 4 on Darwin.

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

	STDCXX-572
	* aliases.cpp (ci_pre_compare): Parenthesized calls to two-argument
	overload of tolower() to avoid errors when the symbol is #defined
	as a macro in libc header(s) as is the case with gcc 4 on Darwin.

2007-09-26  Farid Zaripov  <farid_zaripov@epam.com>

	* locale.cpp [_WIN32]: Add /A:D option in dir command
	to print the directory names only.

2007-09-26  Farid Zaripov  <farid_zaripov@epam.com>

	* 22.locale.moneypunct.mt.cpp (thread_loop_body): Corrected char type
	to wchar_t.

2007-09-26  Farid Zaripov  <farid_zaripov@epam.com>

	* 22.locale.money.get.cpp (set_pattern): New function to translate
	test format to money_base::pattern.
	(do_test): If fmat is not null set pattern using set_pattern().
	(test_get): Test patterns replaced to human-readable form.

2007-09-26  Farid Zaripov  <farid_zaripov@epam.com>

	* _money_get.cc (_C_get): If no characters available during
	parsing sign part of the pattern, then set failbit only when
	positive_sign and negative_sign both are not empty. Else set
	negative sign if positive_sign is not empty and negative_sign
	is empty.

2007-09-26  Farid Zaripov  <farid_zaripov@epam.com>

	* msvc-7.0.config: Added new config variable: LIBS.
	* utilities.js: Ditto.
	* msvcex-8.0.config: Set LIBS=user32.lib (by default
	the VCExpress links with kernel32.lib only).
	* projects.js: Use LIBS config variable instead of
	hardcoded commonLibs.

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

	STDCXX-315
	* valarray (atan2): Initialized array elements before assigning
	to them.

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

	* 26.valarray.transcend.stdcxx-315.cpp: Added regression test
	for STDCXX-315.

2007-09-25  Andrew Black  <ablack@roguewave.com>
	STDCXX-440
	* exec.cpp (limit_process): Stop itteration over limits structure
	when name element is null, not limit element.  Old behavior
	incorrectly aborted loop when encountering the first limit that
	didn't need to be set.

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

	* 26.valarray.sub.stdcxx-309.cpp: Added regression test for STCXX-309.

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

	* 26.valarray.binary.stdcxx-237.cpp: Added regression test for
	STCXX-237.

2007-09-25  Dennis Handly <dhandly@cup.hp.com>

	STDCXX-237
	STDCXX-448
	* valarray (ind_numb): Returned 0 when the lengths array is empty.

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

	STDCXX-404
	* charmap.h (<iconv.h>): Removed a redundant _MSC_VER guard.
	(open_iconv_to_utf8, open_iconv_to_ext, ic_to_utf8_, ic_to_ext_):
	Guarded declarations with _RWSTD_NO_ICONV instead of _MSC_VER.
	* charmap.cpp (my_iconv_open): Guarded function definition with
	_RWSTD_NO_ICONV instead of _MSC_VER.
	(convert_to_utf8): Defined function unconditionally and guarded
	implementation with _RWSTD_NO_ICONV (defaulting to returning 0
	when the macro is #defined).
	(ic_to_utf8_, ic_to_ext_): Guarded the assignment of variables
	with _RWSTD_NO_ICONV.
	Guarded MSVC-specific behavior with _MSC_VER.

2007-09-24 Travis Vitek <vitek@roguewave.com>

	STDCXX-492
	* string (operator+=): Replace call to append with push_back
	for performance.
	(append): Avoid calling replace() from append if there is
	sufficient buffer space available for performance.
	(append): Simplify append overload, move it to header and then
	inline it.
	(append): Use _RWSTD_SIZE_T to avoid integer overflow problems
	that could lead to heap corruption.
	(push_back): Call replace() instead of append when buffer
	reallocation required. cleanup. avoid integer overflow problem.
	* string.cc (append): Moved append overload to header and make
	it inline. 

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

	* 23.list.insert.cpp (InsertRange, InsertRangeOverload): Removed
	an unused local vaiable to silence a gcc warning: unused variable.
	(InsertRangePtrOverload): Removed const qualification from a const
	cast to silence Intel C++ warning warning #191: type qualifier is
	meaningless on cast type.

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

	* 23.list.assign.cpp (AssignRangePtrOverload): Removed a pointless
	const qualification from a cast to silence Intel C++ warning #191:
	type qualifier is meaningless on cast type.
	(AssignRangeOverload): Constified a local variable.

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

	STDCXX-570
	* complex (pow): Removed inline keyword from the declaration
	of a function template outlined in revision 545847 while fixing
	STDCXX-447.

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

	STDCXX-567
	* atomic.s (__rw_atomic_xchg8): Appended the 'b' (byte) prefix
	to the xchg instruction instead of counting on the assembler to
	figure it out from the widths of the operands to prevent an error
	when using the Sun Assembler (which, unlike the GNU assembler,
	doesn't support doing this).

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

	* 0.printf.cpp (__PURE_CNAME): Undefined Compaq (now HP) C++ macro
	to bring in ENOMEM from <errno.h> otherwise guarded (and undefined)
	by the compiler's strict implementation of the C++ libc headers in
	response to the -std strict_ansi_errors command line option.
	* 0.process: Ditto for ENOENT, ECHILD, and ESRCH.
	* 18.limits.stdcxx-436.cpp: Same for popen().

2007-09-20 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-560
	* icc-10.0-x64.config: Added ASL header.
	* icc-10.0.config: Ditto.
	* icc-9.0.config: Ditto.
	* icc-9.1-x64.config: Ditto.
	* icc-9.1.config: Ditto.
	* msvc-7.0.config: Ditto.
	* msvc-7.1.config: Ditto.
	* msvc-8.0-x64.config: Ditto.
	* msvc-8.0.config: Ditto.
	* msvc-9.0-x64.config: Ditto.
	* msvc-9.0.config: Ditto.
	* msvcex-8.0.config: Ditto.

2007-09-20 Travis Vitek <vitek@roguewave.com>

	STDCXX-561
	* ANSI_X3.110-1983: Add ASL Header
	* ANSI_X3.4-1968: Same.
	* ASMO_449: Same.
	* BIG5: Same.
	* BIG5-HKSCS: Same.
	* BS_4730: Same.
	* BS_VIEWDATA: Same.
	* CP10007: Same.
	* CP1250: Same.
	* CP1251: Same.
	* CP1252: Same.
	* CP1253: Same.
	* CP1254: Same.
	* CP1255: Same.
	* CP1256: Same.
	* CP1257: Same.
	* CP1258: Same.
	* CP437: Same.
	* CP737: Same.
	* CP775: Same.
	* CP949: Same.
	* CSA_Z243.4-1985-1: Same.
	* CSA_Z243.4-1985-2: Same.
	* CSA_Z243.4-1985-GR: Same.
	* CSN_369103: Same.
	* CWI: Same.
	* DEC-MCS: Same.
	* DIN_66003: Same.
	* DS_2089: Same.
	* EBCDIC-AT-DE: Same.
	* EBCDIC-AT-DE-A: Same.
	* EBCDIC-CA-FR: Same.
	* EBCDIC-DK-NO: Same.
	* EBCDIC-DK-NO-A: Same.
	* EBCDIC-ES: Same.
	* EBCDIC-ES-A: Same.
	* EBCDIC-ES-S: Same.
	* EBCDIC-FI-SE: Same.
	* EBCDIC-FI-SE-A: Same.
	* EBCDIC-FR: Same.
	* EBCDIC-IS-FRISS: Same.
	* EBCDIC-IT: Same.
	* EBCDIC-PT: Same.
	* EBCDIC-UK: Same.
	* EBCDIC-US: Same.
	* ECMA-CYRILLIC: Same.
	* ES: Same.
	* ES2: Same.
	* EUC-JP: Same.
	* EUC-KR: Same.
	* EUC-TW: Same.
	* GB18030: Same.
	* GB2312: Same.
	* GB_1988-80: Same.
	* GBK: Same.
	* GEORGIAN-ACADEMY: Same.
	* GEORGIAN-PS: Same.
	* GOST_19768-74: Same.
	* GREEK-CCITT: Same.
	* GREEK7: Same.
	* GREEK7-OLD: Same.
	* HP-ROMAN8: Same.
	* IBM037: Same.
	* IBM038: Same.
	* IBM1004: Same.
	* IBM1026: Same.
	* IBM1047: Same.
	* IBM256: Same.
	* IBM273: Same.
	* IBM274: Same.
	* IBM275: Same.
	* IBM277: Same.
	* IBM278: Same.
	* IBM280: Same.
	* IBM281: Same.
	* IBM284: Same.
	* IBM285: Same.
	* IBM290: Same.
	* IBM297: Same.
	* IBM420: Same.
	* IBM423: Same.
	* IBM424: Same.
	* IBM437: Same.
	* IBM500: Same.
	* IBM850: Same.
	* IBM851: Same.
	* IBM852: Same.
	* IBM855: Same.
	* IBM857: Same.
	* IBM860: Same.
	* IBM861: Same.
	* IBM862: Same.
	* IBM863: Same.
	* IBM864: Same.
	* IBM865: Same.
	* IBM866: Same.
	* IBM868: Same.
	* IBM869: Same.
	* IBM870: Same.
	* IBM871: Same.
	* IBM874: Same.
	* IBM875: Same.
	* IBM880: Same.
	* IBM891: Same.
	* IBM903: Same.
	* IBM904: Same.
	* IBM905: Same.
	* IBM918: Same.
	* IEC_P27-1: Same.
	* INIS: Same.
	* INIS-8: Same.
	* INIS-CYRILLIC: Same.
	* INVARIANT: Same.
	* ISIRI-3342: Same.
	* ISO-8859-1: Same.
	* ISO-8859-10: Same.
	* ISO-8859-13: Same.
	* ISO-8859-14: Same.
	* ISO-8859-15: Same.
	* ISO-8859-16: Same.
	* ISO-8859-2: Same.
	* ISO-8859-3: Same.
	* ISO-8859-4: Same.
	* ISO-8859-5: Same.
	* ISO-8859-6: Same.
	* ISO-8859-7: Same.
	* ISO-8859-8: Same.
	* ISO-8859-9: Same.
	* ISO-IR-197: Same.
	* ISO-IR-209: Same.
	* ISO-IR-90: Same.
	* ISO_10367-BOX: Same.
	* ISO_10646: Same.
	* ISO_2033-1983: Same.
	* ISO_5427: Same.
	* ISO_5427-EXT: Same.
	* ISO_5428: Same.
	* ISO_646.BASIC: Same.
	* ISO_646.IRV: Same.
	* ISO_6937: Same.
	* ISO_6937-2-25: Same.
	* ISO_6937-2-ADD: Same.
	* ISO_8859-1,GL: Same.
	* ISO_8859-SUPP: Same.
	* IT: Same.
	* JIS_C6220-1969-JP: Same.
	* JIS_C6220-1969-RO: Same.
	* JIS_C6229-1984-A: Same.
	* JIS_C6229-1984-B: Same.
	* JIS_C6229-1984-B-ADD: Same.
	* JIS_C6229-1984-HAND: Same.
	* JIS_C6229-1984-HAND-ADD: Same.
	* JIS_C6229-1984-KANA: Same.
	* JIS_X0201: Same.
	* JOHAB: Same.
	* JUS_I.B1.002: Same.
	* JUS_I.B1.003-MAC: Same.
	* JUS_I.B1.003-SERB: Same.
	* KOI-8: Same.
	* KOI8-R: Same.
	* KOI8-T: Same.
	* KOI8-U: Same.
	* KSC5636: Same.
	* LATIN-GREEK: Same.
	* LATIN-GREEK-1: Same.
	* MAC-CYRILLIC: Same.
	* MAC-IS: Same.
	* MAC-SAMI: Same.
	* MAC-UK: Same.
	* MACINTOSH: Same.
	* MSZ_7795.3: Same.
	* NATS-DANO: Same.
	* NATS-DANO-ADD: Same.
	* NATS-SEFI: Same.
	* NATS-SEFI-ADD: Same.
	* NC_NC00-10: Same.
	* NEXTSTEP: Same.
	* NF_Z_62-010: Same.
	* NF_Z_62-010_1973: Same.
	* NS_4551-1: Same.
	* NS_4551-2: Same.
	* PT: Same.
	* PT2: Same.
	* SAMI: Same.
	* SAMI-WS2: Same.
	* SEN_850200_B: Same.
	* SEN_850200_C: Same.
	* Shift_JIS: Same.
	* T.101-G2: Same.
	* T.61-7BIT: Same.
	* TCVN5712-1: Same.
	* TIS-620: Same.
	* UTF-8: Same.
	* VIDEOTEX-SUPPL: Same.
	* VISCII: Same.
	* af_ZA: Same.
	* am_ET: Same.
	* ar_AE: Same.
	* ar_BH: Same.
	* ar_DZ: Same.
	* ar_EG: Same.
	* ar_IN: Same.
	* ar_IQ: Same.
	* ar_JO: Same.
	* ar_KW: Same.
	* ar_LB: Same.
	* ar_LY: Same.
	* ar_MA: Same.
	* ar_OM: Same.
	* ar_QA: Same.
	* ar_SA: Same.
	* ar_SD: Same.
	* ar_SY: Same.
	* ar_TN: Same.
	* ar_YE: Same.
	* az_AZ: Same.
	* be_BY: Same.
	* bg_BG: Same.
	* bn_IN: Same.
	* br_FR: Same.
	* bs_BA: Same.
	* ca_ES: Same.
	* ca_ES.euro: Same.
	* cs_CZ: Same.
	* cy_GB: Same.
	* da_DK: Same.
	* de_AT: Same.
	* de_AT.euro: Same.
	* de_BE: Same.
	* de_BE.euro: Same.
	* de_CH: Same.
	* de_DE: Same.
	* de_DE.euro: Same.
	* de_LU: Same.
	* de_LU.euro: Same.
	* el_GR: Same.
	* el_GR.euro: Same.
	* en_AU: Same.
	* en_BW: Same.
	* en_CA: Same.
	* en_DK: Same.
	* en_GB: Same.
	* en_HK: Same.
	* en_IE: Same.
	* en_IE.euro: Same.
	* en_IN: Same.
	* en_NZ: Same.
	* en_PH: Same.
	* en_SG: Same.
	* en_US: Same.
	* en_ZA: Same.
	* en_ZW: Same.
	* es_AR: Same.
	* es_BO: Same.
	* es_CL: Same.
	* es_CO: Same.
	* es_CR: Same.
	* es_DO: Same.
	* es_EC: Same.
	* es_ES: Same.
	* es_ES.euro: Same.
	* es_GT: Same.
	* es_HN: Same.
	* es_MX: Same.
	* es_NI: Same.
	* es_PA: Same.
	* es_PE: Same.
	* es_PR: Same.
	* es_PY: Same.
	* es_SV: Same.
	* es_US: Same.
	* es_UY: Same.
	* es_VE: Same.
	* et_EE: Same.
	* eu_ES: Same.
	* eu_ES.euro: Same.
	* fa_IR: Same.
	* fi_FI: Same.
	* fi_FI.euro: Same.
	* fo_FO: Same.
	* fr_BE: Same.
	* fr_BE.euro: Same.
	* fr_CA: Same.
	* fr_CH: Same.
	* fr_FR: Same.
	* fr_FR.euro: Same.
	* fr_LU: Same.
	* fr_LU.euro: Same.
	* ga_IE: Same.
	* ga_IE.euro: Same.
	* gd_GB: Same.
	* gl_ES: Same.
	* gl_ES.euro: Same.
	* gv_GB: Same.
	* he_IL: Same.
	* hi_IN: Same.
	* hr_HR: Same.
	* hu_HU: Same.
	* hy_AM: Same.
	* i18n: Same.
	* id_ID: Same.
	* is_IS: Same.
	* iso14651_t1: Same.
	* it_CH: Same.
	* it_IT: Same.
	* it_IT.euro: Same.
	* iw_IL: Same.
	* ja_JP: Same.
	* ka_GE: Same.
	* kl_GL: Same.
	* ko_KR: Same.
	* kw_GB: Same.
	* lt_LT: Same.
	* lv_LV: Same.
	* mi_NZ: Same.
	* mk_MK: Same.
	* mr_IN: Same.
	* ms_MY: Same.
	* mt_MT: Same.
	* nl_BE: Same.
	* nl_BE.euro: Same.
	* nl_NL: Same.
	* nl_NL.euro: Same.
	* nn_NO: Same.
	* no_NO: Same.
	* oc_FR: Same.
	* pl_PL: Same.
	* POSIX: Same.
	* pt_BR: Same.
	* pt_PT: Same.
	* pt_PT.euro: Same.
	* ro_RO: Same.
	* ru_RU: Same.
	* ru_UA: Same.
	* se_NO: Same.
	* sk_SK: Same.
	* sl_SI: Same.
	* sq_AL: Same.
	* sr_YU: Same.
	* sr_YU.cyrillic: Same.
	* sv_FI: Same.
	* sv_FI.euro: Same.
	* sv_SE: Same.
	* ta_IN: Same.
	* te_IN: Same.
	* tg_TJ: Same.
	* th_TH: Same.
	* ti_ER: Same.
	* ti_ET: Same.
	* tl_PH: Same.
	* tr_TR: Same.
	* translit_circle: Same.
	* translit_cjk_compat: Same.
	* translit_cjk_variants: Same.
	* translit_combining: Same.
	* translit_compat: Same.
	* translit_et: Same.
	* translit_font: Same.
	* translit_fraction: Same.
	* translit_hangul: Same.
	* translit_narrow: Same.
	* translit_neutral: Same.
	* translit_small: Same.
	* translit_wide: Same.
	* tt_RU: Same.
	* uk_UA: Same.
	* ur_PK: Same.
	* uz_UZ: Same.
	* vi_VN: Same.
	* yi_US: Same.
	* zh_CN: Same.
	* zh_HK: Same.
	* zh_SG: Same.
	* zh_TW: Same. 
	* 100: Same.
	* 101: Same.
	* 102: Same.
	* 1026: Same.
	* 103: Same.
	* 104: Same.
	* 1047: Same.
	* 105: Same.
	* 106: Same.
	* 107: Same.
	* 108: Same.
	* 109: Same.
	* 11: Same.
	* 110: Same.
	* 111: Same.
	* 112: Same.
	* 113: Same.
	* 114: Same.
	* 115: Same.
	* 116: Same.
	* 117: Same.
	* 118: Same.
	* 119: Same.
	* 12: Same.
	* 120: Same.
	* 121: Same.
	* 122: Same.
	* 123: Same.
	* 124: Same.
	* 125: Same.
	* 126: Same.
	* 127: Same.
	* 128: Same.
	* 129: Same.
	* 13: Same.
	* 130: Same.
	* 131: Same.
	* 132: Same.
	* 133: Same.
	* 134: Same.
	* 135: Same.
	* 136: Same.
	* 137: Same.
	* 138: Same.
	* 139: Same.
	* 14: Same.
	* 140: Same.
	* 141: Same.
	* 142: Same.
	* 143: Same.
	* 144: Same.
	* 145: Same.
	* 146: Same.
	* 147: Same.
	* 148: Same.
	* 149: Same.
	* 15: Same.
	* 150: Same.
	* 151: Same.
	* 152: Same.
	* 153: Same.
	* 154: Same.
	* 155: Same.
	* 156: Same.
	* 16: Same.
	* 17: Same.
	* 18: Same.
	* 19: Same.
	* 20: Same.
	* 21: Same.
	* 22: Same.
	* 23: Same.
	* 24: Same.
	* 25: Same.
	* 26: Same.
	* 27: Same.
	* 28: Same.
	* 29: Same.
	* 30: Same.
	* 31: Same.
	* 32: Same.
	* 33: Same.
	* 34: Same.
	* 35: Same.
	* 36: Same.
	* 37: Same.
	* 38: Same.
	* 39: Same.
	* 40: Same.
	* 41: Same.
	* 42: Same.
	* 43: Same.
	* 437: Same.
	* 44: Same.
	* 45: Same.
	* 46: Same.
	* 47: Same.
	* 48: Same.
	* 49: Same.
	* 50: Same.
	* 500: Same.
	* 500V1: Same.
	* 51: Same.
	* 52: Same.
	* 53: Same.
	* 54: Same.
	* 55: Same.
	* 56: Same.
	* 57: Same.
	* 58: Same.
	* 59: Same.
	* 60: Same.
	* 61: Same.
	* 62: Same.
	* 63: Same.
	* 64: Same.
	* 65: Same.
	* 66: Same.
	* 67: Same.
	* 68: Same.
	* 69: Same.
	* 70: Same.
	* 71: Same.
	* 72: Same.
	* 73: Same.
	* 74: Same.
	* 75: Same.
	* 76: Same.
	* 77: Same.
	* 78: Same.
	* 79: Same.
	* 80: Same.
	* 81: Same.
	* 82: Same.
	* 83: Same.
	* 84: Same.
	* 85: Same.
	* 850: Same.
	* 851: Same.
	* 852: Same.
	* 855: Same.
	* 857: Same.
	* 86: Same.
	* 860: Same.
	* 861: Same.
	* 862: Same.
	* 863: Same.
	* 865: Same.
	* 869: Same.
	* 87: Same.
	* 88: Same.
	* 89: Same.
	* 90: Same.
	* 904: Same.
	* 91: Same.
	* 92: Same.
	* 93: Same.
	* 94: Same.
	* 95: Same.
	* 96: Same.
	* 97: Same.
	* 98: Same.
	* 99: Same.
	* ANSI_X3.110-1983: Same.
	* ANSI_X3.4-1968: Same.
	* ANSI_X3.4-1986: Same.
	* ARABIC: Same.
	* ARABIC7: Same.
	* ASCII: Same.
	* ASMO-708: Same.
	* ASMO_449: Same.
	* BALTIC: Same.
	* BS_4730: Same.
	* BS_VIEWDATA: Same.
	* CA: Same.
	* CN: Same.
	* CP-AR: Same.
	* CP-GR: Same.
	* CP-HU: Same.
	* CP-IS: Same.
	* CP037: Same.
	* CP038: Same.
	* CP1004: Same.
	* CP1026: Same.
	* CP1047: Same.
	* CP1250: Same.
	* CP1251: Same.
	* CP1252: Same.
	* CP1253: Same.
	* CP1254: Same.
	* CP1255: Same.
	* CP1256: Same.
	* CP1257: Same.
	* CP273: Same.
	* CP274: Same.
	* CP275: Same.
	* CP278: Same.
	* CP280: Same.
	* CP281: Same.
	* CP284: Same.
	* CP285: Same.
	* CP290: Same.
	* CP297: Same.
	* CP367: Same.
	* CP420: Same.
	* CP423: Same.
	* CP424: Same.
	* CP437: Same.
	* CP500: Same.
	* CP819: Same.
	* CP850: Same.
	* CP851: Same.
	* CP852: Same.
	* CP855: Same.
	* CP857: Same.
	* CP860: Same.
	* CP861: Same.
	* CP862: Same.
	* CP863: Same.
	* CP864: Same.
	* CP865: Same.
	* CP868: Same.
	* CP869: Same.
	* CP870: Same.
	* CP871: Same.
	* CP875: Same.
	* CP880: Same.
	* CP891: Same.
	* CP903: Same.
	* CP904: Same.
	* CP905: Same.
	* CP918: Same.
	* CSA7-1: Same.
	* CSA7-2: Same.
	* CSA_T500-1983: Same.
	* CSA_Z243.4-1985-1: Same.
	* CSA_Z243.4-1985-2: Same.
	* CSA_Z243.4-1985-GR: Same.
	* CSN_369103: Same.
	* CUBA: Same.
	* CWI: Same.
	* CWI-2: Same.
	* CYRILLIC: Same.
	* DE: Same.
	* DEC: Same.
	* DEC-MCS: Same.
	* DIN_66003: Same.
	* DK: Same.
	* DS2089: Same.
	* DS_2089: Same.
	* E13B: Same.
	* EBCDIC-AT-DE: Same.
	* EBCDIC-AT-DE-A: Same.
	* EBCDIC-BE: Same.
	* EBCDIC-BR: Same.
	* EBCDIC-CA-FR: Same.
	* EBCDIC-CP-AR1: Same.
	* EBCDIC-CP-AR2: Same.
	* EBCDIC-CP-BE: Same.
	* EBCDIC-CP-CA: Same.
	* EBCDIC-CP-CH: Same.
	* EBCDIC-CP-DK: Same.
	* EBCDIC-CP-ES: Same.
	* EBCDIC-CP-FI: Same.
	* EBCDIC-CP-FR: Same.
	* EBCDIC-CP-GB: Same.
	* EBCDIC-CP-GR: Same.
	* EBCDIC-CP-HE: Same.
	* EBCDIC-CP-IS: Same.
	* EBCDIC-CP-IT: Same.
	* EBCDIC-CP-NL: Same.
	* EBCDIC-CP-NO: Same.
	* EBCDIC-CP-ROECE: Same.
	* EBCDIC-CP-SE: Same.
	* EBCDIC-CP-TR: Same.
	* EBCDIC-CP-US: Same.
	* EBCDIC-CP-WT: Same.
	* EBCDIC-CP-YU: Same.
	* EBCDIC-CYRILLIC: Same.
	* EBCDIC-DK-NO: Same.
	* EBCDIC-DK-NO-A: Same.
	* EBCDIC-ES: Same.
	* EBCDIC-ES-A: Same.
	* EBCDIC-ES-S: Same.
	* EBCDIC-FI-SE: Same.
	* EBCDIC-FI-SE-A: Same.
	* EBCDIC-FR: Same.
	* EBCDIC-GREEK: Same.
	* EBCDIC-INT: Same.
	* EBCDIC-INT1: Same.
	* EBCDIC-IS-FRISS: Same.
	* EBCDIC-IT: Same.
	* EBCDIC-JP-E: Same.
	* EBCDIC-JP-KANA: Same.
	* EBCDIC-PT: Same.
	* EBCDIC-UK: Same.
	* EBCDIC-US: Same.
	* ECMA-114: Same.
	* ECMA-118: Same.
	* ECMA-CYRILLIC: Same.
	* ELOT_928: Same.
	* ES: Same.
	* ES2: Same.
	* FR: Same.
	* FRISS: Same.
	* GB: Same.
	* GB_1988-80: Same.
	* GOST_19768-74: Same.
	* GREEK: Same.
	* GREEK-CCITT: Same.
	* GREEK7: Same.
	* GREEK7-OLD: Same.
	* GREEK8: Same.
	* HEBREW: Same.
	* HP-ROMAN8: Same.
	* HU: Same.
	* IBM037: Same.
	* IBM038: Same.
	* IBM1004: Same.
	* IBM1026: Same.
	* IBM1047: Same.
	* IBM256: Same.
	* IBM273: Same.
	* IBM274: Same.
	* IBM275: Same.
	* IBM277: Same.
	* IBM278: Same.
	* IBM280: Same.
	* IBM281: Same.
	* IBM284: Same.
	* IBM285: Same.
	* IBM290: Same.
	* IBM297: Same.
	* IBM367: Same.
	* IBM420: Same.
	* IBM423: Same.
	* IBM424: Same.
	* IBM437: Same.
	* IBM500: Same.
	* IBM819: Same.
	* IBM850: Same.
	* IBM851: Same.
	* IBM852: Same.
	* IBM855: Same.
	* IBM857: Same.
	* IBM860: Same.
	* IBM861: Same.
	* IBM862: Same.
	* IBM863: Same.
	* IBM864: Same.
	* IBM865: Same.
	* IBM868: Same.
	* IBM869: Same.
	* IBM870: Same.
	* IBM871: Same.
	* IBM875: Same.
	* IBM880: Same.
	* IBM891: Same.
	* IBM903: Same.
	* IBM904: Same.
	* IBM905: Same.
	* IBM918: Same.
	* IEC_P27-1: Same.
	* INIS: Same.
	* INIS-8: Same.
	* INIS-CYRILLIC: Same.
	* INVARIANT: Same.
	* IRV: Same.
	* ISO-8859-1: Same.
	* ISO-8859-10: Same.
	* ISO-8859-15: Same.
	* ISO-8859-2: Same.
	* ISO-8859-3: Same.
	* ISO-8859-4: Same.
	* ISO-8859-5: Same.
	* ISO-8859-6: Same.
	* ISO-8859-7: Same.
	* ISO-8859-8: Same.
	* ISO-8859-9: Same.
	* ISO-IR-100: Same.
	* ISO-IR-101: Same.
	* ISO-IR-109: Same.
	* ISO-IR-110: Same.
	* ISO-IR-111: Same.
	* ISO-IR-121: Same.
	* ISO-IR-122: Same.
	* ISO-IR-123: Same.
	* ISO-IR-126: Same.
	* ISO-IR-127: Same.
	* ISO-IR-13: Same.
	* ISO-IR-138: Same.
	* ISO-IR-139: Same.
	* ISO-IR-14: Same.
	* ISO-IR-141: Same.
	* ISO-IR-142: Same.
	* ISO-IR-143: Same.
	* ISO-IR-144: Same.
	* ISO-IR-146: Same.
	* ISO-IR-147: Same.
	* ISO-IR-148: Same.
	* ISO-IR-15: Same.
	* ISO-IR-150: Same.
	* ISO-IR-151: Same.
	* ISO-IR-152: Same.
	* ISO-IR-153: Same.
	* ISO-IR-154: Same.
	* ISO-IR-155: Same.
	* ISO-IR-156: Same.
	* ISO-IR-157: Same.
	* ISO-IR-17: Same.
	* ISO-IR-170: Same.
	* ISO-IR-179: Same.
	* ISO-IR-18: Same.
	* ISO-IR-19: Same.
	* ISO-IR-2: Same.
	* ISO-IR-21: Same.
	* ISO-IR-27: Same.
	* ISO-IR-37: Same.
	* ISO-IR-4: Same.
	* ISO-IR-47: Same.
	* ISO-IR-49: Same.
	* ISO-IR-50: Same.
	* ISO-IR-51: Same.
	* ISO-IR-54: Same.
	* ISO-IR-55: Same.
	* ISO-IR-57: Same.
	* ISO-IR-6: Same.
	* ISO-IR-69: Same.
	* ISO-IR-8-1: Same.
	* ISO-IR-8-2: Same.
	* ISO-IR-85: Same.
	* ISO-IR-86: Same.
	* ISO-IR-88: Same.
	* ISO-IR-89: Same.
	* ISO-IR-9-1: Same.
	* ISO-IR-9-2: Same.
	* ISO-IR-90: Same.
	* ISO-IR-91: Same.
	* ISO-IR-92: Same.
	* ISO-IR-93: Same.
	* ISO-IR-94: Same.
	* ISO-IR-95: Same.
	* ISO-IR-96: Same.
	* ISO-IR-98: Same.
	* ISO-IR-99: Same.
	* ISO646-CA: Same.
	* ISO646-CA2: Same.
	* ISO646-CN: Same.
	* ISO646-CU: Same.
	* ISO646-DE: Same.
	* ISO646-DK: Same.
	* ISO646-ES: Same.
	* ISO646-ES2: Same.
	* ISO646-FR: Same.
	* ISO646-GB: Same.
	* ISO646-HU: Same.
	* ISO646-IT: Same.
	* ISO646-JP: Same.
	* ISO646-JP-OCR-B: Same.
	* ISO646-KR: Same.
	* ISO646-US: Same.
	* ISO646-YU: Same.
	* ISO6937: Same.
	* ISO_10367-BOX: Same.
	* ISO_2033-1983: Same.
	* ISO_5427: Same.
	* ISO_5427-EXT: Same.
	* ISO_5427.1981: Same.
	* ISO_5428: Same.
	* ISO_5428.1980: Same.
	* ISO_646.BASIC: Same.
	* ISO_646.BASIC.1983: Same.
	* ISO_646.IRV.1983: Same.
	* ISO_646.IRV.1991: Same.
	* ISO_6937: Same.
	* ISO_6937-2-25: Same.
	* ISO_6937-2-ADD: Same.
	* ISO_6937-2.1983: Same.
	* ISO_6937.1992: Same.
	* ISO_8859-1: Same.
	* ISO_8859-1,GL: Same.
	* ISO_8859-1.1987: Same.
	* ISO_8859-10: Same.
	* ISO_8859-10.1993: Same.
	* ISO_8859-2: Same.
	* ISO_8859-2.1987: Same.
	* ISO_8859-3: Same.
	* ISO_8859-3.1988: Same.
	* ISO_8859-4: Same.
	* ISO_8859-4.1988: Same.
	* ISO_8859-5: Same.
	* ISO_8859-5.1988: Same.
	* ISO_8859-6: Same.
	* ISO_8859-6.1987: Same.
	* ISO_8859-7: Same.
	* ISO_8859-7.1987: Same.
	* ISO_8859-8: Same.
	* ISO_8859-8.1988: Same.
	* ISO_8859-9: Same.
	* ISO_8859-9.1989: Same.
	* ISO_8859-SUPP: Same.
	* ISO_9036: Same.
	* IT: Same.
	* JIS_C6220-1969: Same.
	* JIS_C6220-1969-JP: Same.
	* JIS_C6220-1969-RO: Same.
	* JIS_C6229-1984-A: Same.
	* JIS_C6229-1984-B: Same.
	* JIS_C6229-1984-B-ADD: Same.
	* JIS_C6229-1984-HAND: Same.
	* JIS_C6229-1984-HAND-ADD: Same.
	* JIS_C6229-1984-KANA: Same.
	* JIS_X0201: Same.
	* JP: Same.
	* JP-OCR-A: Same.
	* JP-OCR-B: Same.
	* JP-OCR-B-ADD: Same.
	* JP-OCR-HAND: Same.
	* JP-OCR-HAND-ADD: Same.
	* JS: Same.
	* JUS_I.B1.002: Same.
	* JUS_I.B1.003-MAC: Same.
	* JUS_I.B1.003-SERB: Same.
	* KATAKANA: Same.
	* KOI-7: Same.
	* KOI-8: Same.
	* KOI8-R: Same.
	* KOI8-RU: Same.
	* KOI8-U: Same.
	* KSC5636: Same.
	* L1: Same.
	* L2: Same.
	* L3: Same.
	* L4: Same.
	* L5: Same.
	* L6: Same.
	* LATIN-GREEK: Same.
	* LATIN-GREEK-1: Same.
	* LATIN1: Same.
	* LATIN1-2-5: Same.
	* LATIN2: Same.
	* LATIN3: Same.
	* LATIN4: Same.
	* LATIN5: Same.
	* LATIN6: Same.
	* MAC: Same.
	* MAC-IS: Same.
	* MACEDONIAN: Same.
	* MACINTOSH: Same.
	* MS-ANSI: Same.
	* MS-ARAB: Same.
	* MS-CYRL: Same.
	* MS-EE: Same.
	* MS-GREEK: Same.
	* MS-HEBR: Same.
	* MS-TURK: Same.
	* MSZ_7795.3: Same.
	* NAPLPS: Same.
	* NATS-DANO: Same.
	* NATS-DANO-ADD: Same.
	* NATS-SEFI: Same.
	* NATS-SEFI-ADD: Same.
	* NC_NC00-10: Same.
	* NC_NC00-10.81: Same.
	* NEXT: Same.
	* NEXTSTEP: Same.
	* NF_Z_62-010: Same.
	* NF_Z_62-010_1973: Same.
	* NS_4551-1: Same.
	* NS_4551-2: Same.
	* OS2LATIN1: Same.
	* PT: Same.
	* PT2: Same.
	* R8: Same.
	* REF: Same.
	* ROMAN8: Same.
	* SAMI: Same.
	* SEN_850200_B: Same.
	* SEN_850200_C: Same.
	* SERBIAN: Same.
	* ST_SEV_358-88: Same.
	* T.101-G2: Same.
	* T.61-7BIT: Same.
	* T.61-8BIT: Same.
	* UK: Same.
	* US: Same.
	* US-ASCII: Same.
	* VIDEOTEX-SUPPL: Same.
	* WINBALTRIM: Same.
	* X0201: Same.
	* X0201-7: Same.
	* YU: Same.
	* cs_CZ: Same.
	* da_DK: Same.
	* da_EU: Same.
	* de_AT: Same.
	* de_BE: Same.
	* de_CH: Same.
	* de_DE: Same.
	* de_EU: Same.
	* de_LU: Same.
	* el_EU: Same.
	* el_GR: Same.
	* en_AU: Same.
	* en_CA: Same.
	* en_DK: Same.
	* en_EU: Same.
	* en_GB: Same.
	* en_IE: Same.
	* en_NZ: Same.
	* en_US: Same.
	* es_AR: Same.
	* es_BO: Same.
	* es_CL: Same.
	* es_CO: Same.
	* es_DO: Same.
	* es_EC: Same.
	* es_ES: Same.
	* es_EU: Same.
	* es_GT: Same.
	* es_HN: Same.
	* es_MX: Same.
	* es_PA: Same.
	* es_PE: Same.
	* es_PY: Same.
	* es_SV: Same.
	* es_US: Same.
	* es_UY: Same.
	* es_VE: Same.
	* et_EE: Same.
	* eu_ES: Same.
	* fi_EU: Same.
	* fi_FI: Same.
	* fo_FO: Same.
	* fr_BE: Same.
	* fr_CA: Same.
	* fr_CH: Same.
	* fr_EU: Same.
	* fr_FR: Same.
	* fr_LU: Same.
	* ga_EU: Same.
	* ga_IE: Same.
	* gl_ES: Same.
	* he_IL: Same.
	* hr_HR: Same.
	* hu_HU: Same.
	* id_ID: Same.
	* is_EU: Same.
	* is_IS: Same.
	* it_EU: Same.
	* it_IT: Same.
	* iw_IL: Same.
	* kl_GL: Same.
	* lt_LT: Same.
	* lv_LV: Same.
	* nl_BE: Same.
	* nl_EU: Same.
	* nl_NL: Same.
	* no_EU: Same.
	* no_NO: Same.
	* pl_PL: Same.
	* POSIX: Same.
	* pt_BR: Same.
	* pt_EU: Same.
	* pt_PT: Same.
	* ro_RO: Same.
	* ru_RU: Same.
	* sl_SI: Same.
	* sv_EU: Same.
	* sv_FI: Same.
	* sv_SE: Same.
	* tr_TR: Same.

2007-09-20 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-560
	* configure.bat: Added ASL header.
	* generate.bat: Ditto.

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

	* rwstderr.msg: Added missing space after the comment character
	to prevent pedantic gencat errors on Linux.

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

	STDCXX-406
	* GNUmakefile.lib [Compaq C++] (SOBJS): Explicitly added all object
	files from template repository to the archive when building the lib
	with Compaq (HP) C++ on Tru64 UNIX as documented in the manual:
	http://h30097.www3.hp.com/cplus/ugutmpl.htm#templ_chap

2007-09-19 Farid Zaripov <Farid_Zaripov@epam.com>

	* build.wsf (BuildProject): Remove temporary checks (used
	for investigating of the problem with build on icc).

2007-09-19 Farid Zaripov <Farid_Zaripov@epam.com>

	* 20.temp.buffer.cpp (run_test): Define constant MAX_SIZE = INT_MAX
	for MSVC and ICC/Windows and MAX_SIZE = _RWSTD_PTRDIFF_MAX for other
	platforms.

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

	* _messages.cc (do_close): Qualified argument type to work around
	a Sun C++ 5.8 (and prior) bug.

2007-09-19 Farid Zaripov <Farid_Zaripov@epam.com>

	* _messages.h: Reverted changes from r577000 because
	they are obsolete since r577098.
	messages.cpp: Ditto.

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

	STDCXX-457
	* path.h: Added the required ASL header.

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

	STDCXX-457
	* rwstderr.rc: Added a comment with the required ASL header.
	Comment format according to:
	http://msdn2.microsoft.com/en-us/library/aa380896.aspx

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

	* rwstderr.msg: Added the RCS Id keyword.

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

	STDCXX-457
	* rwstderr.msg: Added a comment with the required ASL header.

20070-09-18 Travis Vitek <vitek@roguewave.com>

	STDCXX-559
	* index.html: Add ASL header.
	* rw.css: Same.
	* rwbanner.css: Same.

20070-09-18 Travis Vitek <vitek@roguewave.com>

	STDCXX-559
	* 1-1.html: Add ASL header.
	* 1-2.html: Same.
	* 1-3.html: Same.
	* 1-4.html: Same.
	* 1-5.html: Same.
	* 1-6.html: Same.
	* 1-7.html: Same.
	* 1.html: Same.
	* 10-1.html: Same.
	* 10-2.html: Same.
	* 10-3.html: Same.
	* 10.html: Same.
	* 11-1.html: Same.
	* 11-2.html: Same.
	* 11-3.html: Same.
	* 11.html: Same.
	* 12-1.html: Same.
	* 12-2.html: Same.
	* 12-3.html: Same.
	* 12.html: Same.
	* 13-1.html: Same.
	* 13-2.html: Same.
	* 13-3.html: Same.
	* 13-4.html: Same.
	* 13-5.html: Same.
	* 13-6.html: Same.
	* 13-7.html: Same.
	* 13-8.html: Same.
	* 13.html: Same.
	* 14-1.html: Same.
	* 14-2.html: Same.
	* 14-3.html: Same.
	* 14-4.html: Same.
	* 14-5.html: Same.
	* 14-6.html: Same.
	* 14-7.html: Same.
	* 14.html: Same.
	* 15-1.html: Same.
	* 15-2.html: Same.
	* 15-3.html: Same.
	* 15.html: Same.
	* 16-1.html: Same.
	* 16-2.html: Same.
	* 16-3.html: Same.
	* 16-4.html: Same.
	* 16.html: Same.
	* 17-1.html: Same.
	* 17-2.html: Same.
	* 17.html: Same.
	* 18-1.html: Same.
	* 18-2.html: Same.
	* 18-3.html: Same.
	* 18-4.html: Same.
	* 18.html: Same.
	* 19-1.html: Same.
	* 19-2.html: Same.
	* 19.html: Same.
	* 2-1.html: Same.
	* 2-2.html: Same.
	* 2-3.html: Same.
	* 2-4.html: Same.
	* 2-5.html: Same.
	* 2.html: Same.
	* 20-1.html: Same.
	* 20-2.html: Same.
	* 20-3.html: Same.
	* 20.html: Same.
	* 21-1.html: Same.
	* 21-2.html: Same.
	* 21-3.html: Same.
	* 21.html: Same.
	* 22-1.html: Same.
	* 22-2.html: Same.
	* 22-3.html: Same.
	* 22-4.html: Same.
	* 22-5.html: Same.
	* 22-6.html: Same.
	* 22-7.html: Same.
	* 22.html: Same.
	* 23-1.html: Same.
	* 23-2.html: Same.
	* 23-3.html: Same.
	* 23-4.html: Same.
	* 23.html: Same.
	* 24-1.html: Same.
	* 24-2.html: Same.
	* 24-3.html: Same.
	* 24-4.html: Same.
	* 24.html: Same.
	* 25-1.html: Same.
	* 25-2.html: Same.
	* 25-3.html: Same.
	* 25-4.html: Same.
	* 25-5.html: Same.
	* 25-6.html: Same.
	* 25.html: Same.
	* 26-1.html: Same.
	* 26-2.html: Same.
	* 26-3.html: Same.
	* 26-4.html: Same.
	* 26-5.html: Same.
	* 26-6.html: Same.
	* 26-7.html: Same.
	* 26-8.html: Same.
	* 26-9.html: Same.
	* 26.html: Same.
	* 27-1.html: Same.
	* 27-2.html: Same.
	* 27-3.html: Same.
	* 27-4.html: Same.
	* 27.html: Same.
	* 28-1.html: Same.
	* 28-2.html: Same.
	* 28-3.html: Same.
	* 28-4.html: Same.
	* 28-5.html: Same.
	* 28.html: Same.
	* 29-1.html: Same.
	* 29-2.html: Same.
	* 29-3.html: Same.
	* 29.html: Same.
	* 3-1.html: Same.
	* 3-2.html: Same.
	* 3-3.html: Same.
	* 3-4.html: Same.
	* 3-5.html: Same.
	* 3.html: Same.
	* 30-1.html: Same.
	* 30-2.html: Same.
	* 30-3.html: Same.
	* 30-4.html: Same.
	* 30-5.html: Same.
	* 30.html: Same.
	* 31-1.html: Same.
	* 31-2.html: Same.
	* 31-3.html: Same.
	* 31.html: Same.
	* 32-1.html: Same.
	* 32-2.html: Same.
	* 32-3.html: Same.
	* 32-4.html: Same.
	* 32-5.html: Same.
	* 32-6.html: Same.
	* 32.html: Same.
	* 33-1.html: Same.
	* 33-2.html: Same.
	* 33-3.html: Same.
	* 33.html: Same.
	* 34-1.html: Same.
	* 34-2.html: Same.
	* 34-3.html: Same.
	* 34-4.html: Same.
	* 34.html: Same.
	* 35-1.html: Same.
	* 35-2.html: Same.
	* 35-3.html: Same.
	* 35-4.html: Same.
	* 35-5.html: Same.
	* 35-6.html: Same.
	* 35.html: Same.
	* 36-1.html: Same.
	* 36-2.html: Same.
	* 36-3.html: Same.
	* 36-4.html: Same.
	* 36.html: Same.
	* 37-1.html: Same.
	* 37-2.html: Same.
	* 37.html: Same.
	* 38-1.html: Same.
	* 38-2.html: Same.
	* 38-3.html: Same.
	* 38-4.html: Same.
	* 38-5.html: Same.
	* 38.html: Same.
	* 39-1.html: Same.
	* 39-2.html: Same.
	* 39-3.html: Same.
	* 39.html: Same.
	* 4-1.html: Same.
	* 4-2.html: Same.
	* 4-3.html: Same.
	* 4-4.html: Same.
	* 4.html: Same.
	* 40-1.html: Same.
	* 40-2.html: Same.
	* 40-3.html: Same.
	* 40-4.html: Same.
	* 40-5.html: Same.
	* 40.html: Same.
	* 41-1.html: Same.
	* 41-2.html: Same.
	* 41-3.html: Same.
	* 41.html: Same.
	* 42-1.html: Same.
	* 42-2.html: Same.
	* 42-3.html: Same.
	* 42.html: Same.
	* 43-1.html: Same.
	* 43-2.html: Same.
	* 43-3.html: Same.
	* 43-4.html: Same.
	* 43.html: Same.
	* 44-1.html: Same.
	* 44-2.html: Same.
	* 44.html: Same.
	* 45-1.html: Same.
	* 45-2.html: Same.
	* 45-3.html: Same.
	* 45-4.html: Same.
	* 45-5.html: Same.
	* 45.html: Same.
	* 46-1.html: Same.
	* 46.html: Same.
	* 5-1.html: Same.
	* 5-2.html: Same.
	* 5-3.html: Same.
	* 5-4.html: Same.
	* 5.html: Same.
	* 6-1.html: Same.
	* 6-2.html: Same.
	* 6-3.html: Same.
	* 6.html: Same.
	* 7-1.html: Same.
	* 7-2.html: Same.
	* 7-3.html: Same.
	* 7.html: Same.
	* 8-1.html: Same.
	* 8-2.html: Same.
	* 8-3.html: Same.
	* 8-4.html: Same.
	* 8.html: Same.
	* 9-1.html: Same.
	* 9-2.html: Same.
	* 9-3.html: Same.
	* 9.html: Same.
	* acknow.html: Same.
	* booktoc.html: Same.
	* contact.html: Same.
	* copyright.html: Same.
	* frames-banner.html: Same.
	* frames-contents-all.html: Same.
	* frames-contents-chapter.html: Same.
	* frames-displayarea.html: Same.
	* frames-intro-contents.html: Same.
	* frames-intro-text.html: Same.
	* frames-tindex-contents.html: Same.
	* frames-tindex.html: Same.
	* I.html: Same.
	* II.html: Same.
	* III.html: Same.
	* index.html: Same.
	* IV.html: Same.
	* lists.html: Same.
	* noframes.html: Same.
	* tindex.html: Same.
	* V.html: Same.
	* VI.html: Same.
	* VII.html: Same.
	* VIII.html: Same.

20070-09-18 Travis Vitek <vitek@roguewave.com>

	STDCXX-559
	* --distance-type.html: Add ASL header
	* --iterator-category.html: Same. 	
	* 1-1.html: Same.
	* 1-2.html: Same.
	* 1-3.html: Same.
	* 1.html: Same.
	* 2-1.html: Same.
	* 2-10.html: Same.
	* 2-11.html: Same.
	* 2-2.html: Same.
	* 2-3.html: Same.
	* 2-4.html: Same.
	* 2-5.html: Same.
	* 2-6.html: Same.
	* 2-7.html: Same.
	* 2-8.html: Same.
	* 2-9.html: Same.
	* 2.html: Same.
	* A-1.html: Same.
	* A-2.html: Same.
	* A-3.html: Same.
	* A.html: Same.
	* accumulate.html: Same.
	* acknow.html: Same.
	* adjacent-difference.html: Same.
	* adjacent-find.html: Same.
	* advance.html: Same.
	* algorithm-h.html: Same.
	* algorithms.html: Same.
	* allocator.html: Same.
	* associativecontainers.html: Same.
	* auto-ptr.html: Same.
	* B.html: Same.
	* back-insert-iterator.html: Same.
	* bad-alloc.html: Same.
	* bad-cast.html: Same.
	* bad-exception.html: Same.
	* bad-typeid.html: Same.
	* basic-filebuf.html: Same.
	* basic-fstream.html: Same.
	* basic-ifstream.html: Same.
	* basic-ios.html: Same.
	* basic-iostream.html: Same.
	* basic-istream.html: Same.
	* basic-istringstream.html: Same.
	* basic-ofstream.html: Same.
	* basic-ostream.html: Same.
	* basic-ostringstream.html: Same.
	* basic-streambuf.html: Same.
	* basic-string.html: Same.
	* basic-stringbuf.html: Same.
	* basic-stringstream.html: Same.
	* bidirectionaliterators.html: Same.
	* binary-function.html: Same.
	* binary-negate.html: Same.
	* binary-search.html: Same.
	* bind1st.html: Same.
	* bitmasktypes.html: Same.
	* bitset.html: Same.
	* booktoc.html: Same.
	* cerr.html: Same.
	* char-traits.html: Same.
	* cin.html: Same.
	* clog.html: Same.
	* codecvt-byname.html: Same.
	* codecvt.html: Same.
	* collate.html: Same.
	* compare.html: Same.
	* complex-h.html: Same.
	* complex.html: Same.
	* contact.html: Same.
	* containers.html: Same.
	* copy.html: Same.
	* copyright.html: Same.
	* count.html: Same.
	* cout.html: Same.
	* ctype-byname.html: Same.
	* ctype.html: Same.
	* deque-h.html: Same.
	* deque.html: Same.
	* distance.html: Same.
	* divides.html: Same.
	* domain-error.html: Same.
	* equal-range.html: Same.
	* equal-to.html: Same.
	* equal.html: Same.
	* exception-h.html: Same.
	* exception.html: Same.
	* exceptions.html: Same.
	* facets.html: Same.
	* fill.html: Same.
	* find-end.html: Same.
	* find-first-of.html: Same.
	* find-if.html: Same.
	* find.html: Same.
	* for-each.html: Same.
	* forwarditerators.html: Same.
	* fpos.html: Same.
	* frames-banner.html: Same.
	* frames-classes-alpha.html: Same.
	* frames-classes-func.html: Same.
	* frames-displayarea.html: Same.
	* frames-intro-contents.html: Same.
	* frames-intro-text.html: Same.
	* frames-tindex-contents.html: Same.
	* frames-tindex.html: Same.
	* front-insert-iterator.html: Same.
	* fstream-h.html: Same.
	* functional-h.html: Same.
	* functionobjects.html: Same.
	* functoc.html: Same.
	* generate.html: Same.
	* get-temporary-buffer.html: Same.
	* greater-equal.html: Same.
	* greater.html: Same.
	* gslice-array.html: Same.
	* gslice.html: Same.
	* has-facet.html: Same.
	* heapoperations.html: Same.
	* I.html: Same.
	* II.html: Same.
	* III.html: Same.
	* includes.html: Same.
	* index.html: Same.
	* indirect-array.html: Same.
	* inner-product.html: Same.
	* inplace-merge.html: Same.
	* inputiterators.html: Same.
	* insert-iterator.html: Same.
	* insertiterators.html: Same.
	* invalid-argument.html: Same.
	* iomanip-h.html: Same.
	* ios-base--failure.html: Same.
	* ios-base.html: Same.
	* ios-h.html: Same.
	* iosfwd-h.html: Same.
	* iostream-h.html: Same.
	* isalnum.html: Same.
	* isalpha.html: Same.
	* iscntrl.html: Same.
	* isdigit.html: Same.
	* isgraph.html: Same.
	* islower.html: Same.
	* isprint.html: Same.
	* ispunct.html: Same.
	* isspace.html: Same.
	* istream-h.html: Same.
	* istream-iterator.html: Same.
	* istreambuf-iterator.html: Same.
	* istrstream.html: Same.
	* isupper.html: Same.
	* isxdigit.html: Same.
	* iter-swap.html: Same.
	* iterator-h.html: Same.
	* iterator-traits.html: Same.
	* iterator.html: Same.
	* iterators.html: Same.
	* IV.html: Same.
	* length-error.html: Same.
	* less-equal.html: Same.
	* less.html: Same.
	* lexicographical-compare.html: Same.
	* limits-h.html: Same.
	* list-h.html: Same.
	* list.html: Same.
	* lists.html: Same.
	* locale-h.html: Same.
	* locale.html: Same.
	* localedefutility.html: Same.
	* localeutility.html: Same.
	* logic-error.html: Same.
	* logical-and.html: Same.
	* logical-not.html: Same.
	* logical-or.html: Same.
	* lower-bound.html: Same.
	* make-heap.html: Same.
	* map-h.html: Same.
	* map.html: Same.
	* mask-array.html: Same.
	* max-element.html: Same.
	* max.html: Same.
	* mem-fun.html: Same.
	* memory-h.html: Same.
	* merge.html: Same.
	* messages.html: Same.
	* min-element.html: Same.
	* min.html: Same.
	* minus.html: Same.
	* mismatch.html: Same.
	* modulus.html: Same.
	* money-get.html: Same.
	* money-put.html: Same.
	* moneypunct.html: Same.
	* multimap.html: Same.
	* multiplies.html: Same.
	* multiset.html: Same.
	* negate.html: Same.
	* negators.html: Same.
	* new-h.html: Same.
	* next-permutation.html: Same.
	* noframes.html: Same.
	* not-equal-to.html: Same.
	* not1.html: Same.
	* not2.html: Same.
	* nth-element.html: Same.
	* num-get.html: Same.
	* num-put.html: Same.
	* numeric-h.html: Same.
	* numeric-limits.html: Same.
	* numpunct.html: Same.
	* operatordelete.html: Same.
	* operatornew.html: Same.
	* operators.html: Same.
	* ostream-h.html: Same.
	* ostream-iterator.html: Same.
	* ostreambuf-iterator.html: Same.
	* ostrstream.html: Same.
	* out-of-range.html: Same.
	* outputiterators.html: Same.
	* overflow-error.html: Same.
	* pair.html: Same.
	* partial-sort-copy.html: Same.
	* partial-sort.html: Same.
	* partial-sum.html: Same.
	* partition.html: Same.
	* plus.html: Same.
	* pointer-to-binary-function.html: Same.
	* pointer-to-unary-function.html: Same.
	* pop-heap.html: Same.
	* predicates.html: Same.
	* prev-permutation.html: Same.
	* priority-queue.html: Same.
	* ptr-fun.html: Same.
	* push-heap.html: Same.
	* queue-h.html: Same.
	* queue.html: Same.
	* random-shuffle.html: Same.
	* randomaccessiterators.html: Same.
	* range-error.html: Same.
	* raw-storage-iterator.html: Same.
	* remove-copy-if.html: Same.
	* remove-copy.html: Same.
	* remove-if.html: Same.
	* remove.html: Same.
	* replace-copy-if.html: Same.
	* replace-copy.html: Same.
	* replace-if.html: Same.
	* replace.html: Same.
	* return-temporary-buffer.html: Same.
	* reverse-copy.html: Same.
	* reverse-iterator.html: Same.
	* reverse.html: Same.
	* rotate.html: Same.
	* runtime-error.html: Same.
	* search.html: Same.
	* sequences.html: Same.
	* set-difference.html: Same.
	* set-h.html: Same.
	* set-intersection.html: Same.
	* set-symmetric-difference.html: Same.
	* set-union.html: Same.
	* set.html: Same.
	* slice-array.html: Same.
	* slice.html: Same.
	* sort-heap.html: Same.
	* sort.html: Same.
	* sstream-h.html: Same.
	* stable-partition.html: Same.
	* stable-sort.html: Same.
	* stack-h.html: Same.
	* stack.html: Same.
	* stdexcept-h.html: Same.
	* streambuf-h.html: Same.
	* streamiterators.html: Same.
	* string-h.html: Same.
	* string.html: Same.
	* strstream-h.html: Same.
	* strstream.html: Same.
	* strstreambuf.html: Same.
	* swap-ranges.html: Same.
	* swap.html: Same.
	* time-get-byname.html: Same.
	* time-get.html: Same.
	* time-put-byname.html: Same.
	* time-put.html: Same.
	* tindex.html: Same.
	* tolower.html: Same.
	* toupper.html: Same.
	* transform.html: Same.
	* typeinfo-h.html: Same.
	* unary-function.html: Same.
	* unary-negate.html: Same.
	* underflow-error.html: Same.
	* uninitialized-copy.html: Same.
	* uninitialized-fill-n.html: Same.
	* uninitialized-fill.html: Same.
	* unique.html: Same.
	* upper-bound.html: Same.
	* use-facet.html: Same.
	* utility-h.html: Same.
	* valarray-h.html: Same.
	* valarray.html: Same.
	* vector-h.html: Same.
	* vector.html: Same.
	* wcerr.html: Same.
	* wcin.html: Same.
	* wclog.html: Same.
	* wcout.html: Same.
	* wstring.html: Same.

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

	* 21.string.cons.cpp (test_cons): Used argument of the appropriate
	type to silence HP aCC pedantic Warning (suggestion) 887: Type 'int'
	is smaller than type 'unsigned long', unwanted widening in value may
	result.

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

	* _messages.h (do_open, do_close): Outlined virtual functions
	to avoid code bloat due to compiler emitting their definition
	in every object file where the class is used.
	* _messages.cc: Same.

2007-09-18 Farid Zaripov <Farid_Zaripov@epam.com>

	* _mutex.h: Use #pragma intrinsic only on MSVC
	(ICC doesn't support this #pragma).
	Use _InterlockedIncrement16() and _InterlockedDecrement16()
	intrinsic functions only on MSVC (ICC doesn't support them).

2007-09-18 Farid Zaripov <Farid_Zaripov@epam.com>

	* rw_streambuf.h: Removed 'Unknown' enum member as unused and
	conflicting with Windows API enumerator.

2007-09-18 Farid Zaripov <Farid_Zaripov@epam.com>

	* gencat.cpp [_WIN32] (main): Added checking VS90COMNTOOLS
	environment variable (get ready to use with MSVC 9.0 Orcas).

2007-09-18 Farid Zaripov <Farid_Zaripov@epam.com>

	* exec.cpp [_WIN32]: Added STATUS_INVALID_CRUNTIME_PARAMETER
	to the nt_status_map (detected on x64 Windows).

2007-09-18 Farid Zaripov <Farid_Zaripov@epam.com>

	* 20.temp.buffer.cpp (run_test): Use _RWSTD_LONG_MAX instead
	of _RWSTD_PTRDIFF_MAX because BigStruct parametrized by
	unsigned long type and sizeof (_RWSTD_PTRDIFF_T) can be
	greater that sizeof (unsigned long).

2007-09-18 Farid Zaripov <Farid_Zaripov@epam.com>

	* 22.locale.stdcxx-554.cpp: Removed dependency on rwtest library.

2007-09-18 Farid Zaripov <Farid_Zaripov@epam.com>

	* _messages.h (__rw_cat_open): Declare fnuction as _RWSTD_EXPORT.
	* _messages.h (__rw_get_message): Ditto.
	* _messages.h (__rw_get_locale): Ditto.
	* _messages.h (__rw_cat_close): Ditto.
	* messages.cpp (__rw_cat_open): Ditto.
	* messages.cpp (__rw_get_message): Ditto.
	* messages.cpp (__rw_get_locale): Ditto.
	* messages.cpp (__rw_cat_close): Ditto.

2007-09-18 Farid Zaripov <Farid_Zaripov@epam.com>

	* messages.cpp (__rw_cat_open): Use _RWSTD_MT_CLASS_GUARD instead of
	_RWSTD_MT_STATIC_GUARD to synchronize access to global repository
	of open	catalogs.
	(__rw_get_message): Ditto.
	(__rw_get_locale): Ditto.
	(__rw_cat_close): Ditto.

2007-09-17  Travis Vitek  <vitek@roguewave.com>

	STDCXX-560
	* WCTYPE_T.cpp: Added ASL header.
	* BAD_EXCEPTION_DEFAULT_CTOR.cpp: Same.
	* EXTERN_TEMPLATE.cpp: Same.
	* TYPE_INFO_INEQUALITY.cpp: Same.
	* NEW_HEADER.cpp: Same.
	* implicit_inclusion_imp.c: Same.
	* WCTRANS_T.cpp: Same.
	* STD_TYPE_INFO.cpp: Same.
	* LIB_EXCEPTIONS.cpp: Same.
	* TEMPLATE_ON_RETURN_TYPE.cpp: Same.
	* implicit_inclusion_imp.h: Same.
	* STD_NOTHROW.cpp: Same.
	* OPERATOR_DELETE_ARRAY.cpp: Same.
	* collapse_static_locals.lib.cpp: Same.
	* EXPLICIT_MEMBER_INSTANTIATION.cpp: Same.
	* SETRLIMIT.cpp: Same.
	* IMPLICIT_INSTANTIATION.cpp: Same.
	* NEW_CLASS_TEMPLATE_SYNTAX.cpp: Same.
	* RUNTIME_IN_STD.cpp: Same.
	* GLOBAL_BAD_TYPEID.cpp: Same.
	* BAD_EXCEPTION_COPY_CTOR.cpp: Same.
	* EXCEPTION_ASSIGNMENT.cpp: Same.
	* proclimits.h: Same.
	* BAD_ALLOC_DEFAULT_CTOR.cpp: Same.
	* TYPE_INFO_NAME.cpp: Same.
	* instantiation_with_implicit_inclusion.c: Same.
	* IMPLICIT_INCLUSION.cpp: Same.
	* HONOR_STD.cpp: Same.
	* collapse_template_locals.lib.cpp: Same.
	* EXTERN_C_COMPATIBILITY.cpp: Same.
	* NEWLINE.cpp: Same.
	* SIG_ATOMIC_T.cpp: Same.
	* instantiation_with_implicit_inclusion.h: Same.
	* LCONV_INT_FMAT.cpp: Same.
	* FRIEND_TEMPLATE.cpp: Same.
	* headers.inc: Same.
	* EXTERN_INLINE.cpp: Same.
	* NL_TYPES_H.cpp: Same.
	* NONDEDUCED_CONTEXT.cpp: Same.
	* LONG_LONG.cpp: Same.
	* STD_BAD_EXCEPTION.cpp: Same.
	* EXCEPTION_COPY_CTOR.cpp: Same.
	* GLOBAL_NOTHROW.cpp: Same.
	* TYPENAME.cpp: Same.
	* STRUCT_TM.cpp: Same.
	* STATIC_CONST_MEMBER_EXPR_CONST.cpp: Same.
	* VSNPRINTF_RETURN.cpp: Same.
	* NONCLASS_ARROW_RETURN.cpp: Same.
	* DEPRECATED_LIBC_IN_STD.cpp: Same.
	* DYNAMIC_CAST.cpp: Same.
	* BAD_TYPEID_DEFAULT_CTOR.cpp: Same.
	* EMPTY_MEM_INITIALIZER.cpp: Same.
	* WCSFTIME_WCHAR_T_FMAT.cpp: Same.
	* instantiation_with_implicit_inclusion.cc: Same.
	* DIV_OVERLOADS.cpp: Same.
	* DEPENDENT_TEMPLATE.cpp: Same.
	* STD_TERMINATE.cpp: Same.
	* NO_SIGNALING_NAN.cpp: Same.
	* POD_ZERO_INIT.cpp: Same.
	* NEW_FUNC_TEMPLATE_SYNTAX.cpp: Same.
	* FLOAT.cpp: Same.
	* OPERATOR_DELETE_PLACEMENT.cpp: Same.
	* LOCALE_NAME_FMAT.cpp: Same.
	* STD_UNCAUGHT_EXCEPTION.cpp: Same.
	* MATH_OVERLOADS.cpp: Same.
	* STATIC_CONST_MEMBER_INIT.cpp: Same.
	* LIBC_IN_STD.cpp: Same.
	* EXPLICIT_ARG.cpp: Same.
	* extern_template_imp.h: Same.
	* PART_SPEC_OVERLOAD.cpp: Same.
	* SETLOCALE.cpp: Same.
	* STD_SET_TERMINATE.cpp: Same.
	* instantiation_before_definition.c: Same.
	* GLOBAL_BAD_CAST.cpp: Same.
	* EXCEPTIONS.cpp: Same.
	* EXCEPTION_WHAT.cpp: Same.
	* MBSTATE_T.cpp: Same.
	* instantiation_before_definition.h: Same.
	* BAD_TYPEID_COPY_CTOR.cpp: Same.
	* NL_LANGINFO.cpp: Same.
	* DUMMY_DEFAULT_ARG.cpp: Same.
	* STATICS_IN_TEMPLATE.cpp: Same.
	* NAMESPACE.cpp: Same.
	* STATIC_TEMPLATE_MEMBER_INIT.cpp: Same.
	* MEMBER_TEMPLATE_OVERLOAD.cpp: Same.
	* OPERATOR_DELETE_NOTHROW.cpp: Same.
	* GLOBAL_SET_UNEXPECTED.cpp: Same.
	* OVERLOAD_OF_TEMPLATE_FUNCTION.cpp: Same.
	* STATIC_CAST.cpp: Same.
	* VA_LIST.cpp: Same.
	* TLS.cpp: Same.
	* OPERATOR_DELETE_ARRAY_PLACEMENT.cpp: Same.
	* INSTANTIATE_DEFAULT_ARGS.cpp: Same.
	* STD_BAD_CAST.cpp: Same.
	* OFFSETOF.cpp: Same.
	* thread.h: Same.
	* GLOBAL_EXCEPTION.cpp: Same.
	* GLOBAL_BAD_ALLOC.cpp: Same.
	* EXPLICIT.cpp: Same.
	* EXPORT.cpp: Same.
	* BAD_CAST_WHAT.cpp: Same.
	* TYPE_INFO_DTOR.cpp: Same.
	* EXCEPTION_DTOR.cpp: Same.
	* BAD_EXCEPTION_WHAT.cpp: Same.
	* WCHAR_T.cpp: Same.
	* locale_names.h: Same.
	* INFINITY.cpp: Same.
	* PLACEMENT_DELETE.cpp: Same.
	* TIMEZONE.cpp: Same.
	* DEFAULT_TEMPLATE_ARGS.cpp: Same.
	* OPERATOR_NEW_PLACEMENT.cpp: Same.
	* STD_MBSTATE_T.cpp: Same.
	* NATIVE_WCHAR_T.cpp: Same.
	* MUNMAP.cpp: Same.
	* UNISTD_DECL.cpp: Same.
	* EXCEPTION_SPECIFICATION.cpp: Same.
	* GLOBAL_NOTHROW_T.cpp: Same.
	* EXTERN_FUNCTION_TEMPLATE.cpp: Same.
	* UNAME.cpp: Same.
	* EXPLICIT_MEMBER_SPECIALIZATION.cpp: Same.
	* SPECIALIZATION_ON_RETURN_TYPE.cpp: Same.
	* TEMPLATE_DEFAULT_ARG_CONVERSION.cpp: Same.
	* ICONV.cpp: Same.
	* STD_UNEXPECTED.cpp: Same.
	* TYPE_INFO_BEFORE.cpp: Same.
	* EXPLICIT_INSTANTIATION_BEFORE_DEFINITION.cpp: Same.
	* LCONV.cpp: Same.
	* BAD_CAST_COPY_CTOR.cpp: Same.
	* BAD_ALLOC_WHAT.cpp: Same.
	* EXPLICIT_INSTANTIATION.cpp: Same.
	* EXPORT_KEYWORD.cpp: Same.
	* COLLAPSE_TEMPLATE_STATICS.cpp: Same.
	* EXTERN_MEMBER_TEMPLATE.cpp: Same.
	* BAD_CAST_DTOR.cpp: Same.
	* COLLAPSE_TEMPLATE_LOCALS.cpp: Same.
	* CLASS_PARTIAL_SPEC.cpp: Same.
	* BAD_EXCEPTION_DTOR.cpp: Same.
	* PTR_EXCEPTION_SPEC.cpp: Same.
	* SIZE_T.cpp: Same.
	* NEW_THROWS.cpp: Same.
	* extern_template_before_definition_imp.cpp: Same.
	* CONST_CAST.cpp: Same.
	* NO_DBL_TRAPS.cpp: Same.
	* THREAD_SAFE_EXCEPTIONS.cpp: Same.
	* MATH_EXCEPTION.cpp: Same.
	* THREAD_SAFE_ERRNO.cpp: Same.
	* STD_SET_NEW_HANDLER.cpp: Same.
	* GLOBAL_UNCAUGHT_EXCEPTION.cpp: Same.
	* GLOBAL_TYPE_INFO.cpp: Same.
	* EXPLICIT_CTOR_INSTANTIATION.cpp: Same.
	* REINTERPRET_CAST.cpp: Same.
	* STD_BAD_TYPEID.cpp: Same.
	* FUNC_PARTIAL_SPEC.cpp: Same.
	* BAD_ALLOC_COPY_CTOR.cpp: Same.
	* instantiation_before_definition.cc: Same.
	* OPERATOR_NEW_ARRAY_NOTHROW.cpp: Same.
	* QUIET_NAN.cpp: Same.
	* SPECIALIZED_FRIEND.cpp: Same.
	* BAD_TYPEID_WHAT.cpp: Same.
	* BAD_ALLOC_DTOR.cpp: Same.
	* BAD_CAST_ASSIGNMENT.cpp: Same.
	* EXTERN_TEMPLATE_BEFORE_DEFINITION.cpp: Same.
	* BAD_EXCEPTION_ASSIGNMENT.cpp: Same.
	* collapse_template_statics.lib.cpp: Same.
	* FUNCTION_TRY_BLOCK.cpp: Same.
	* NO_INT_TRAPS.cpp: Same.
	* LIBC_EXCEPTION_SPEC.cpp: Same.
	* EXTERN_C_OVERLOAD.cpp: Same.
	* OPERATOR_NEW_ARRAY.cpp: Same.
	* EXCEPTION_SPECIFICATION_ON_NEW.cpp: Same.
	* DAYLIGHT.cpp: Same.
	* COLLAPSE_STATIC_LOCALS.cpp: Same.
	* STD_EXCEPTION.cpp: Same.
	* TYPE_INFO_EQUALITY.cpp: Same.
	* types.h: Same.
	* CV_VOID_SPECIALIZATIONS.cpp: Same.
	* STD_BAD_ALLOC.cpp: Same.
	* LDBL_PRINTF_PREFIX.cpp: Same.
	* GLOBAL_SET_NEW_HANDLER.cpp: Same.
	* ABS_OVERLOADS.cpp: Same.
	* GLOBAL_BAD_EXCEPTION.cpp: Same.
	* OPERATOR_NEW_NOTHROW.cpp: Same.
	* PUTENV_CONST_CHAR.cpp: Same.
	* THREAD_SAFE_LOCALE.cpp: Same.
	* NO_FOR_LOCAL_SCOPE.cpp: Same.
	* MEMBER_TEMPLATES.cpp: Same.
	* BAD_ALLOC_ASSIGNMENT.cpp: Same.
	* LONG_DOUBLE.cpp: Same.
	* EXCEPTION_DEFAULT_CTOR.cpp: Same.
	* FPOS_T.cpp: Same.
	* OPERATOR_NEW_ARRAY_PLACEMENT.cpp: Same.
	* FUNC.cpp: Same.
	* BAD_TYPEID_DTOR.cpp: Same.
	* PRETTY_FUNCTION.cpp: Same.
	* STD_NOTHROW_T.cpp: Same.
	* EXPLICIT_FUNC_INSTANTIATION.cpp: Same.
	* LIMITS.cpp: Same.
	* WINT_T.cpp: Same.
	* CTYPE_BITS.cpp: Same.
	* STRUCT_TM_IN_WCHAR_H.cpp: Same.
	* extern_template_imp.cpp: Same.
	* implicit_inclusion_imp.cc: Same.
	* GLOBAL_TERMINATE.cpp: Same.
	* extern_inline.lib.cpp: Same.
	* EXTERN_C_EXCEPTIONS.cpp: Same.
	* LLONG_PRINTF_PREFIX.cpp: Same.
	* extern_function_template_imp.cpp: Same.
	* lib_exceptions.lib.cpp: Same.
	* ICONV_CONST_CHAR.cpp: Same.
	* INLINE_MEMBER_TEMPLATES.cpp: Same.
	* GLOBAL_SET_TERMINATE.cpp: Same.
	* GLOBAL_UNEXPECTED.cpp: Same.
	* NESTED_CLASS_ACCESS.cpp: Same.
	* STD_SET_UNEXPECTED.cpp: Same.
	* OPERATOR_DELETE_ARRAY_NOTHROW.cpp: Same.
	* BOOL.cpp: Same.
	* BAD_CAST_DEFAULT_CTOR.cpp: Same.
	* BAD_TYPEID_ASSIGNMENT.cpp: Same.
	* ATOMIC_OPS.cpp: Same.
	* EXPLICIT_INSTANTIATION_WITH_IMPLICIT_INCLUSION.cpp: Same.
	* fun_present_check.cpp: Same.

2007-09-17  Travis Vitek  <vitek@roguewave.com>

	STDCXX-560
	* eccp.config: Added ASL header.

2007-09-17  Travis Vitek  <vitek@roguewave.com>

	STDCXX-560
	* configure.sh: Added ASL header.
	* reliant_cds.config: Same.
	* mipspro.config: Same.
	* gcc.config: Same.
	* como.config: Same.
	* icc.config: Same.
	* xlC_version.sh: Same.
	* runall.sh: Same.
	* run_locale_utils.sh: Same.
	* osf_cxx.config: Same.
	* vacpp.config: Same.

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

	STDCXX-20
	* MADVISE.cpp: New config test to determine whether the system call
	madvise() is supported.

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

	* LIMITS.cpp [_RWSTD_NO_LIMITS_H] (<limits.h>): Guarded the #include
	directive introduced in revision 575978 to prevent EDG eccp errors
	on Linux caused by the header making use of the #include_next gcc
	extension.

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

	STDCXX-547
	* locale_core.cpp (_C_get_std_facet): Used a safe cast to silence
	a Sun C++ 64-bit conversion warning.

2007-09-17  Travis Vitek  <vitek@roguewave.com>

	* 18.limits.stdcxx-436.cpp: Regression test exercising STDCXX-436.

2007-09-17 Farid Zaripov <Farid_Zaripov@epam.com>

	* msvc-7.0.config: Comments extended with information on MSVC 9.0
	(Orcas).
	* msvc-9.0.config: New config file for MSVC 9.0.
	* msvc-9.0-x64.config: New config file for MSVC 9.0 x64 platform.

2007-09-17 Farid Zaripov <Farid_Zaripov@epam.com>

	* build.wsf (BuildProject): Log all available project properties
	if project.UniqueName is inaccessible.

2007-09-17 Farid Zaripov <Farid_Zaripov@epam.com>

	* catalog.cpp (__catfind): Fixed undefined behavior
	when __rw_catlist vector is full and id is not valid.

2007-09-13 Travis Vitek <vitek@roguewave.com>

	STDCXX-436
	* LIMITS.cpp [_WIN32] (main): Include limits.h to get definition
	of MB_LEN_MAX so that we don't have to guess the correct value.
	If we must guess a default on _WIN32, use a known good value.

2007-09-14 Farid Zaripov <Farid_Zaripov@epam.com>

	* 22.locale.messages.cpp: Removed unnecessary #includes.
	* 22.locale.messages.mt.cpp: Ditto.
	Removed generate_catalog() function.
	Used rw_create_catalog() istead of generate_catalog().

2007-09-14 Farid Zaripov <Farid_Zaripov@epam.com>

	* runall.cpp (main): Pass buf to strchr() call instead of target
	(we need char* result instead of const char*).

2007-09-14 Farid Zaripov <Farid_Zaripov@epam.com>

	* 22.locale.stdcxx-554.cpp: Added a regression test for STDCXX-554.

2007-09-14 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-554
	* _messages.h (messages): Removed explicit invoking of the
	messages_base() ctor
	to avoid buffer overrun due to bad code generation on MSVC 7.1.
	* _moneypunct.h (moneypunct): Removed explicit invoking of the
	money_base() ctor
	to avoid buffer overrun due to bad code generation on MSVC 7.1.

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

	STDCXX-418
	* basic-filebuf.html: Documented the fd() member function.

2007-09-13 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-543
	* runall.cpp (main): Added ability to pass list of the targets
	using the text file.
	* cmdopt.cpp: Updated usage_text with description of the
	changes above.
	* runall.wsf (runAllExamples): Pass targets using text file
	rather than using command line if the resulting command line
	length would exceed the maximum value.

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

	* memattr.cpp (EFAULT): #defined macro when not #defined in system
	headers. Needed by EDG eccp on Linux.
	[Linux] (__USE_BSD): #defined macro when not already #defined to
	bring in declarations of caddr_t, madvise(), and MADV_WILLNEED.
	Also needed by EDG eccp on Linux.

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

	STDCXX-394
	* FLOAT.cpp [__EDG__ && !__INTEL_COMPILER] (__FLT_DIG__,
	__FLT_EPSILON__, etc.) #defined gcc 4 intrinsics otherwise
	not recognized by the EDG eccp 3.9 (and prior) vanilla front
	end.

2007-03-14  Farid Zaripov  <Farid_Zaripov@epam.com>

	* 23.associative.stdcxx-16.cpp: Added Farid's regression test
	for STDCXX-16.

2007-09-12  Travis Vitek  <vitek@roguewave.com>

	* 24.operations.stdcxx-234.cpp: change to get regression
	test to correctly compile on gcc and msvc.

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

	STDCXX-545
	* vector (vector<bool>::_C_iter): Explicitly defined a copy ctor
	for the nested class to work around a Sun C++ optimizer (ube) ICE
	on x86_64.

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

	* _localedef.h (__rw_codecvt_t, __rw_ctype_t, __rw_itoutf8,
	__rw_utf8toucs4,  __rw_mbtowco): Used _RWSTD_UINT8_T instead of plain
	unsigned char to make the expected width of the data type explicit and
	for consistency with the other data types.

2007-09-12 Farid Zaripov <Farid_Zaripov@epam.com>

	* build.wsf (build): Select proper Intel compiler if
	more than one has installed.
	* projectdef.js (InitVSObjects): Get through all installed
	intel compilers when detecting path to the ICProjConvertxx
	utility.
	* utilities.js: Added config variable ICCVER (version of the
	Interl C++ compiler).
	* msvc-7.0.config: Ditto.
	* icc-9.0.config: Ditto.
	* icc-9.1.config: Ditto.
	* icc-10.0.config: Ditto.
	* icc-10.0-x64.config: Ditto.
	* icc-9.1-x64.config: New configuration file for
	64-bit Intel 9.1 compiler.

2007-09-12 Farid Zaripov <Farid_Zaripov@epam.com>

	* generate.bat: New batch file which just invokes
	configure.bat to preserve the user interface to the
	library. This file is deprecated and will be
	removed in 4.3 release.

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

	STDCXX-549
	* sunpro.config (CCVER): Removed unnecessary backslashes accepted
	on Solaris from a sed expression to prevent incorrect behavior on
	Linux.

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

	STDCXX-547	
	* num_get.cpp (__rw_get_stdio_fmat): Changed the type of the last
	argument so std::streamsize to make it possible to pass in and
	correctly handle 64-bit values and to aid in silencing 64-bit
	conversion warnings at the call site. (Missed this in r574422).

2007-09-07  Mark Brown  <mbrown@inbox.com>

	STDCXX-493
	* string (append): Replaced calls to replace() with calls to append()
	to improve performance.

2007-09-11 Farid Zaripov <Farid_Zaripov@epam.com>

	* build.wsf: Added optional parameter TOPDIR. Replace build
	dir path and src dir path in logs to $(BUILDDIR) and $(TOPDIR)
	respectively.
	(removeLogClutter): New function to remove clutters from build log.
	* generate.wsf (generateBuildBatch): Pass /TOPDIR parameter to
	build.wsf script.

2007-09-11 Farid Zaripov <Farid_Zaripov@epam.com>

	* configure.wsf (configure): Specify exactly one library
	in /NODEFAULTLIB parameter of the linker.
	* projectdef.js (projectCreateVCProject): The same.

2007-09-11 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-517
	* README: Fixed a typo.

2007-09-11 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-516
	* generate.bat: File renamed ...
	* configure.bat: ... to this.
	* README: "generate.bat" text replaced by "configure.bat".

2007-09-11 Farid Zaripov <Farid_Zaripov@epam.com>

	* generate.wsf (readAndCheckArguments): Removed assigning
	of the outDir variable to srcDir value.

2007-09-11 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-517
	* generate.wsf: Detect values for CONFIG and BUILDDIR
	parameters if they are not specified in command line.
	* projectdef.js (InitVSObjects): return value indicating
	the success or failure of the initialization.
	* utilities.js (getCompilerOpts): Set variables to initial
	state before parsing .config file.
	* README: Updated text on CONFIG and BUILDDIR parameters of
	the generate.bat script.

2007-09-11 Farid Zaripov <Farid_Zaripov@epam.com>

	* msvc-7.0.config: Fixed descriptive comment of
	VERSION variable.

2007-09-11 Farid Zaripov <Farid_Zaripov@epam.com>

	* codecvt1.cpp (main): Added output of the error message
	in case of exception caught.

2007-09-11 Farid Zaripov <Farid_Zaripov@epam.com>

	* projectsdef.js (projectCreateVCProject): Set optimization by speed
	instead of optimization by size in release builds.

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

	STDCXX-547
	* num_get.cpp (__rw_get_num): Cast a wider type to a narrower one
	to silence Sun C++ 64-bit conversion warnings.
	* num_put.cpp (__rw_get_stdio_fmat): Changed the type of the last
	argument so std::streamsize to make it possible to pass in and
	correctly handle 64-bit values and to aid in silencing 64-bit
	conversion warnings at the call site.
	* punct.cpp (__rw_get_stdio_fmat): Same. Used the %ld formatting
	directive and cast streamsize argument to long before passing it
	to sprintf.

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

	* utilities.js (expandSysMacro): New function to expand
	system macros in string.
	(parseConfig): Expand system macros in config variables.

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

	* projectdef.js (projectCreateVCProject): Enable using of the
	intrinsic functions in release builds.

2007-09-07 Travis Vitek <vitek@roguewave.com>

	STDCXX-436
	* limits.h (MB_LEN_MAX): Redefine MB_LEN_MAX if the current
	value is different from the configured value.
	* climits (MB_LEN_MAX): Ditto.

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

	* src/atomic.asm: New file to define __rw_atomicxxx() functions.
	* i86/atomic.asm: File renamed ...
	* i86/atomic.inc: ... to this.
	* i86_64/atomic.asm: File renamed ...
	* i86_64/atomic.inc: ... to this.
	* projects.js (CreateProjectsDefs): Removed platform dependent files
	array.
	* projectdef.js: InitAsmTool() function moved ...
	* filterdef.js: ... to this. Removed platform dependent files
	processing.

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

	* once.cpp: Moved #pragma's from this file ...
	* export.cpp: ... to this.

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

	* atomic-cxx.S: Updated copyright notice.
	* atomic.s: Ditto.

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

	STDCXX-501
	* acc.config (CXXFLAGS, CPPFLAGS, LDFLAGS): Used -AA and aCC's own
	C library headers by default regardless of platform (i.e., PA-RISC
	as well as IPF), unless -Aa is specified in _CXXOPTS.
	* libc_decl.sh (CXXFLAGS): Appended -I/usr/include only when -Aa
	is specified instead of based on the compiler version.

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

	* stdexcept (invalid_argument, length_error, underflow_error,
	overflow_error, out_of_range): Declared virtual ctors to prevent
	them from being implicitly defined by the compiler (and to reduce
	the size of object files compiled from translation units that
	#include the header). See also change 553643.
	* invalid_argument.cpp: Defined virtual dtor.
	* length_error.cpp: Same.
	* underflow_error.cpp: Same.
	* overflow_error.cpp: Same.
	* out_of_range.cpp: Same.

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

	* _codecvt.h (codecvt, do_always_noconv, do_encoding, do_max_length):
	Outlined codecvt<char, char, mbstate_t> ctor and virtual member
	functions of the codecvt<wchar_t, char, mbstate_t> specialization
	to reduce the size of objects in which these functions end up getting
	emitted by most (all?) compilers.

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

	* projects.js: Added definitions of the platform dependent files.
	* i86/atomic.asm: New file with definitions of the __rw_atomic_xxx()
	functions for Win32 platform.
	* i86_64/atomic.asm: New file with definitions of the
	__rw_atomic_xxx() functions for Windows/x64 platform.
	* _mutex.h: Use new __rw_atomic_xxx() functions if corresponding
	InterlockedXXX() functions are not present.
	[_MSC_VER >= 1400]: Use intrinsic InterlockedXXX() functions
	on MSVC 8 and higher.
	* once.cpp [_WIN32 && _DLL]: Tell linker to export __atomic_xxx()
	functions, defined in .asm files.

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

	* msvc-7.0.config: Added AS config variable.
	* msvc-8.0-x64.config: Ditto.
	* filterdef.js: Added definition of the CustomFileDef class
	(AddFilterFile): Invoke custom init function if current file
	is present in platform dependent file definitions array.
	* projectdef.js (InitAsmTool): New function to init custom build rule
	for .asm files.
	* utilities.js: Read AS configuration variable from the .config file.

2007-09-06  Liviu Nicoara  <nicoara@roguewave.com>

	* rw/_traits.h: added cast to unsigned char
	

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

	* projects.js (CreateProjectsDefs): Added echo path of clvars.bat file
	to see why the system cannot find the path.

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

	* 22.locale.messages.stdcxx-508_542.cpp: File renamed ...
	* 22.locale.messages.stdcxx-542.cpp: ... to this.

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

	* gencat.cpp (main): Resolve ambiguity of overloaded methods.

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

	* build.wsf (BuildProject): Use FullName property instead of FileName
	(to fix problem on ICC).

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

	* 24.operations.stdcxx-234.cpp: Added a regression test for STDCXX-234.

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

	STDCXX-234
	* _iterbase.h (distance): Corrected function signature according
	to the spec.

2007-08-30  Travis Vitek  <vitek@roguewave.com>

	STDCXX-532
	* 22.locale.codecvt.mt.cpp: New test exercising the thread safety
	of the std::codecvt facet.

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

	* build.wsf (event_ProjectBuildFinished): Read text from all
	buildlog.htm
	files, which is present in output window text.
	(BuildProject): Trying to fix "build.wsf(163, 14) (null): Invalid
	pointer "error; rewritten logic on ICC builds.

2008-08-31  Travis Vitek  <vitek@roguewave.com>

	STDCXX-531
	* 22.locale.messages.mt.cpp: New test exercising the thread safety
	of the std::messages facet.

2007-08-28  Travis Vitek  <vitek@roguewave.com>

	STDCXX-413
	* 22.locale.money.get (do_test): move intl param to front of param
	list to avoid modifying many lines of code unnecessarily.
	(test_get): update to support testing international money format,
	add overload to test both local and international money formats.

2007-09-05 Travis Vitek <vitek@roguewave.com>

	STDCXX-542
	* catalog.cpp (catclose): check bounds before index to avoid out of
	bound access.

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

	* 22.locale.messages.stdcxx-508_542.cpp: New regression test
	for STDCXX-508 and STDCXX-542 issues.

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

	* 22.locale.messages.cpp: Removed generate_catalog() function.
	Used rw_create_catalog() istead of generate_catalog().

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

	* rw_locale.h (rw_create_catalog): New function to generate message catalog.
	* locale.cpp (rw_create_catalog): Ditto.

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

	* GNUmakefile.bin: Added gencat target.
	* projects.js (CreateProjectsDefs): Added gencat utility project.
	* gencat.cpp: New utility for generating the message catalogs.

2007-09-4  Travis Vitek  <vitek@roguewave.com>

	STDCXX-511
	* 22.locale.numpunct.mt.cpp (run_test): Fatal assert if unable to
	create at least one locale.
	22.locale.ctype.mt.cpp (run_test): Ditto.

2007-08-28  Travis Vitek  <vitek@roguewave.com>

	STDCXX-528
	* 22.locale.money.get.mt.cpp: New test exercising the thread safety
	of the std::money_get facet. 

2007-09-04 Farid Zaripov <Farid_Zaripov@epam.com>

	* 22.locale.messages.cpp (test_open_close) [_WIN32]: Don't test file
	descriptor leaking because the catalog functions not uses files on Win32.
	(stress_test) [_WIN32]: Removed appending ".dll" because it will be
	appended by Windows by default.

2007-09-04 Farid Zaripov <Farid_Zaripov@epam.com>

	* 22.locale.messages.cpp (test_get): Corrected condition in "for" loop
	to test all messages.

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

	* 27.filebuf.virtuals.stdcxx-522.cpp: Add the real regression
	test for STDCXX-522 (not a symlink to it committed in r570898).

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

	* 27.filebuf.virtuals.stdcxx-522.cpp: Deleted a symlink.

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

	* 27.filebuf.virtuals.stdcxx-522.cpp: Regression test for STDCXX-522.

2007-08-29  Everton Araujo  <everton.basso@gmail.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-522
	* fstream.cc (overflow): Prevented writing junk to file when
	the argument is EOF and the internal buffer is empty.

2007-08-29 Farid Zaripov <Farid_Zaripov@epam.com>

	* msvc-7.0.config: Updated comment on ICCCONVERT variable.
	* icc-10.0.config: Set ICCCONVERT=ICProjConvert100.exe.
	* icc-10.0-x64.config: Ditto.
	* projectdef.js (InitVSObjects): Updated the intel conversion
	utility path detection algorithm.

2007-08-29 Farid Zaripov <Farid_Zaripov@epam.com>

	* _config-icc.h: Corrected warning number.

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

	* 20.specialized.stdcxx-390.cpp: Regression test for STDCXX-390.

2007-08-28 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-515
	* 27.stringbuf.xsputn.stdcxx-515.cpp: New regression test for STDCXX-515.

2007-08-28 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-515
	* sstream.cc (xsputn): Correct write position after growing the buffer.

2007-08-28 Farid Zaripov <Farid_Zaripov@epam.com>

	* _mutex.h [__ia64 || __x86_64]: Define set of __rw_atomic_xxx()
	functions for types _RWSTD_LONG_LONG and unsigned _RWSTD_LONG_LONG.

2007-08-28 Farid Zaripov <Farid_Zaripov@epam.com>

	* ia64/atomic-64.s: Updated copyright notice.
	* ia64/atomic.s: Ditto.
	* parisc/atomic-64.s: Ditto.
	* parisc/atomic.s: Ditto.
	* sparc/atomic-64.s: Ditto.
	* sparc/atomic.s: Ditto.
	* i86/atomic.s: Updated comments.
	* i86_64/atomic.s: Updated copyright notice and comments.

2007-08-28  Travis Vitek  <vitek@roguewave.com>

	* 22.locale.time.get.mt.cpp: New test exercising the thread safety
	of the std::time_get facet. When compiled against the latest trunk
	the test crashes due to what's most likely a library bug that still
	remains to be analyzed.

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

	STDCXX-462
	* money-put.html: Updated example code according to real example.
	* num-get.html: Ditto.
	* time-get.html: Ditto.

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

	STDCXX-538
	* ATOMIC_OPS.cpp: Determine the argument type of InterlockedIncrement()
	only on Win32 platform.

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

	* 23.vector.bool.stdcxx-235.cpp: Regression test for STDCXX-235.

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

	* 21.string.stdcxx-162.cpp: Added a regression test for STDCXX-162.

2007-08-25  Travis Vitek  <vitek@roguewave.com>

	STDCXX-530
	* 22.locale.num.get.mt.cpp: New test exercising the thread safety
	of the std::num_get facet.

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

	STDCXX-475
	* 18.exception.cpp (induce_exception): Moved local classes
	to namespace scope to work around an Intel C++ 10.0 ICE on
	Linux.

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

	STDCXX-344
	* sunpro.config (WARNFLAGS): For Sun C++ 5.7 and beyond, enabled
	diagnostic "tags" in compiler output and used -erroff to silence
	Warning: std::stringstream::rdbuf hides the function std::ios::
	rdbuf(std::streambuf*) and similar.

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

	* NOTICE.txt: Updated year of copyright.

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

	STDCXX-525
	* mipspro.config (LDLIBS): Added libpthread to the list of libraries
	to link with when pthread is in BUILDMODE to make sure it's after
	libstdcxx on the link line.
	(MULTI_LDFLAGS_POSIX): Removed -lpthread (wasn't last on the link
	line).

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

	* README: Changed version to 4.2.0 (pre-release).
	Added Disclaimer to the Index.

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

	* projects.js (CreateProjectsDefs): Set BINDIR env variable before run
	tests (used in rw_locale(), rw_localedef()).

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

	* 21.cwchar.cpp (test_functions) [_MSC_VER]: Prevent invalid parameter
	validation error by setting size to 1.

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

	* 0.char.cpp (test_rw_widen): Added missing parameter in rw_assert().
	(test_rw_narrow): The same.

2007-08-20 Farid Zaripov <Farid_Zaripov@epam.com>

	* dynatype.cpp (copy): applied again changes in r544831 with
	adding comment in source file (the changes prevents error
	"invalid static_cast from type `const dynatype' to type `int'"
	on gcc 3.4.4/Cygwin).

2007-08-20 Farid Zaripov <Farid_Zaripov@epam.com>

	* dynatype.cpp (copy): This change was hasty and fixed in r567733
	(was: reverted unnecessary changes in r544831).

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

	* testdefs.h [Intel C++ 10.0 and prior]: Disabled warning #279:
	controlling expression is constant issued for the commonly used
	statement RW_ASSERT(!"not implemented"). Works around Intel C++
	bug described in STDCXX-487.

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

	* once.h [_WIN32] (_RWSTD_ONCE_INIT): Defined also for Windows.

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

	* once.h (_RWSTD_ONCE_INIT): Defined to PTHREAD_ONCE_INIT.
	[_RWSTD_POSIX_THREADS, _RWSTD_NO_PTHREAD_ONCE] (__rw_once_t,
	_RWSTD_ONCE_INIT): Defined in terms of pthread_mutex_t and
	PTHREAD_MUTEX_INITIALIZER, respectively.
	* once.cpp [_RWSTD_POSIX_THREADS, _RWSTD_NO_PTHREAD_ONCE]
	(__rw_once_t): Defined in terms of pthread_mutex_lock()
	and pthread_mutex_unlock().
	(__rw_once_t): Consistently asserted both preconditions.

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

	STDCXX-523
	* locale_classic.cpp (__rw_classic): New. Namespace-scope buffer
	backing the classic locale object.
	(__rw_classic_once_init): New. One-time initialization flag for
	the classic locale object.
	(__rw_init_classic): New. One-time initialization function for
	the classic locale object.
	(classic): Used __rw_once() to initialize the classic locale
	object.

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

	* 22.locale.statics.mt.cpp: New test exercising the thread safety
	of [lib.locale.statics].

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

	* src/locale.cpp (rw_locales): Fixed up bad formatting introduced
	in r565991.
	* 22.locale.money.put.mt.cpp (thread_func): Ditto.
	* 22.locale.num.put.mt.cpp (put_data): Fixed up indentation and
	formatting. Renamed template parameter for consistency. Added
	a missing template argument.
	(thread_func, run_test): Fixed up formatting.

2007-08-14  Travis Vitek  <vitek@roguewave.com>

	* rw_locale.h (rw_locales): Added new parameter to indicate the
	"C" locale should appear at the front of returned locale list.
	* locale.cpp (rw_locales): Added support for new parameter.
	* testdefs.h: Added convenience macro RW_COUNT_OF that can beused
	to get the number of elements in an array.
	* 22.locale.money.put.mt.cpp (MyIos, MyStreambuf, MyMoneyData):
	Added structures to simplify testing.
	(run_test): Build a table of in/outptus for verification in test
	threads.
	(thread_func): Assert the data written matches expected.
	(main): Add support for --nlocales and --shared-locale command
	line arguments
	* 22.locale.num.put.mt.cpp (MyIos, MyStreambuf, MyNumData): Added
	structures to simplify testing.
	(run_test): Build a table of in/outptus for verification in test
	threads.
	(thread_func): Assert the data written matches expected.
	(main): Add support for --nlocales and --shared-locale command
	line arguments
	* 22.locale.time.put.mt.cpp (run_test, thread_func): Use macro
	RW_COUNT_OF. Remove "C" locale fallback. Eliminate unnecessary
	rdbuf() calls.

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

	* EXTERN_C_EXCEPTIONS.cpp: New config test to determine whether
	it's possible to throw exceptions from functions with C language
	linkage.

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

	* 18.csetjmp.cpp: New test exercising [support.runtime], header
	<csetjmp>, including STDCXX-513.
	* 18.setjmp.cpp: New test exercising [support.runtime], (deprecated)
	header <setjmp.h>.

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

	* GNUmakefile: Added an Apache license header and Rogue Wave
	copyright statement. Shortened pound-comments to not exceed
	72 characters per line.

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

	* GNUmakefile.exm: Added Apache license header and a Rogue Wave
	copyright statement.
	* GNUmakefile.exm: Same.
	* GNUmakefile.cfg: Same.
	* GNUmakefile.lib: Same.
	* GNUmakefile.ph: Same.
	* GNUmakefile.bin: Same.
	* GNUmakefile.tst: Same.
	* GNUmakefile.rwt: Same.
	* makefile.common: Same.
	* makefile.rules: Same.
	(makedep): Replaced a TAB with spaces.

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

	STDCXX-521
	* makefile.rules (makedep): Set the "local" shell variable depflags
	to the value of $(DEPENDLFAGS) when the GNU make $(value) function
	yields the empty string (as a result of GNU make 3.79 bug).

2007-08-13 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-519
	* fmtflags_manip.cpp (fmtflags_manip): Use value
	initialization to workaround MSVC 7.1 bug.

2007-08-13 Farid Zaripov <Farid_Zaripov@epam.com>

	* char.cpp (rw_widen): Don't write after end of dst.

2007-08-13 Farid Zaripov <Farid_Zaripov@epam.com>

	* char.cpp (rw_widen): Don't write after end of dst.

2007-08-13 Farid Zaripov <Farid_Zaripov@epam.com>

	* _defs.h: Quote assert.h and setjmp.h pathnames
	in order to prevent the corresponding macro
	expanding in the #include directive.

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

	* 22.locale.time.put.mt.cpp (thread_func): Fixed up formatting and
	used '\0' and L'\0' in place of char() and wchar_t() for simplicity.
	(run_test): Same. Moved code that can't throw outside a try block.
	Printed out the number of locales in addition to their names.

2007-08-10  Travis Vitek    <vitek@roguewave.com>

	* 22.locale.time.put.mt.cpp (MyIos, MyStreambuf, MyTimeData): Added
	structures to simplify testing.
	(run_test): Build table of in/outputs for verification in test threads.
	(thread_func): Assert that data written matches expected.
	(main): Add command line options for specifying number of locales,
	locale names, and locale usage.

2007-08-12 Farid Zaripov <Farid_Zaripov@epam.com>

	* projectdef.js: Enable RTTI by default.
	* projects.js: Ditto. Disable RTTI for projects
	in NonRTTIProjects array.

2007-08-12 Farid Zaripov <Farid_Zaripov@epam.com>

	* 21.cwchar.cpp: Define long long overloads of get_type_name()
	(fixes compilation problem on MSVC-x64).

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

	* _mutex.h (__rw_atomic_preincrement) [_WIN32]: Cast __x to int& instead of long&
	to use InterlockedIncrement() optimized function instead of generic one using
	critical sections.

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

	* exec.cpp (fttoull) [_WIN32]: New function to convert from
	FILETIME to ULONGLONG.
	(exec_file) [_WIN32]: Get kernel time and user time of the child
	process using GetProcessTimes().
	Map STATUS_FLOAT_STACK_CHECK to SIGSTKFLT signal instead of SIGFPE.

2007-08-10  Farid Zaripov  <faridz@apache.org>

	* num_get.cpp (__rw_ldbl_infinity): Guarded with _RWSTD_NO_LONG_DOUBLE.

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

	STDCXX-509
	* num_get.cpp (__rw_flt_infinity, __rw_dbl_infinity,
	__rw_ldbl_infinity): Declared constants with C language
	linkage as in r564059.

2007-08-09 Farid Zaripov <Farid_Zaripov@epam.com>

	* 27.stringbuf.str.stdcxx-514.cpp: New regression test from STDCXX-514 issue.

2007-08-09 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-514
	* sstream.cc (str): Take ownership of the allocated buffer a bit
	later to avoid deallocation of the external buffer.

2007-08-09 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-513
	* csetjmp: #define setjmp macro if it's not #defined.

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

	STDCXX-509
	* limits (__rw_flt_denorm_min, __rw_flt_infinity, __rw_flt_qNaN,
	__rw_flt_sNaN, __rw_dbl_denorm_min, __rw_dbl_infinity, __rw_dbl_qNaN,
	__rw_dbl_sNaN, __rw_ldbl_denorm_min, __rw_ldbl_infinity, __rw_ldbl_qNaN,
	__rw_ldbl_sNaN): Declared floating point constants with "C" language
	linkage to prevent "clever" compilers such as MSVC from mangling their
	type into their names and to permit them to be defined with different
	types.
	* limits_bits.cpp (__rw_flt_denorm_min, __rw_flt_infinity,
	__rw_flt_qNaN, __rw_flt_sNaN, __rw_dbl_denorm_min, __rw_dbl_infinity,
	__rw_dbl_qNaN, __rw_dbl_sNaN, __rw_ldbl_denorm_min, __rw_ldbl_infinity,
	__rw_ldbl_qNaN, __rw_ldbl_sNaN): Defined as statically (i.e., at load
	time as opposed to dynamically, at runtime) initialized unions, backed
	by the appropriate byte patterns, with "C" language linkage to permit
	the defintions to have a different type than the declarations.
	(__rw_flt_denorm_min_bits, __rw_flt_infinity_bits, __rw_flt_qNaN_bits,
	__rw_flt_sNaN_bits, __rw_dbl_denorm_min_bits, __rw_dbl_infinity_bits,
	__rw_dbl_qNaN_bits, __rw_dbl_sNaN_bits, __rw_ldbl_denorm_min_bits,
	__rw_ldbl_infinity_bits, __rw_ldbl_qNaN_bits,  __rw_ldbl_sNaN_bits):
	Removed.

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

	* cmdopt.cpp [_WIN32]: Set TICKS_PER_SEC = CLOCKS_PER_SEC.
	* exec.cpp [_WIN32]: Added mappings of the STATUS_STACK_BUFFER_OVERRUN.
	Translate wall time value from 100ns units to clocks.

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

	* exec.cpp [_WIN32]: Added mappings of the STATUS_STACK_OVERFLOW and
	STATUS_INVALID_PARAMETER.

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

	* 18.limits.cvqual.cpp (test_limits): Exercised quiet NAN.

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

	* limits (_RWSTD_FLT_SNAN, _RWSTD_DBL_SNAN, _RWSTD_LDBL_SNAN):
	Removed macro vestiges.
	(__rw_flt_sNaN, __rw_dbl_sNaN, __rw_ldbl_sNaN): Declared
	unconditionally.

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

	* limits (_RWSTD_FLT_INFINITY, _RWSTD_FLT_QNAN, _RWSTD_FLT_SNAN,
	_RWSTD_FLT_DENORM_MIN): Removed macro definitions and replaced
	their uses with the actual symbols).
	(_RWSTD_DBL_INFINITY, _RWSTD_DBL_QNAN, _RWSTD_DBL_SNAN,
	_RWSTD_DBL_DENORM_MIN, _RWSTD_LDBL_INFINITY, _RWSTD_LDBL_QNAN,
	_RWSTD_LDBL_SNAN, _RWSTD_LDBL_DENORM_MIN): Same.

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

	* graph.cpp: Simplified in an (unsuccessful) effort to eliminate
	gcc -Winline warnings.
	(stringVector, graph): Used default template arguments for similicity
	and renamed to Distances and Cities, respectively.
	(main): Moved global variables into local scope, changing strings to
	const char arrays for simplicity and efficiency. Replaced std::endl
	with '\n' for efficiency.

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

	* dynatype.cpp (get): Outlined to silence gcc -Winline warnings.
	(dynatype, operator=): Same.

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

	* once.h: New implementation-private header. Declares __rw_once_t
	and __rw_once() for portable, thread-safe one-time initialization.
	* once.cpp: New. Defines the above.

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

	* 23.vector.allocator.cpp: New test exercising the ability of vector
	to be instantiated on a user-defined Allocator with a user-defined
	pointer type.

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

	* vector.cc (__rw_insert_range): Used predecrement even with pointers
	instead of preincrement for efficiency when pointer is a user-defined
	type.

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

	* runall.wsf (runAllExamples): Removed quotes around exec.exe. Lowered timeout to 100 ms.

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

	* projects.js (CreateProjectsDefs): Fixed bug with deleting original
	rwtest.dll when solution was generated with /COPYDLL:yes.

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

	STDCXX-510
	* locale.cpp (rw_opt_setlocales): Added option help.

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

	* ChangeLog: Updated, keeping original TABs.

2007-08-03  Mark Brown  <mark.g.brown@gmail.com>
	    Farid Zaripov  <faridz@apache.org>

	STDCXX-491
	* string (push_back): Moved definition outside the basic_string class
	template and optimized so as to call append() only when reallocation
	is necessary.

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

	* cmdopt.cpp (parse_limit_opts): Silenced silly MSVC "performance"
	warnings about converting int to bool.

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

	* util.cpp (DEV_NULL): Defined macro.
	(input_name): Used it.

2007-08-03 Farid Zaripov <Farid_Zaripov@epam.com>

	* runall.wsf (runAllExamples): Run command using cmd.exe with
	redirecting stderr to stdout to avoid deadlocks.

2007-08-02  Andrew Black  <ablack@roguewave.com>

	* exec.cpp [_WIN32] (exec_file): Fix incorrect variable name in
	conditionally compiled code, introduced in http://svn.apache.org/viewvc?view=rev&rev=562224

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

	* display.h (print_footer): Added an argument for the total number
	of programs processed by the utility.
	* display.cpp (print_target_verbose): Print stdin, stdout, and stderr
	redirectiopn.
	(print_status_verbose): Justified output.
	(print_footer_plain): Printed the total number of programs processed
	by the utility and avoided printing assertion totals unless they're
	valid.
	(print_footer_verbose): Added an argument.
	* target.h (target_opts): Added infname and outfname members.
	* util.h (input_name): Declared.
	* util.cpp (input_name): Defined to parallel output_name().
	* exec.cpp (open_input): Removed.
	(exec_file): Used target_opts::infname and target_opts::outfname.
	* runall.cpp (run_target): Called input_name() and output_name()
	to set the names of files to redirect input and output from and
	to, respectively.
	Avoided printing out assertion totals when they're not valid.

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

	* 22.locale.messages.cpp (test_open_close): Use default locale if loc_name==0.
	(test_get): The same.

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

	* makefile.rules: Removed double exporting of the TMP variable.
	* projects.js: Set TOPDIR env variable before running tests.

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

	* locale.cpp (rw_locales): On error return "C\0" instead of 0.
	[_MSC_VER]: Use _free_dbg() instead of free().

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

	* GNUmakefile.exm: Set TZ environment variable only for examples.
	* makefile.rules: Determine cygwin using PLATFORM variable.
	[CYGWIN]: Add $(BINDIR) to PATH.

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

	* display.cpp (print_header): Defined function pointer using
	the array notation just as is done in the declaration of the
	object to work around what looks like a bug in the Intel C++
	compiler on Windows.

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

	* thread.cpp [_WIN32]: Use _beginthreadex() only if _MT defined.

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

	* cwchar: _RWSTD_NO_TM replaced with _RWSTD_NO_STRUCT_TM.
	Added using ::tm after #including _RWSTD_ANSI_C_TIME_H.

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-26  Martin Sebor  <sebor@roguewave.com>

	* display.h (short_st_name): Removed declaration.
	(print_header, print_footer): Added an argument.
	* display.cpp (short_st_name): Moved to the top of file.
	(verbose_st_name): New array to parallel short_st_name.
	(print_argv): New.
	(print_header_plain): Added an (unused) argument.
	(print_header_verbose, print_target_verbose, print_status_verbose):
	New handlers for verbose output.
	(print_target_plain): Asserted a precondition.
	(print_footer_plain): Added an argument and printed out summary
	information.
	(set_output_format): Defined.
	* exec.cpp (open_input): Allowed data_dir to be null.
	* cmdopt.cpp (eval_options): Set defaults to all 0. Handled
	the -v (verbose) option.
	* output.cpp (parse_output): Allowed data_dir to be null.
	* util.cpp (reference_name): Allowed data_dir to be null.
	* target.h (target_opts): Added a verbose member.
	* runall.cpp (merge_argv): Corrected constness of argument.
	(run_target): Added a new argument and incremented summary data.
	(main): Removed default timeout of 10 seconds.
	Called set_output_format().
	Passed argument to print_header() and print_footer().

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

	* utilities.js: Added global variable EXEC_TIMEOUT = 300 seconds.
	* projectdef.js: Removed execTimeout variable, instead used EXEC_TIMEOUT.
	* runall.wsf: Removed /COMPAT option, added /RUNFLAGS option.
	* projects.js: Added proper /RUNFLAGS:... to runExamples, runTests,
	testLocale projects.

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

	* thread.cpp (rw_thread_create) [_WIN32]: Use _beginthreadex() instead of CreateThread().

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

	* cmdopt.cpp (eval_options): Added inline comments.

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

	* 26.valarray.cassign.cpp: New test exercising [lib.valarray.cassign],
	valarray computed assignment operators.

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

	* 21.string.stdcxx-466.cpp: Corrected tests for find_first_not_of() and find_last_not_of().
	* 21.string.find.first.not.of.cpp: Test updated to reflect changes from r559037.
	* 21.string.find.first.of.cpp: Ditto.
	* 21.string.find.last.not.of.cpp: Ditto.
	* 21.string.find.last.of.cpp: Ditto.

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

	* cmdopt.cpp [_WIN32]: #define RLIMIT_AS (for limit process memory on Windows).
	* exec.cpp (exec_file) [_WIN32]: Create process in suspended state.
	Limit process memory if needed. Set start time as time before resuming process.

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

	* 22.locale.cons.stdcxx-485.cpp: Moved to tests/regress directory.
	* 21.string.replace.stdcxx-175.cpp: Ditto.
	* 21.string.stdcxx-466.cpp: Ditto.

2007-07-24  Travis Vitek  <vitek@roguewave.com>

	STDCXX-502
	* valarray (valarray, operator=): Updated local variable names
	to meet conventions and get test 17.names passing again.

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

	* 21.string.stdcxx-466.cpp: Corrected file name in file header.
	* 21.string.replace.stdcxx-175.cpp: New regression test for STDCXX-175.

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

	STDCXX-175
	* string.cc (replace): Throw std::length_error() if __n2 > max_size().

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

	* string (replace): Corrected function name in _RWSTD_FUNC() macro.
	* string.cc (replace): Ditto.

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

	* 21.string.rfind.stdcxx-466.cpp: Added testing of find(), find_first_of(),
	find_last_of(), find_first_not_of(), find_last_not_of(), compare() methods.
	File renamed ...
	* 21.string.stdcxx-466.cpp: ... to this.

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

	STDCXX-466
	* string.cc (find_first_of): Don't throw std::length_error() if n > max_size().
	(find_first_of): Ditto.
	(find_last_of): Ditto.
	(find_first_not_of): Ditto.
	(find_last_not_of): Ditto.

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

	* process.cpp (__PURE_CNAME): Removed Compaq C++ preprocessor guard.
	* thread.cpp (__PURE_CNAME): Removed an #undef (done in <testdefs.h>
	in r558120).

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

	* 27.istream.manip.cpp (test_ws): ws() shouldn't affect the gcount() value;
	if initial state is not good, the result state should be state | failbit.

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

	* 21.string.rfind.stdcxx-466.cpp: New regression test for STDCXX-466.

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

	* testdefs.h (__PURE_CNAME): Undefined the Compaq C++ macro #defined
	in response to the -std strict_ansi_errors compiler option in order
	to allow C++ extensions (such POSIX names) to be declared by C++ libc
	headers when building the test driver.

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

	STDCXX-466
	* string.cc (rfind): Don't throw std::length_error() if n > max_size().

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

	* 27.istream.unformatted.get.cpp: Update test according to changes in r423404.

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

	* rw_streambuf.h (MyStreambuf): Init throw_when_ array using when parameter.

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

	* 22.locale.ctype.mt.cpp: New test exercising the thread safety
	of the member functions narrow() and widen() of the two required
	specializations of the ctype facet.

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

	* 0.new.cpp: Removed handling of the SIGSEGV signal.
	Skip all tests if _RWSTD_NO_REPLACEABLE_NEW_DELETE macro #defined.

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

	* rw_locale.h (rw_get_wchars): Declared a new function to find
	a set of (valid or invalid) wide characters in the current locale.
	* locale.cpp (rw_get_wchars): Defined.

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

	* rw_locale.h: Added comments, commented out function formal
	arguments.

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

	* locale.cpp (<rw_printf.h>, <errno.h>): Removed #include directives.
	(PATH_MAX): Redefined to 1024 when it's too small or excessively big.
	(<driver.h>): #included for rw_note() and rw_warn().
	(rw_locale): Used the BINDIR macro instead of hardcoding its value.
	(rw_localedef): Same. Also replaced fprintf() with rw_error().
	(rw_locale_root): Used PATH_MAX as index instead of hardcoding
	an arbitrary value.
	(rw_set_locale_root): Same. Replaced rw_fprintf() and perror() with
	rw_note() and rw_error(), respectively.
	(rw_get_mb_chars, rw_find_mb_locale): Replaced rw_fprintf() with
	rw_note() or_rw_warn(), whichever was appropriate, and a hardcoded
	arbitrary value with PATH_MAX.
	(rw_create_locale): Replaced a hardcoded arbitrary value with PATH_MAX
	and fprintf() with rw_error().

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

	* printf.cpp (rw_sprintf): Copied the entire string including
	the terminating NUL to the destination buffer.

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

	* _ctype.h (ctype<wchar_t>): Moved definitions of public members
	above those of protected virtual functions and removed an outdated
	comment explaining the unusual class layout.

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

	* 22.locale.globals.mt.cpp (test_has_facet): Exercised has_facet
	specializations on _byname facets only when not disabled on the
	command line.
	Added comments throughout.

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

	* 0.printf.cpp (TEST_SPEC): Removed the const quialifier from
	a local variable declaration to silence the pesky Intel C++
	warning #279: controlling expression is constant.

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

	* 22.locale.cons.stdcxx-485.cpp: Called rw_locales() to obtain
	the set of installed locales to use. Introduced a dependency on
	rw_test() required in order to be able to call rw_locales().

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

	* 22.locale.cons.stdcxx-485.cpp: New regression test for STDCXX-485.

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

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

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

	* wchar.h (swprintf): Avoided declaring function for all MSVC's.

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-13  Martin Sebor  <sebor@roguewave.com>

	* wchar.h (mbrtowc): Changed return type from wchar_t (introduced
	in r554281 to address STDCXX-472) to size_t.

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

	* fmt_bits.cpp (_rw_fmtlasterror): Cast pmsg to const char* to avoid MSVC error.

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

	* fmt_defs.h (_rw_fmtlasterror): Declared new function to format
	Windows GetLastError() messages. 
	* fmt_bits.cpp (_rw_fmtlasterror): Defined.
	* printf.cpp (_rw_vasnprintf_ext): Called _rw_fmtlasterror() to process
	the %{E} directive. Set spec.param.int_ to the argument value in the
	the %{m} directive handler to allow it to be referenced in subsequent
	paramno directives.

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

	* 0.printf.cpp (test_errno): Exercised %{m} and %{*m} with errno of 0.

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

	* makefile.rules (makedep): Quoted the definition of the shell variable
	depflags in case it contains spaces (as it does when using acc.config)
	to correct a regression introduced in r555061 made to address issue
	STDCXX-481.

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

	* exec.cpp [WIN32]: Added map between NT_STATUS values and UNIX signals.
	(exec_file) [WIN32]: Translate exit code to signal value using map.
	* runall.cpp [WIN32]: Removed #include'ing of signal.h and windows.h.

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

	* wchar.h (swprintf): Corrected a nonconforming signature, introduced
	in r554281 to address STDCXX-472, to one taking size_t as the second
	argument.
	(mbrlen): Corrected signature to take const char* as the first argument.

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

	* acc.config (CXX): Removed the assumption introduced in r543687
	made to addressSTDCXX-434 that the version number is followed by
	a timestamp (or anything at all) since in versions prior to aCC
	6.13 (and whatever the equivalent ends up being on PA), it's not.

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

	* ctype.cpp (do_narrow): Return ch instead of dfault if conversion table not defined.

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

	* runall.wsf: Added processing of FORMAT, NOUT, TRAP status.

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

	* exec.cpp (exec_file) [_WIN32]: Translate STATUS_BREAKPOINT exit code into SIGTRAP.

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

	* 22.locale.globals.mt.cpp (opt_facets, opt_no_exceptions): Flags
	flags for the new command line options --enable/disable-<facet>
	and --no-exceptions.
	(test_has_facet, test_use_facet): Disabled/enabbled tests of
	individual facets in response to command line options.
	(run_test): When a facet is explicitly enabled using a command
	line option disabled all the rest that weren't also explicitly
	enabled.
	(main): Added command line options and "handlers."

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

	* thread.cpp (rw_get_cpus): Used _SC_NPROCESSORS_ONLN when #defined.

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

	* thread.cpp (rw_get_cpus): Used sysconf() to try to determine
	the number of processors programmatically for efficiency before
	invoking a shell script to read system files.

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

	STDCXX-482
	* LIMITS.cpp (compute_limits): Used the first argument to pass in
	a pointer to a value for the function to use in integer arithmetic
	involving (signed) overflow which with some aggressive optimizers
	such as Sun Studio 12 aka Sun C++ 5.9 leads to undefined behavior.
	(main): Introduced MKLIMITS() macro for convenience.

2007-07-10  Michael van der Westhuizen <r1mikey@gmail.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-470
	STDCXX-479
	STDCXX-481
	* sunpro.config (CCMAJOR, CCMINOR): New variables for the major
	and minor version of the compiler.
	(DEPENDFLAGS.cpp, DEPENDFLAGS.S): New variables for compiler options
	to generate makefile dependencies from C++ and assembly source files,
	respectively.
	(wide_flags): Set to -m64 for Sun C++ 5.9 and beyond, and for 5.8
	and prior to -xarch=v9 on SPARC and to -xarch=amd64 on AMD64.
	(narrow_flags): Set to -m32 for Sun C++ 5.9 and beyond, and for C++
	5.8 and prior to -xarch=v8 on SPARC, -xarch=386 on AMD64, and to
	-xarch=generic otherwise.
	* makefile.rules (makedep): Used DEPENDFLAGS$(depsuffix) to set
	compiler options to generate makefile dependencies.
	(depsuffix): Defined a target-specific variable to the suffix of
	the first prerequisite of the %.d pattern rule used to generate
	makefile dependencies.
	(DEPENDFLAGS, DEPENDFLAGS.cpp, DEPENDFLAGS.S, DEPENDFLAGS.s): Set
	appropriately when not defined or empty, and guarded .d: %.cpp and
	%.d: %$(AS_EXT) pattern rules.
	(GNUmakefile.cfg): Commented out make variables whose names do not
	form valid shell variable names (i.e., those containing periods)
	from the gernerated vars.sh file.
	* GNUmakefile (DEPENDFLAGS, DEPENDFLAGS.cpp, DEPENDFLAGS$(AS_EXT):
	Wrote definitions to the generated makefile.in.

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-10 Farid Zaripov <Farid_Zaripov@epam.com>

	* icc-10.0-x64.config: Added svn:eol-style = native, svn:keywords = Id properties.
	* icc-10.0.config: The same.

2007-07-09 Andrew Black <ablack@roguewave.com>
	* icc-10.0-x64.config: Add (untested) config file for the 64-bit Intel
	10.0 compiler for Windows.
	* icc-10.0.config: Add (untested) config file for the 32-bit Intel
	10.0 compiler for Windows. 

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

	* atomic_xchg.cpp (run_test): Documented algorithm used to compute
	the expected value of the shared variable manipulated by threads.

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

	* projects.js (CreateProjectsDefs): Turn on RTTI for rwtest project.

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

	* wchar.h (swprintf): Avoided declaring function for MSVC 8 so as
	not to cause a collision with the compiler's own horribly hacked up
	declaration.

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

	* makefile.rules: Set TZ environment variable (needed by examples).

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

	* wchar.h (wmemcmp): Corrected declaration introduced in r554281
	to address STDCXX-472.

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>

	* driver.cpp [Linux] (UTS_RELEASE): Removed conditionally-defined
	helper macro in favor of _RWSTD_LINUX_RELEASE.
	(__x86_64__): Moved check above __amd64__ and other x86 arches
	whose macros are always defined (e.g., __pentiumpro__).

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

	* UNAME.cpp (print_os_version): Factored OS-specific code from main
	into here.
	(print_linux_release): New function to determine the release of Linux
	from /etc/xxx-release and #define the _RWSTD_LINUX_RELEASE macro.

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-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-474
	* valarray (slice_array): Renamed the implementation-specific member
	get_slice() to _C_get_slice() to prevent it from clashing with macros
	of the same name in the user namespace.
	(gslice_array): Same.
	(mask_array): Renamed get_array() and get_array_pt() to _C_get_array()
	and _C_get_array_ptr() for the same reason as above.
	(indirect_array): Same.
	(__rw_unary_function, __rw_binary_function): Same.

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

	STDCXX-472
	* wchar.h (WCHAR_MAX, WCHAR_MIN): #defined macros when they're not
	#defined in the system header.
	(mbstate_t): Defined typedef when not defined in system header.
	(fwprintf, fwscanf, swprintf, swscanf, vfwprintf, vfwscanf, vwprintf,
	vwscanf, mbrlen, mbrtowc, mbsinit, mbsrtowcs, wcrtomb, wcsrtombs,
	wcschr, wcsrchr, wcsstr, wmemchr, wmemcmp, wmemcpy, wmemmove, wmemset,
	wprintf, wscanf): Declared functions (including C++ overloads wherever
	appropriate) when not declared in system header.

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

	STDCXX-125
	* wchar.h (wctob): Added a declaration for wctob() when it's not
	provided in the system header. 

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>

	* _facet.h (_V3_LOCALE): Replaced a vestige from stdcxx 2 with _STD.
	(_C_factory_f): Removed unused typedef.

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

	STDCXX-469
	* _facet.h (__rw_facet): Declared ctor and dtor protected.

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-06 Farid Zaripov <Farid_Zaripov@epam.com>

	* sstream.cc (xsputn): __off declared as _RWSTD_PTRDIFF_T (was int).

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

	* sstream.cc (xsputn): Allow to pass internal buffer as method parameter.

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

	* 27.stringbuf.virtuals.cpp: #define EOF as unique value;
	(test_virtual): Assign arg0 and ret_expect to Traits::eof() if EOF passed.

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-07-05  Martin Sebor  <sebor@roguewave.com>

	STDCXX-457
	* limits.c: Updated license statement.
	* valarray.c: Ditto.
	* deque.c: Ditto.
	* rw/_tree.c: Ditto.
	* rw/_algobase.c: Ditto.
	* rw/_heap.c: Ditto.
	* rw/_basic_ios.c: Ditto.
	* rw/_ioinsert.c: Ditto.
	* list.c: Ditto.
	* bitset.c: Ditto.
	* fstream.c: Ditto.
	* istream.c: Ditto.
	* string.c: Ditto.
	* ostream.c: Ditto.
	* sstream.c: Ditto.
	* algorithm.c: Ditto.
	* vector.c: Ditto.
	* streambuf.c: Ditto.

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

	* 0.new.cpp: Catch SIGSEGV signal as SIGABRT.

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

	STDCXX-457
	* _moneypunct.c: Updated license statement.
	* _messages.c: Ditto.
	* _numpunct.c: Ditto.
	* _collate.c: Ditto.
	* _money_get.c: Ditto.
	* _time_get.c: Ditto.
	* _num_get.c: Ditto.
	* _money_put.c: Ditto.
	* _ctype.c: Ditto.
	* _time_put.c: Ditto.
	* _num_put.c: Ditto.
	* _codecvt.c: Ditto.
	* _punct.c: Ditto.

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

	* 27.ostream.cpp (test_formatted): Don't check os.width(0) if
	_RWSTD_NO_EXT_KEEP_WIDTH_ON_FAILURE defined.

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

	* 27.ostream.cpp (test_flush): Added a comment documenting
	the test for LWG issue 581.

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

	* locale.cpp: Use "dir /B" command on Windows instead of "ls -1"

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

	* 21.string.access.cpp (test_access): Avoid use rw_match() for
	comparing the single characters.
	* 21.string.copy.cpp (test_copy): Ditto.

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

	* xbuildgen: Utility to generate cross-build results from multiple
	stdcxx build logs.

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

	* sstream (str): Corrected formatting problems.

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

	* 22.locale.globals.mt.cpp (<cwchar>): #included for mbstate_t.

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

	* 22.locale.cons.mt.cpp: New test exercising the thread safety
	of locale ctors.
	* 22.locale.globals.mt.cpp: New test exercising the thread safety
	of therequired specializations of the std::has_facet and
	std::use_facet function templates.

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

	* 22.locale.num.put.cpp (inf_nan_test): New function template
	to exercise the formatting of infinities and, when enabled,
	(quiet) NaNs, including STDCXX-461.

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-28  Martin Sebor  <sebor@roguewave.com>

	* 22.locale.moneypunct.mt.cpp [_REENTRANT] (main): Set the number
	of nthreads to the greater of the number of processors and 2 (for
	uniprocessor systems) by default.
	* 22.locale.money.put.mt.cpp: Same.
	* 22.locale.numpunct.mt.cpp: Same.
	* 22.locale.num.put.mt.cpp: Same.
	* 22.locale.time.put.mt.cpp: Same.

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

	* thread.cpp [Linux] (rw_get_cpus): Avoided invoking system utilities
	such as cat and grep using absolute pathnames since they are installed
	in different directories on different distributions of Linux (e.g.,
	grep is in /bin on Red Hat Linux but in /usr/bin on SuSE).

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

	* rw_locale.h (rw_opt_locales): New constant pointing to a
	NUL-separated list of locale names specified by the --locales
	command line option (set by the rw_opt_setlocales handler).
	(rw_opt_setlocales): Callback function invoked in response to
	the --locales=<locale-list> command line option to set the
	rw_opt_locales global variable to a NUL-separated list of
	locale names to exercise.
	* locale.cpp (<cstdio>): Avoided #including C++ header (the C
	header is sufficient and preferable).
	(rw_create_locale): Removed std:: qualification from C library
	names.
	(_rw_locale_names): Static global helper.
	(rw_opt_locales): Defined and initialized to refer to the above.
	(rw_opt_setlocale): Defined.
	* 22.locale.moneypunct.mt.cpp (run_test): Used rw_opt_locales.
	(rw_opt_setlocales): Removed definition.
	* 22.locale.time.put.mt.cpp (rw_opt_nthreads): Initialzed to 1,
	and overwrote in main() with the result of rw_get_cpus() when
	thread safety is being exercised.
	(run_test): Used rw_opt_locales.
	(main): Used rw_opt_setlocales to handle the --locales option.
	* 22.locale.num.put.mt.cpp: Same.
	* 22.locale.numpunct.mt.cpp: Same.
	* 22.locale.money.put.mt.cpp: Same.

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

	* 22.locale.moneypunct.mt.cpp: Rewrote so as not to rely on localeconv
	but retrieve the "master" data from the C++ locale instead instead.
	(thread_loop_body): Factored out the body of thread_func here.
	(get_format): Removed.
	(rw_opt_nloops): Reduced from 2000000 to 10000 and set to the number
	of tested locales in non-reentrant configurations to speed things up.
	(rw_opt_setlocales): Callback function to process --locales option.
	(main): Set rw_opt_nthreads to rw_get_cpus() in thread-safe configs.
	(--locale=<arg>): New command line option to specify the names of
	locales to test.

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

	* locale.cpp [Solaris] (rw_locales): Avoided all locale names
	starting with "iso_8859_" and the name "common" on SunOS, not
	just iso_8859_1. They're all known to cause setlocale() to
	fail.

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

	* thread.cpp (rw_get_cpus) [_WIN32]: Added Windows version of the function.

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

	* rw_thread.h (rw_get_cpus): New function to determine the number
	of processors on the system.
	* thread.cpp (rw_get_cpus): Defined it.
	(rw_thread_pool): Called rw_get_cpus() to set nthreads when the
	argument is equal to SIZE_MAX.

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

	* projects.js (CreateProjectsDefs): Enable RTTI in stdcxx project.

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

	* _iosbase.h: Fixed references to standard.

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

	* 22.locale.ctype.is.cpp: Added svn:eol-style=native property.
	* 22.locale.ctype.narrow.cpp: Ditto.
	* 22.locale.ctype.scan.cpp Ditto.
	* 22.locale.ctype.tolower.cpp Ditto.
	* 22.locale.ctype.toupper.cpp Ditto.
	* 22.locale.money.put.mt.cpp Ditto.
	* 22.locale.moneypunct.cpp Ditto.
	* 22.locale.moneypunct.mt.cpp Ditto.
	* 22.locale.num.put.mt.cpp Ditto.
	* 22.locale.numpunct.mt.cpp Ditto.
	* 22.locale.time.put.mt.cpp Ditto.

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

	* 22.locale.money.put.mt.cpp: Added Ios::ios() invoking ios_base::init(0).
	* 22.locale.num.put.mt.cpp: The same.
	* 22.locale.time.put.mt.cpp: The same.

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

	STDCXX-462
	* moneyput.cpp (main): Create named std::locale object instead of unnamed.
	* num_get.cpp (main): Ditto.
	* time_get.cpp (main): Ditto.

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

	* 22.locale.ctype.is.cpp: Check the pointer before dereferencing of it.
	* 22.locale.ctype.narrow.cpp: Ditto.
	* 22.locale.ctype.scan.cpp: Ditto.
	* 22.locale.ctype.tolower.cpp: Ditto.
	* 22.locale.ctype.toupper.cpp: Ditto.

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

	* projects.js (CreateProjectsDefs): Enable RTTI for all tests.

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

	STDCXX-457
	* ascii.cm: Updated license statement and restored
	original contents.
	* C.src: Ditto.

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
	* loc_exception.h: Updated license statement.
	* memchk.h: Same.
	* path.cpp: Same.
	* iconv.cpp: Same.
	* localedef.h: Same.
	* aliases.h: Same.

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

	STDCXX-457
	* tr1/array: Updated license statement.
	* ansi/csignal: Same.
	* ansi/cstdio: Same.
	* ansi/cstdarg: Same.
	* ansi/ciso646: Same.
	* ansi/climits: Same.
	* ansi/cstring: Same.
	* ansi/cstddef: Same.
	* ansi/cwctype: Same.
	* ansi/cstdlib: Same.
	* ansi/cctype: Same.
	* ansi/cerrno: Same.
	* ansi/cmath: Same.
	* ansi/ctime: Same.
	* ansi/clocale: Same.
	* ansi/cassert: Same.
	* ansi/csetjmp: Same.
	* ansi/cfloat: Same.
	* iostream: Same.
	* numeric: Same.
	* utility: Same.
	* memory: Same.
	* iterator: Same.
	* functional: Same.
	* istream: Same.
	* algorithm: Same.
	* typeinfo: Same.
	* exception: Same.
	* locale: Same.
	* strstream: Same.
	* new: Same.
	* ios: Same.

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

	STDCXX-457
	* loc/_time_get.cc: Updated license statement.
	* loc/_convenience.h: Same.
	* loc/_moneypunct.h: Same.
	* loc/_messages.h: Same.
	* loc/_numpunct.h: Same.
	* loc/_money_put.cc: Same.
	* loc/_facet.h: Same.
	* loc/_collate.h: Same.
	* loc/_codecvt.cc: Same.
	* loc/_punct.cc: Same.
	* loc/_moneypunct.cc: Same.
	* loc/_numpunct.cc: Same.
	* loc/_collate.cc: Same.
	* loc/_ctype.cc: Same.
	* loc/_time_put.cc: Same.
	* loc/_num_put.h: Same.
	* loc/_codecvt.h: Same.
	* loc/_punct.h: Same.
	* rw/_iosfailure.h: Same.
	* rw/_relops.h: Same.
	* rw/_heap.cc: Same.
	* rw/_file.h: Same.
	* rw/_funcbase.h: Same.
	* rw/_error.h: Same.
	* rw/_basic_ios.cc: Same.
	* rw/_bitmask.h: Same.
	* rw/_iosfwd.h: Same.
	* rw/_tree.cc: Same.
	* rw/_exception.h: Same.
	* rw/_typetraits.h: Same.
	* rw/_algobase.cc: Same.
	* rw/_heap.h: Same.
	* rw/_rawiter.h: Same.
	* rw/_allocator.h: Same.
	* rw/_math.h: Same.
	* rw/_new.h: Same.
	* ansi/_cmath.h: Same.
	* ansi/_ctime.h: Same.
	* ansi/_clocale.h: Same.
	* ansi/limits.h: Same.
	* ansi/_cassert.h: Same.
	* ansi/_csetjmp.h: Same.
	* ansi/float.h: Same.
	* ansi/_cwchar.h: Same.
	* ansi/stddef.h: Same.
	* ansi/wctype.h: Same.
	* ansi/stdlib.h: Same.
	* ansi/stdio.h: Same.
	* ansi/_cctype.h: Same.
	* ansi/_cstdarg.h: Same.
	* ansi/_cerrno.h: Same.
	* ansi/math.h: Same.
	* ansi/time.h: Same.
	* ansi/locale.h: Same.
	* ansi/assert.h: Same.
	* ansi/setjmp.h: Same.
	* ansi/wchar.h: Same.
	* ansi/_cfloat.h: Same.
	* ansi/_cstring.h: Same.
	* ansi/_cstddef.h: Same.
	* ansi/_cwctype.h: Same.
	* ansi/signal.h: Same.
	* ansi/_cstdio.h: Same.
	* ansi/ctype.h: Same.
	* ansi/stdarg.h: Same.
	* ansi/errno.h: Same.
	* vector_spec.h: Same.
	* deque.cc: Same.
	* ostream.cc: Same.
	* list.cc: Same.
	* limits.cc: Same.
	* deque_spec.h: Same.
	* list_spec.h: Same.

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
	* rwstdmessages.h: Updated license statement.
	* replace.h: Same.
	* codecvte.h: Same.
	* examples.h: Same.
	* valarray.h: Same.
	* memfunref.h: Same.
	* alg3.h: Same.
	* widwork.h: Same.
	* stocks.h: Same.
	* teller.h: Same.

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

	STDCXX-457
	* 2.smartptr.shared.cpp: Updated license statement.
	* 2.smartptr.weak.cpp: Same.
	* 27.objects.cpp: Same.
	* rw_alarm.h: Same.
	* rw_printf.h: Same.
	* environ.h: Same.
	* valcmp.h: Same.
	* cmdopt.h: Same.
	* opt_lines.h: Same.
	* opt_diags.cpp: Same.
	* opt_types.h: Same.
	* opt_lines.cpp: Same.
	* opt_diags.h: Same.
	* opt_types.cpp: Same.
	* any.cpp: Same.
	* 21.cctype.cpp: Same.
	* 21.string.access.cpp: Same.
	* 0.new.cpp: Same.
	* 23.deque.iterators.cpp: Same.
	* 19.cerrno.cpp: Same.

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

	STDCXX-457
	* icecream.cpp: Updated license statement.
	* graph.cpp: Same.
	* complx.cpp: Same.
	* calc.cpp: Same.
	* stocks.cpp: Same.
	* radix.cpp: Same.
	* sieve.cpp: Same.
	* spell.cpp: Same.
	* alg1.cpp: Same.
	* alg2.cpp: Same.
	* widwork.cpp: Same.
	* alg3.cpp: Same.
	* alg4.cpp: Same.
	* concord.cpp: Same.
	* teller.cpp: Same.
	* alg5.cpp: Same.
	* alg6.cpp: Same.
	* tele.cpp: Same.
	* alg7.cpp: Same.
	* heap_ops.cpp: Same.
	* toupper.cpp: Same.
	* rotate.cpp: Same.
	* map.cpp: Same.
	* mismatch.cpp: Same.
	* search.cpp: Same.
	* find_end.cpp: Same.
	* includes.cpp: Same.
	* partial_sort.cpp: Same.
	* messages.cpp: Same.
	* transform.cpp: Same.
	* codecvt1.cpp: Same.
	* replace.cpp: Same.
	* partial_sum.cpp: Same.
	* lex_compare.cpp: Same.
	* max.cpp: Same.
	* strstreambuf.cpp: Same.
	* set_diff.cpp: Same.
	* fill.cpp: Same.
	* set_intr.cpp: Same.
	* setex.cpp: Same.
	* bitset.cpp: Same.
	* distance.cpp: Same.
	* random_shuffle.cpp: Same.
	* auto_ptr.cpp: Same.
	* time_get.cpp: Same.
	* remove.cpp: Same.
	* has_facet.cpp: Same.
	* funct_ob.cpp: Same.
	* slice.cpp: Same.
	* mutex.cpp: Same.
	* stringbuf.cpp: Same.
	* stack.cpp: Same.
	* string.cpp: Same.
	* complex.cpp: Same.
	* ul_bound.cpp: Same.
	* isalnum.cpp: Same.
	* swap.cpp: Same.
	* ifstream.cpp: Same.
	* istreambuf_iterator.cpp: Same.
	* valarray.cpp: Same.
	* ostreambuf_iterator.cpp: Same.
	* collate.cpp: Same.
	* adj_diff.cpp: Same.
	* count.cpp: Same.
	* multimap.cpp: Same.
	* negator.cpp: Same.
	* multiset.cpp: Same.
	* pnt2fnct.cpp: Same.
	* indirect_array.cpp: Same.
	* locale.cpp: Same.
	* moneypunct.cpp: Same.
	* wostream.cpp: Same.
	* advance.cpp: Same.
	* vector.cpp: Same.
	* deque.cpp: Same.
	* accumulate.cpp: Same.
	* equal.cpp: Same.
	* copyex.cpp: Same.
	* list.cpp: Same.
	* reverse.cpp: Same.
	* num_get.cpp: Same.
	* permutation.cpp: Same.
	* find.cpp: Same.
	* moneyput.cpp: Same.
	* ctype.cpp: Same.
	* queue.cpp: Same.
	* strstream.cpp: Same.
	* max_elem.cpp: Same.
	* sort.cpp: Same.
	* mask_array.cpp: Same.
	* num_put.cpp: Same.
	* istringstream.cpp: Same.
	* generate.cpp: Same.
	* slice_array.cpp: Same.
	* nthelem.cpp: Same.
	* gslice_array.cpp: Same.
	* istrstream.cpp: Same.
	* rwexcept.cpp: Same.
	* fstream.cpp: Same.
	* set_union.cpp: Same.
	* for_each.cpp: Same.
	* unique.cpp: Same.
	* gslice.cpp: Same.
	* use_facet.cpp: Same.
	* filebuf.cpp: Same.
	* memfunref.cpp: Same.
	* istream1.cpp: Same.
	* binders.cpp: Same.
	* stream_iterator.cpp: Same.
	* wstringstream.cpp: Same.
	* memfunc.cpp: Same.
	* find_first_of.cpp: Same.
	* equal_range.cpp: Same.
	* inner_product.cpp: Same.
	* insert_iterator.cpp: Same.
	* priority_queue.cpp: Same.
	* partition.cpp: Same.
	* set_sym_diff.cpp: 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  Martin Sebor  <sebor@roguewave.com>

	* 30-3.html: Added a note about the effects of ios::out creating
	a file when it doesn't exist.

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>

	* projects.js (CreateProjectsDefs): Set TZ environment variable before run examples.

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

	* _error.h: Put _RWSTD_EXPORT before the return type for
	consistency between declaration and definition.

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-22 Farid Zaripov <Farid_Zaripov@epam.com>

	* build.wsf (build): Limit infinite loop by 60 seconds.

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

	* 18.exception.cpp (RW_SETJMP, RW_LONGJMP): Corrected logic errors
	introduced in r548112 and used setjmp() and longjmp() as opposed to
	sigsetjmp() and siglongjmp() except on Linux.

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-21 Farid Zaripov <Farid_Zaripov@epam.com>

	* projects.js (CreateProjectsDefs): Added path to rwstdmessages.dll before run examples.

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

	* rwstdmessages.cpp (_rw_messages_version): Added missing '}'.
	* rwstdmessages.dll: Updated to valid WIN32 dll file.

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

	* time_manip.in: New input file for the time_manip.cpp example.

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

	* 22.locale.numpunct.mt.cpp (<ios>): Removed #include directive.
	(run_test): Set LC_ALL rather than just LC_NUMERIC in order to
	get reliable results from mbstowcs().

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

	* 22.locale.moneypunct.mt.cpp: New test exercising the thread safety
	of all four required specializations of the std::moneypunct facet.

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-19  Martin Sebor  <sebor@roguewave.com>

	* 22.locale.numpunct.mt.cpp: New test exercising the thread safety
	of the numpunct facet.

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

	* LOCALE_NAME_FMAT.cpp (test_locale_names, nlocales): Moved...
	* locale_names.h: ...to here so that it could be reused elsewhere.
	* THREAD_SAFE_LOCALE.cpp: New test to determine whether each thread
	has its own C locale environment that's independent of those of all
	other threads or whether the C locale facility is process global,
	i.e., shared among all threads.

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

	* configure.wsf (cleanQuit): New function to clean and quit.
	(configure): Use cleanQuit() instead of WScript.Quit().

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

	* build.wsf (build): Fix the "Call was Rejected By Callee" error.

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

	* proclimits.h: New file with process limit functions
	* NEW_THROWS.cpp: #included "proclimits.h"
	* GLOBAL_BAD_ALLOC.cpp: Ditto
	* STD_BAD_ALLOC.cpp: Ditto

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

	* 22.locale.money.put.mt.cpp: New test exercising the thread safety
	of the money_put facet (including moneypunct).

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

	* 22.locale.num.put.mt.cpp: New test exercising the thread safety
	of the required specializations of the num_put facet (including
	numpunct).

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

	STDCXX-4
	* 22.locale.time.put.mt.cpp: Test exercising the thread safety
	of the required specializations of the std::time_put facet.

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

	* 26.valarray.sub.stdcxx-448.cpp: Regression test for STDCXX-448.

2007-06-17  Scott Zhong  <scottz@roguewave.com>

	* 22.locale.ctype.is.cpp: Test exercising ctype::is()
	* 22.locale.ctype.narrow.cpp: Test exercising ctype::narrow().
	* 22.locale.ctype.scan.cpp: Test exercising the ctype::scan_xxx()
	family of functions.
	* 22.locale.ctype.tolower.cpp: Test exercising ctype::tolower().
	* 22.locale.ctype.toupper.cpp: Test exercising ctype::toupper().

2007-06-17  Scott Zhong  <scottz@roguewave.com>
	    Martin Sebor <sebor@roguewave.com>

	* rw_locale.h (rw_create_locale): New helper function to invoke
	the stdcxx localedef utility to create a stdcxx locale.
	* locale.cpp ((rw_create_locale): Defined.

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

	* 22.locale.codecvt.out.cpp (mb_char_array_t, get_mb_char,
	find_mb_locale): Removed/replaced...
	(rw_mbchar_array_t, rw_find_mb_locale): ...with these replacement
	type and functions defined in the test driver.

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

	* rw_locale.h (rw_mbchar_array_t, rw_get_mb_chars, rw_find_mb_locale):
	New type and helper functions to retrieve locales that use multibyte
	encodings (where MB_CUR_MAX > 1).

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

	* 21.string.push_back.mt.cpp [!_RWSTD_REENTRANT](rw_opt_nthreads): Set
	to 1 in "single-threaded" builds.
	(thread_func, run_test): Removed gratuitous output.
	(run_test): Added rw_error() calls checking the successful creation
	of thread pools.

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

	* 21.string.cons.mt.cpp [!_RWSTD_REENTRANT](rw_opt_nthreads): Set
	to 1 in "single-threaded" builds.
	(run_test): Added rw_error() calls checking the successful creation
	of thread pools.

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

	* rw_thread.h: Added comments.

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

	* thread.cpp [!_RWSTD_REENTRANT] (rw_thread_pool): When not reentrant
	 (in non-thread safe builds) emulated the creation of a single thread
	and then waiting for it to finish by simply calling the thread
	procedure to simplify the logic in each test.

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

	* 18.exception.cpp (RW_JMP_BUF, RW_LONGJMP, RW_SETJMP): New macros
	to hide calls to siglongjmp() and sigsetjmp() on Linux while making
	calls to longjmp() and setjmp() everywhere else.
	(induce_exception): Used size_t instead of unsigned long
	as an argument to operator new().
	(SIGABRT_handler, test_terminate_handler, test_unexpected_handler):
	Used RW_LONGJMP() instead of plain longjmp().
	(test_runtime, run_test): Used RW_SETJMP() instead of plain setjmp().
	(run_test): Called test_effects() last to defer potential problems
	due to the tests returning (jumping) out of the handlers.

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

	* 0.printf.cpp (test_dec): Exercised long and long long formatting.
	(test_nested_format): Added comments.

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

	* 21.string.cons.mt.cpp: New test exercising the thread safety
	of a small subset of basic_string ctors and assignment operators.

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

	* money_manip.in: New input file for the money_manip.cpp example.

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

	* 27.stringbuf.members.stdcxx-427.cpp: new test from STDCXX-427 issue

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

	* runall.wsf (parseStatus): Parse OUTPUT status.
	(runAllExamples): Use OUTPUT status as successful result.

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

	* dynatype.out: Corrected example expected output.

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

	* except.out: Renamed...
	* failure.out: ...to this (see http://svn.apache.org/viewvc?view=rev&rev=544238).
	* insert_wchar.out: Added svn:eol-style=native property. Removed svn:keywords property.
	* mbsrtowcs.out: Ditto.
	* fmtflags_manip.out: Ditto.
	* wstringstream.out: Ditto.

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

	STDCXX-429
	* _config.h: #include "_config-msvc.h" only on MSVC.
	* _config-msvcrt.h: New file with configuration definitions of the MSVC CRT.
	* _config-icc.h [_WIN{32,64}]: #include "_config-msvcrt.h",
	added #pragma's to silence bogus warnings.
	* _config-msvc.h: #include "_config-msvcrt.h",
	MSVC CRT specific definitions moved to _config-msvcrt.h.

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

	* dynatype.out: Added svn:eol-style=native property.

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

	* runall.wsf (parseStatus): Increased width of the NAME column,
	according to http://svn.apache.org/viewvc?view=rev&rev=545641.

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

	* sstream (str): Method definition moved outside of the class definition.

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

	* cwchar: Added missing ';' in using declarations.

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

	* GNUmakefile.cfg (sane): Printed out the library version
	for which the config header is being generated.
	clean): Removed $(LOGFILE) from the list of files to remove
	by the target.

2007-06-08  Andrew Black  <ablack@roguewave.com>

STDCXX-440
	* GNUmakefile.exm (RUNFLAGS): Add --ulimit:as switch to limit examples
	to allocating 256 MB of memory (total)
	* GNUmakefile.tst (RUNFLAGS): Add --ulimit:as switch to limit tests to
	allocating 1 GB of memory (total)

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

	* money_manip.cpp (main): Corrected a trivial typo in a comment.

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-09  Martin Sebor  <sebor@roguewave.com>

	* dynatype.out: Expected output of tutorial/dynatype.cpp.

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

	* GNUmakefile (.DEFAULT): Recursed into $BUILDDIR/include.
	* GNUmakefile.cfg (realclean): Avoided removing config.h
	but cleaned out all object files.

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

	* display.cpp (print_header_plain, print_target_plain): Increased
	the width of the first column (NAME) to 30 characters.
	* output.cpp (check_test, check_test_compat): Set the state
	of targets that produce an empty output file to ST_NO_OUTPUT.

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-08 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-427
	* sstream (str): Function updated according to 27.7.1.2, p1

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

	STDCXX-439
	* vacpp.config (LDFLAGS): Added -Wl,-bh:5 to silence ld warning
	0711-224 (Duplicate symbol) for shared library linking with IBM
	VisualAge C++ 6.0.

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

	* vacpp.config (OPTMZ_CXXFLAGS): Replaced -qinline with the equivalent
	-Q for consistency with other single-letter options and documented.

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-07  Martin Sebor  <sebor@roguewave.com>

	* xlC_version.sh: Added a comment listing known versions and PTF
	dates they correspond to.

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

	* xlC_version.sh: Restored detailed script output from stdcxx 4.1.3
	for VAC++ 6.0 (i.e., to include the last component) inadvertently
	removed in r518779.

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

	STDCXX-271
	* string (_RWSTD_NO_STRING_OUTLINED_MEMBER_TEMPLATES): New convenience
	macro #defined in response to the various conditions previously tested
	throughout the header and .cc file.
	(__rw_replace, __rw_replace_aux, replace): Guarded global and member
	functions with said macro.
	Replaced guards for specific version(s) of MSVC with the config macro
	_RWSTD_NO_MEMBER_TEMPLATES (tested by artificially defining the macro
	on the command line).
	* string.cc (__rw_replace, __rw_replace_aux, replace): Same as above.

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

	* GLOBAL_BAD_ALLOC.cpp: Use size_t type in new() instead of unsigned long.
	* STD_BAD_ALLOC.cpp: Ditto.

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

	STDCXX-422
	* GNUmakefile.lib [CYGWIN]: changed name of the library to libstd${BUILDTYPE}-X.Y.Z.dll
	* makefile.rules [CYGWIN]: add $(LIBDIR) to PATH

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

	* dynatype.cpp (copy): static_cast to const T& instead of T
	to avoid error on gcc 3.4.4/Cygwin: invalid static_cast from
	type `const dynatype' to type `int'.

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-06 Farid Zaripov <Farid_Zaripov@epam.com>

	* 23.bitset.cons.stdcxx-297.cpp: new test from STDCXX-297 issue

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

	* 23.list.cons.stdcxx-268.cpp: new test from STDCXX-268 issue

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

	* 23.deque.special.stdcxx-127.cpp: new test from STDCXX-127 issue

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

	* 23.list.special.stdcxx-334.cpp: new test from STDCXX-334 issue

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

	* 23.list.insert.stdcxx-331.cpp: new test from STDCXX-331 issue

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

	* insert_wchar.cpp (main): Parenthesized a call to isalnum() to prevent
	macro expension in case the function happens to be (illegally) shadowed
	by a macro.

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

	* acc.config: Silenced excessively noisy remarks for aCC 6.10
	and beyond (causing build logs to exceed 15MB in size).

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

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

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

	STDCXX-105
	* README: Extended VisualStudio Setup Instructions;
	added VisualStudio Test Suite Build Instructions.

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

	* stdexcept.cpp: Removed output file (exact output depends on
	the compiler and on the location of stdcxx headers).

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

	* 18-4.html: Updated example program to match the latest code
	and added possible output.

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

	* exceptn.cpp: Moved...
	* stdexcept.cpp: ...to this.

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

	* exceptn.cpp: Renamed...
	* failure.cpp: ...to this.

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

	STDCXX-135
	* 0.printf.cpp (test_string): Added a test for the format being
	the empty string ("").

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

	STDCXX-434
	* acc.config (CCVER): Adjusted to the change in HP aCC -V output
	by searching for "A.NN.NN" as suggested by Dennis Handly.

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

	STDCXX-433
	* string.h (strpbrk): Added declaration and definition when
	the function is not declared in the system string.h header.

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-06-01  Martin Sebor  <sebor@roguewave.com>

	STDCXX-431
	* string.h (memchr): Added declaration and definition when
	the function is not declared in the system string.h header.

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

	* build.wsf (getBuildLog): New function to extract data from BuildLog.htm;
	(event_ProjectBuildStarted): Added checking function parameter != null;
	(event_ProjectBuildFinished): If Cfg == null find path to the BuildLog.htm
	in Output window;
	(BuildProject): Invoke event_ProjectBuildStarted() and
	event_ProjectBuildFinished() on ICC.
	* utilities.js (stipTags): Remove additional html tags from buildlog.

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

	* gcc.config: Made formatting consistent (4 space indents
	everywhere, at most 78 characters per line).

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

	STDCXX-369
	* gcc.config (LDSOFLAGS): For gcc 3.3 and prior added -shared-libgcc.

2007-05-30  Andrew Black  <ablack@roguewave.com>

	STDCXX-117
	* aliases.cpp [_RWSTD_NO_NL_LANGINFO] (<langinfo.h>): Guarded 
	against inclusion when the header is detected to be missing at 
	configuration time.
	* charmap.cpp [_RWSTD_NO_ICONV] (<iconv.h>): Ditto.
	* charmap.h [_RWSTD_NO_ICONV] (<iconv.h>): Ditto.
	* locale.cpp [_RWSTD_NO_ICONV] (<iconv.h>): Ditto.
	[_RWSTD_NO_NL_LANGINFO] (<langinfo.h>): Ditto.

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

	STDCXX-378
	* dynatype.cpp: Restored dynatype::operator T&(); dynatype::operator T() const
	renamed to dynatype::operator const T&() const.

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

	* generate.wsf (Echo) : Try/catched the output to the StdOut
	to prevent the error: generate.wsf(90, 6) (null): The handle is invalid.

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-28  Martin Sebor  <sebor@roguewave.com>

	* 22.locale.num.get.cpp (do_test): Disabled grouping tests when
	rw_opt_no_grouping is non-zero in response to the --no-grouping
	command line option.
	(test_llong, test_ullong): Better exercised long long parsing,
	including STDCXX-402.

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

	STDCXX-426
	* 21.cwchar.cpp (test_file_functions): Opened a new file for I/O
	instead of reusing stdout and called fwide() first before any prior
	output since 7.19.2, p5 of C99 prohibits wide character I/O functions
	from being called on a byte-oriented stream.

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

	* fmtflags_manip.cpp: New example program demonstrating
	an implementation of a user-defined manipulator for convenient
	and exception-safe setting and restoring of stream formatting
	flags. Prompted by the following Usenet thread:
	http://groups.google.com/group/comp.lang.c++/browse_frm/thread/acfa77336a6137cd/50e116d0a0c889ad
	* fmtflags_manip.out: Expected example output.

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

	* _config-msvc.h: MSVC specific #pragma's decorated with #ifndef _INTEL_COMPILER;
	added #pragma's to disable ICC warnings.

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

	STDCXX-378
	* dynatype.cpp: Removed dynatype::operator T&() to resolve
	ambiguity between user defined conversions on MSVC.

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

	* dynatype.cpp: Updated copyright notice;
	(main): Fixed missprint (v1 replaced with v3).

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

	* alg_test.h (InputIter): Outlined member functions too big for
	the gcc inliner to handle (causing noise for -Winline warnings).
	(OutputIter): Ditto.

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

	* 22.locale.codecvt.length.cpp: Added checking result of the rw_locales()
	before dereferencing.
	* 22.locale.codecvt.out.cpp: Ditto.
	* 22.locale.ctype.cpp: Ditto.
	* 22.locale.messages.cpp: Ditto.
	* 22.locale.moneypunct.cpp: Ditto.
	* 22.locale.num.put.cpp: Ditto.
	* 22.locale.time.get.cpp: Ditto.
	* 22.locale.num.get.cpp: Ditto. Corrected len parameter of the rw_widen().
	* 0.inputiter.cpp [_MSC_VER]: Disabled GUI window from abort().
	* 0.outputiter.cpp [_MSC_VER]: Ditto.
	* 21.cwchar.cpp [_MSC_VER]: Disabled GUI window with error from
	CRT assertion fail.

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

	* projects.js (CreateProjectDefs): Add path of the bin directory to PATH
	envirobment variable before invoking runall.wsf script.
	* runall.wsf: Removed LIBDIR option as unused. Removed libdllFolder and
	libFileName variables as unused.

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

	* _array.h (ctor): Removed redundant (ill-formed?) template
	argument list from the definition of __rw_array destructor.

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

	STDCXX-4
	* 22.locale.moneypunct.cpp: New test exercising locale.moneypunct.

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

	* mbsrtowcs.cpp (main): Corrected typo in hardcoded input.
	* mbsrtowcs.out: Corrected typos in expected output.

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

	STDCXX-424
	* _array.h (dtor): Simplified and implemented without
	relying on resize() for efficiency.
	(resize): Avoided calling trivial inline functions.

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

	STDCXX-296
	* insert_wchar.cpp: New example program demonstrating an implementation
	of an inserter operator overloaded for arrays of wchar_t that performs
	codeset conversion from arrays of wchar_t to mutlibyte characters.
	* insert_wchar.out: Expected output of the example program.

2007-05-18  Eric Lemings  <lemings@roguewave.com>

	STDCXX-358
	* environ.cpp (rw_putenv): Handled unsetenv() on Darwin the same
	as on FreeBSD: the function is declared to return void on both.

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

	STDCXX-421
	* run_locale_utils.sh: When installed, invoked Bash on AIX instead
	of the default system shell (/bin/sh -> /usr/bin/sh) to work around
	a bug (?) that prevents it from trapping SIGHUP (and invoking the
	signal handler).
	Removed binary locale database at each stage of testing instead
	of waiting until the end of the process to reduce the amount of
	wasted disk space.
	Replaced [ "$var" = "" ] syntax with the more concise [ -z "$var" ].
	Incorporated the name of the locale being tested in the name of the
	temporary directory.

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

	* makefile.rules (run): To avoid filling up disk space with junk files left
	behind by bad programs, created and set TMP to a temporary directory before
	running the programs, and then removed it when done.

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

	* mbsrtowcs.cpp: NUL-terminated destination sequence before
	writing it out to stdout.

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-05-15  Martin Sebor  <sebor@roguewave.com>

	* codecvt.html: Added a note to do_length() clarifying the relationship
	(or the lack thereof) between it and the C Standard Library function
	mbsrtowcs(). See the following thread:
	http://groups.google.com/group/comp.lang.c++/tree/browse_frm/thread/85ffe366e1d65734

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

	STDCXX-339
	* NONDEDUCED_CONTEXT.cpp: Removed _RWSTD_NO_INLINE_MEMBER_TEMPLATES
	config macro and all workarounds for it. Updated copyright notice.
	* bitset: Ditto
	* deque: Ditto
	* iomanip: Ditto
	* list: Ditto
	* _locale.h: Ditto
	* map: Ditto
	* queue: Ditto
	* _algobase.h: Ditto
	* _defs.h: Ditto
	* _pair.h: Ditto
	* _tree.h: Ditto
	* set: Ditto
	* string: Ditto
	* string.cc: Ditto
	* vector: Ditto
	* 25.random.shuffle.cpp: Ditto
	* 23.deque.modifiers.cpp: Ditto
	* 23.vector.cons.cpp: Ditto
	* 23.vector.modifiers.cpp: Ditto
	* rw_allocator.h: Ditto
	* 20.pairs.cpp: Ditto

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

	* value.cpp (xinit) Removed as unused.

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

	* summary.js (checkForFailures, readBuildLog): Added check to avoid
	JScript runtime error: Input past end of file Project.
	* utilities.js (stripTags): Remove "</pre>" from build log.

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

	* 22.locale.money.get.cpp (PunctData): New base class for the test
	Punct facet.
	(Punct): Derived from PunctData.
	(narrow, widen): Removed.
	(do_test): Used PunctData instead of Punct. User the testuite helpers
	rw_expand() and rw_narrow() instead of narrow() and widen(). Used the
	%{*Ac} directive to format either narrow and wide character strings.
	(test_memfun): Renamed...
	(test_get): ...to this and used PunctData instead of Punct.
	(test_long_double, test_string): Called test_get().

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

	STDCXX-411
	* money-get.html: Updated example program to (closely) match
	the latest version of the program in svn and to match shown
	output.

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

	* money_get.cpp (main): Removed a redundant template argument
	for brevity and introduced a typedef for better readability.

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

	* money_get.cpp: Made example more interesting by using thousands
	separators and more decimal places than two in input, and by making
	it possible to specify all parameters on the command line.
	Simplified the invocation of money_get::get() by taking advantage
	of the implicit conversion from ios to istreambuf_iterator.
	* money_get.out: Adjusted to match the above changes.

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

	* moneyget.out: Renamed...
	* money_get.out: ...to this to complete rev 537480.

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

	* moneyget.cpp: Renamed...
	* money_get.cpp: ...to this to match the name of the facet
	and (as closely as reasonable) the documentation page in
	the Class Reference.

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

	STDCXX-409
	* eccp.config (BUILDDIR): Set to the CWD if not defined on the command
	line to avoid setting the template directory to a bogus directory.

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

	* gen_list (de_DE.UTF-8, en_US.UTF-8, fr_FR.UTF-8, ru_RU.UTF-8,
	zh_CN.UTF-8): Added UTF-8 locales.

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

	STDCXX-407
	* stdlibug/1-4.html: Removed reference to Rogue Wave wherever
	they're not relevant/appropriate anymore and replaced with
	Apache stdcxx or similar as necessary.
	* stdlibug/1-1.html: Same.
	* stdlibug/tindex.html: Same.
	* stdlibug/33-3.html: Same.
	* stdlibug/34-2.html: Same.
	* stdlibug/1-5.html: Same.
	* stdlibug/copyright.html: Same.
	* stdlibug/40-3.html: Same.
	* stdlibug/46-1.html: Same.
	* stdlibug/1-2.html: Same.
	* stdlibug/44-1.html: Same.
	* stdlibug/noframes.html: Same.
	* stdlibug/30-2.html: Same.
	* stdlibug/booktoc.html: Same.
	* stdlibug/46.html: Same.
	* stdlibug/contact.html: Same.
	* stdlibug/frames-contents-chapter.html: Same.
	* stdlibug/VIII.html: Same.
	* stdlibref/basic-ofstream.html: Same.
	* stdlibref/ios-base.html: Same.
	* stdlibref/localeutility.html: Same.
	* stdlibref/count.html: Same.
	* stdlibref/lists.html: Same.
	* stdlibref/basic-filebuf.html: Same.
	* stdlibref/basic-ifstream.html: Same.
	* stdlibref/2-1.html: Same.
	* stdlibref/codecvt-byname.html: Same.
	* stdlibref/basic-fstream.html: Same.
	* stdlibref/1-3.html: Same.
	* stdlibref/A-3.html: Same.
	* stdlibref/localedefutility.html: Same.
	* stdlibref/partial-sort.html: Same.

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

	STDCXX-407
	* index.html: Renamed "Rogue Wave Standard Stylesheet"
	to "Apache stdcxx Stylesheet."
	* stdlibug/22-2.html: Same.
	* stdlibug/42-2.html: Same.
	* stdlibug/25-1.html: Same.
	* stdlibug/14-4.html: Same.
	* stdlibug/45-1.html: Same.
	* stdlibug/34-4.html: Same.
	* stdlibug/17.html: Same.
	* stdlibug/26-6.html: Same.
	* stdlibug/29.html: Same.
	* stdlibug/3-1.html: Same.
	* stdlibug/1-7.html: Same.
	* stdlibug/11-2.html: Same.
	* stdlibug/31-2.html: Same.
	* stdlibug/14-1.html: Same.
	* stdlibug/34-1.html: Same.
	* stdlibug/14.html: Same.
	* stdlibug/40-5.html: Same.
	* stdlibug/23-4.html: Same.
	* stdlibug/43-4.html: Same.
	* stdlibug/26-3.html: Same.
	* stdlibug/26.html: Same.
	* stdlibug/frames-intro-text.html: Same.
	* stdlibug/29-2.html: Same.
	* stdlibug/38.html: Same.
	* stdlibug/35-6.html: Same.
	* stdlibug/38-5.html: Same.
	* stdlibug/frames-intro-contents.html: Same.
	* stdlibug/1-4.html: Same.
	* stdlibug/4-3.html: Same.
	* stdlibug/7-2.html: Same.
	* stdlibug/20-2.html: Same.
	* stdlibug/11.html: Same.
	* stdlibug/40-2.html: Same.
	* stdlibug/23-1.html: Same.
	* stdlibug/43-1.html: Same.
	* stdlibug/23.html: Same.
	* stdlibug/32-4.html: Same.
	* stdlibug/15-3.html: Same.
	* stdlibug/35.html: Same.
	* stdlibug/35-3.html: Same.
	* stdlibug/18-2.html: Same.
	* stdlibug/38-2.html: Same.
	* stdlibug/1-1.html: Same.
	* stdlibug/9.html: Same.
	* stdlibug/8-4.html: Same.
	* stdlibug/frames-banner.html: Same.
	* stdlibug/12-1.html: Same.
	* stdlibug/20.html: Same.
	* stdlibug/32-1.html: Same.
	* stdlibug/32.html: Same.
	* stdlibug/24-3.html: Same.
	* stdlibug/13-6.html: Same.
	* stdlibug/44.html: Same.
	* stdlibug/27-2.html: Same.
	* stdlibug/I.html: Same.
	* stdlibug/tindex.html: Same.
	* stdlibug/2-3.html: Same.
	* stdlibug/5-2.html: Same.
	* stdlibug/8-1.html: Same.
	* stdlibug/6.html: Same.
	* stdlibug/21-1.html: Same.
	* stdlibug/41-1.html: Same.
	* stdlibug/acknow.html: Same.
	* stdlibug/30-4.html: Same.
	* stdlibug/13-3.html: Same.
	* stdlibug/41.html: Same.
	* stdlibug/33-3.html: Same.
	* stdlibug/16-2.html: Same.
	* stdlibug/22-6.html: Same.
	* stdlibug/36-2.html: Same.
	* stdlibug/19-1.html: Same.
	* stdlibug/25-5.html: Same.
	* stdlibug/39-1.html: Same.
	* stdlibug/45-5.html: Same.
	* stdlibug/28-4.html: Same.
	* stdlibug/3.html: Same.
	* stdlibug/3-5.html: Same.
	* stdlibug/V.html: Same.
	* stdlibug/9-3.html: Same.
	* stdlibug/10-1.html: Same.
	* stdlibug/30-1.html: Same.
	* stdlibug/22-3.html: Same.
	* stdlibug/42-3.html: Same.
	* stdlibug/25-2.html: Same.
	* stdlibug/14-5.html: Same.
	* stdlibug/45-2.html: Same.
	* stdlibug/28-1.html: Same.
	* stdlibug/18.html: Same.
	* stdlibug/26-7.html: Same.
	* stdlibug/lists.html: Same.
	* stdlibug/3-2.html: Same.
	* stdlibug/6-1.html: Same.
	* stdlibug/frames-contents-all.html: Same.
	* stdlibug/11-3.html: Same.
	* stdlibug/31-3.html: Same.
	* stdlibug/14-2.html: Same.
	* stdlibug/34-2.html: Same.
	* stdlibug/17-1.html: Same.
	* stdlibug/15.html: Same.
	* stdlibug/37-1.html: Same.
	* stdlibug/26-4.html: Same.
	* stdlibug/27.html: Same.
	* stdlibug/29-3.html: Same.
	* stdlibug/39.html: Same.
	* stdlibug/frames-tindex-contents.html: Same.
	* stdlibug/1-5.html: Same.
	* stdlibug/4-4.html: Same.
	* stdlibug/7-3.html: Same.
	* stdlibug/copyright.html: Same.
	* stdlibug/20-3.html: Same.
	* stdlibug/12.html: Same.
	* stdlibug/40-3.html: Same.
	* stdlibug/23-2.html: Same.
	* stdlibug/43-2.html: Same.
	* stdlibug/24.html: Same.
	* stdlibug/26-1.html: Same.
	* stdlibug/32-5.html: Same.
	* stdlibug/46-1.html: Same.
	* stdlibug/36.html: Same.
	* stdlibug/35-4.html: Same.
	* stdlibug/18-3.html: Same.
	* stdlibug/38-3.html: Same.
	* stdlibug/1-2.html: Same.
	* stdlibug/4-1.html: Same.
	* stdlibug/frames-tindex.html: Same.
	* stdlibug/index.html: Same.
	* stdlibug/12-2.html: Same.
	* stdlibug/21.html: Same.
	* stdlibug/32-2.html: Same.
	* stdlibug/15-1.html: Same.
	* stdlibug/35-1.html: Same.
	* stdlibug/33.html: Same.
	* stdlibug/24-4.html: Same.
	* stdlibug/VII.html: Same.
	* stdlibug/13-7.html: Same.
	* stdlibug/45.html: Same.
	* stdlibug/27-3.html: Same.
	* stdlibug/2-4.html: Same.
	* stdlibug/5-3.html: Same.
	* stdlibug/8-2.html: Same.
	* stdlibug/7.html: Same.
	* stdlibug/21-2.html: Same.
	* stdlibug/30.html: Same.
	* stdlibug/41-2.html: Same.
	* stdlibug/24-1.html: Same.
	* stdlibug/30-5.html: Same.
	* stdlibug/13-4.html: Same.
	* stdlibug/44-1.html: Same.
	* stdlibug/42.html: Same.
	* stdlibug/16-3.html: Same.
	* stdlibug/22-7.html: Same.
	* stdlibug/36-3.html: Same.
	* stdlibug/19-2.html: Same.
	* stdlibug/25-6.html: Same.
	* stdlibug/39-2.html: Same.
	* stdlibug/28-5.html: Same.
	* stdlibug/2-1.html: Same.
	* stdlibug/4.html: Same.
	* stdlibug/noframes.html: Same.
	* stdlibug/VI.html: Same.
	* stdlibug/10-2.html: Same.
	* stdlibug/30-2.html: Same.
	* stdlibug/13-1.html: Same.
	* stdlibug/33-1.html: Same.
	* stdlibug/22-4.html: Same.
	* stdlibug/25-3.html: Same.
	* stdlibug/14-6.html: Same.
	* stdlibug/45-3.html: Same.
	* stdlibug/28-2.html: Same.
	* stdlibug/19.html: Same.
	* stdlibug/26-8.html: Same.
	* stdlibug/1.html: Same.
	* stdlibug/3-3.html: Same.
	* stdlibug/6-2.html: Same.
	* stdlibug/9-1.html: Same.
	* stdlibug/22-1.html: Same.
	* stdlibug/42-1.html: Same.
	* stdlibug/14-3.html: Same.
	* stdlibug/34-3.html: Same.
	* stdlibug/17-2.html: Same.
	* stdlibug/16.html: Same.
	* stdlibug/37-2.html: Same.
	* stdlibug/26-5.html: Same.
	* stdlibug/28.html: Same.
	* stdlibug/booktoc.html: Same.
	* stdlibug/II.html: Same.
	* stdlibug/1-6.html: Same.
	* stdlibug/11-1.html: Same.
	* stdlibug/31-1.html: Same.
	* stdlibug/13.html: Same.
	* stdlibug/40-4.html: Same.
	* stdlibug/23-3.html: Same.
	* stdlibug/43-3.html: Same.
	* stdlibug/25.html: Same.
	* stdlibug/26-2.html: Same.
	* stdlibug/32-6.html: Same.
	* stdlibug/29-1.html: Same.
	* stdlibug/37.html: Same.
	* stdlibug/35-5.html: Same.
	* stdlibug/18-4.html: Same.
	* stdlibug/38-4.html: Same.
	* stdlibug/1-3.html: Same.
	* stdlibug/4-2.html: Same.
	* stdlibug/7-1.html: Same.
	* stdlibug/frames-displayarea.html: Same.
	* stdlibug/III.html: Same.
	* stdlibug/IV.html: Same.
	* stdlibug/20-1.html: Same.
	* stdlibug/10.html: Same.
	* stdlibug/40-1.html: Same.
	* stdlibug/12-3.html: Same.
	* stdlibug/22.html: Same.
	* stdlibug/32-3.html: Same.
	* stdlibug/15-2.html: Same.
	* stdlibug/35-2.html: Same.
	* stdlibug/34.html: Same.
	* stdlibug/18-1.html: Same.
	* stdlibug/38-1.html: Same.
	* stdlibug/13-8.html: Same.
	* stdlibug/46.html: Same.
	* stdlibug/27-4.html: Same.
	* stdlibug/contact.html: Same.
	* stdlibug/2-5.html: Same.
	* stdlibug/5-4.html: Same.
	* stdlibug/8.html: Same.
	* stdlibug/8-3.html: Same.
	* stdlibug/21-3.html: Same.
	* stdlibug/31.html: Same.
	* stdlibug/41-3.html: Same.
	* stdlibug/24-2.html: Same.
	* stdlibug/13-5.html: Same.
	* stdlibug/44-2.html: Same.
	* stdlibug/43.html: Same.
	* stdlibug/27-1.html: Same.
	* stdlibug/16-4.html: Same.
	* stdlibug/36-4.html: Same.
	* stdlibug/39-3.html: Same.
	* stdlibug/frames-contents-chapter.html: Same.
	* stdlibug/2-2.html: Same.
	* stdlibug/5-1.html: Same.
	* stdlibug/5.html: Same.
	* stdlibug/10-3.html: Same.
	* stdlibug/30-3.html: Same.
	* stdlibug/13-2.html: Same.
	* stdlibug/40.html: Same.
	* stdlibug/33-2.html: Same.
	* stdlibug/16-1.html: Same.
	* stdlibug/22-5.html: Same.
	* stdlibug/36-1.html: Same.
	* stdlibug/25-4.html: Same.
	* stdlibug/14-7.html: Same.
	* stdlibug/45-4.html: Same.
	* stdlibug/28-3.html: Same.
	* stdlibug/26-9.html: Same.
	* stdlibug/VIII.html: Same.
	* stdlibug/2.html: Same.
	* stdlibug/3-4.html: Same.
	* stdlibug/6-3.html: Same.
	* stdlibug/9-2.html: Same.
	* stdlibref/iterators.html: Same.
	* stdlibref/operatornew.html: Same.
	* stdlibref/strstream-h.html: Same.
	* stdlibref/swap.html: Same.
	* stdlibref/negators.html: Same.
	* stdlibref/stdexcept-h.html: Same.
	* stdlibref/uninitialized-fill.html: Same.
	* stdlibref/frames-intro-contents.html: Same.
	* stdlibref/insert-iterator.html: Same.
	* stdlibref/ctype-byname.html: Same.
	* stdlibref/invalid-argument.html: Same.
	* stdlibref/algorithms.html: Same.
	* stdlibref/frames-banner.html: Same.
	* stdlibref/replace-copy.html: Same.
	* stdlibref/back-insert-iterator.html: Same.
	* stdlibref/get-temporary-buffer.html: Same.
	* stdlibref/range-error.html: Same.
	* stdlibref/time-get-byname.html: Same.
	* stdlibref/set.html: Same.
	* stdlibref/mem-fun.html: Same.
	* stdlibref/num-get.html: Same.
	* stdlibref/stack-h.html: Same.
	* stdlibref/locale.html: Same.
	* stdlibref/frames-tindex-contents.html: Same.
	* stdlibref/ios-h.html: Same.
	* stdlibref/next-permutation.html: Same.
	* stdlibref/divides.html: Same.
	* stdlibref/unary-negate.html: Same.
	* stdlibref/advance.html: Same.
	* stdlibref/min-element.html: Same.
	* stdlibref/istreambuf-iterator.html: Same.
	* stdlibref/inner-product.html: Same.
	* stdlibref/noframes.html: Same.
	* stdlibref/1.html: Same.
	* stdlibref/not2.html: Same.
	* stdlibref/II.html: Same.
	* stdlibref/partition.html: Same.
	* stdlibref/predicates.html: Same.
	* stdlibref/modulus.html: Same.
	* stdlibref/unique.html: Same.
	* stdlibref/multiplies.html: Same.
	* stdlibref/2.html: Same.

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

	STDCXX-407
	* stdlibref/new-h.html: Renamed "Rogue Wave Standard Stylesheet"
	to "Apache stdcxx Stylesheet."
	* stdlibref/2-11.html: Same.
	* stdlibref/front-insert-iterator.html: Same.
	* stdlibref/char-traits.html: Same.
	* stdlibref/B.html: Same.
	* stdlibref/queue.html: Same.
	* stdlibref/reverse-iterator.html: Same.
	* stdlibref/negate.html: Same.
	* stdlibref/string.html: Same.
	* stdlibref/messages.html: Same.
	* stdlibref/numpunct.html: Same.
	* stdlibref/logical-and.html: Same.
	* stdlibref/indirect-array.html: Same.
	* stdlibref/bad-cast.html: Same.
	* stdlibref/bad-typeid.html: Same.
	* stdlibref/locale-h.html: Same.
	* stdlibref/deque-h.html: Same.
	* stdlibref/frames-intro-text.html: Same.
	* stdlibref/minus.html: Same.
	* stdlibref/istream-iterator.html: Same.
	* stdlibref/sequences.html: Same.
	* stdlibref/lower-bound.html: Same.
	* stdlibref/wstring.html: Same.
	* stdlibref/basic-ofstream.html: Same.
	* stdlibref/equal-range.html: Same.
	* stdlibref/sstream-h.html: Same.
	* stdlibref/ostrstream.html: Same.
	* stdlibref/ios-base--failure.html: Same.
	* stdlibref/find-first-of.html: Same.
	* stdlibref/complex.html: Same.
	* stdlibref/2-9.html: Same.
	* stdlibref/random-shuffle.html: Same.
	* stdlibref/algorithm-h.html: Same.
	* stdlibref/find-if.html: Same.
	* stdlibref/iterator-h.html: Same.
	* stdlibref/prev-permutation.html: Same.
	* stdlibref/adjacent-find.html: Same.
	* stdlibref/isupper.html: Same.
	* stdlibref/cerr.html: Same.
	* stdlibref/1-1.html: Same.
	* stdlibref/merge.html: Same.
	* stdlibref/ios-base.html: Same.
	* stdlibref/2-6.html: Same.
	* stdlibref/search.html: Same.
	* stdlibref/valarray-h.html: Same.
	* stdlibref/gslice.html: Same.
	* stdlibref/return-temporary-buffer.html: Same.
	* stdlibref/logical-not.html: Same.
	* stdlibref/basic-istringstream.html: Same.
	* stdlibref/use-facet.html: Same.
	* stdlibref/A-1.html: Same.
	* stdlibref/plus.html: Same.
	* stdlibref/localeutility.html: Same.
	* stdlibref/isxdigit.html: Same.
	* stdlibref/basic-string.html: Same.
	* stdlibref/compare.html: Same.
	* stdlibref/sort.html: Same.
	* stdlibref/I.html: Same.
	* stdlibref/count.html: Same.
	* stdlibref/utility-h.html: Same.
	* stdlibref/iterator.html: Same.
	* stdlibref/tindex.html: Same.
	* stdlibref/isdigit.html: Same.
	* stdlibref/outputiterators.html: Same.
	* stdlibref/ostreambuf-iterator.html: Same.
	* stdlibref/toupper.html: Same.
	* stdlibref/2-3.html: Same.
	* stdlibref/bidirectionaliterators.html: Same.
	* stdlibref/runtime-error.html: Same.
	* stdlibref/time-put-byname.html: Same.
	* stdlibref/operatordelete.html: Same.
	* stdlibref/nth-element.html: Same.
	* stdlibref/unary-function.html: Same.
	* stdlibref/valarray.html: Same.
	* stdlibref/lexicographical-compare.html: Same.
	* stdlibref/bad-exception.html: Same.
	* stdlibref/acknow.html: Same.
	* stdlibref/fill.html: Same.
	* stdlibref/uninitialized-fill-n.html: Same.
	* stdlibref/isprint.html: Same.
	* stdlibref/bitset.html: Same.
	* stdlibref/inputiterators.html: Same.
	* stdlibref/underflow-error.html: Same.
	* stdlibref/partial-sum.html: Same.
	* stdlibref/insertiterators.html: Same.
	* stdlibref/bind1st.html: Same.
	* stdlibref/binary-function.html: Same.
	* stdlibref/queue-h.html: Same.
	* stdlibref/cout.html: Same.
	* stdlibref/replace.html: Same.
	* stdlibref/iter-swap.html: Same.
	* stdlibref/wcerr.html: Same.
	* stdlibref/min.html: Same.
	* stdlibref/greater.html: Same.
	* stdlibref/money-put.html: Same.
	* stdlibref/lists.html: Same.
	* stdlibref/domain-error.html: Same.
	* stdlibref/exception.html: Same.
	* stdlibref/map-h.html: Same.
	* stdlibref/money-get.html: Same.
	* stdlibref/num-put.html: Same.
	* stdlibref/less.html: Same.
	* stdlibref/inplace-merge.html: Same.
	* stdlibref/replace-copy-if.html: Same.
	* stdlibref/not1.html: Same.
	* stdlibref/collate.html: Same.
	* stdlibref/logic-error.html: Same.
	* stdlibref/overflow-error.html: Same.
	* stdlibref/basic-filebuf.html: Same.
	* stdlibref/iterator-traits.html: Same.
	* stdlibref/associativecontainers.html: Same.
	* stdlibref/priority-queue.html: Same.
	* stdlibref/pointer-to-binary-function.html: Same.
	* stdlibref/copyright.html: Same.
	* stdlibref/isalnum.html: Same.
	* stdlibref/transform.html: Same.
	* stdlibref/list.html: Same.
	* stdlibref/exceptions.html: Same.
	* stdlibref/max.html: Same.
	* stdlibref/multimap.html: Same.
	* stdlibref/remove.html: Same.
	* stdlibref/1-2.html: Same.
	* stdlibref/wcout.html: Same.
	* stdlibref/basic-stringstream.html: Same.
	* stdlibref/sort-heap.html: Same.
	* stdlibref/2-7.html: Same.
	* stdlibref/frames-tindex.html: Same.
	* stdlibref/index.html: Same.
	* stdlibref/slice-array.html: Same.
	* stdlibref/A-2.html: Same.
	* stdlibref/pointer-to-unary-function.html: Same.
	* stdlibref/set-h.html: Same.
	* stdlibref/find.html: Same.
	* stdlibref/ctype.html: Same.
	* stdlibref/fstream-h.html: Same.
	* stdlibref/numeric-h.html: Same.
	* stdlibref/remove-if.html: Same.
	* stdlibref/distance.html: Same.
	* stdlibref/pair.html: Same.
	* stdlibref/set-intersection.html: Same.
	* stdlibref/adjacent-difference.html: Same.
	* stdlibref/moneypunct.html: Same.
	* stdlibref/numeric-limits.html: Same.
	* stdlibref/remove-copy-if.html: Same.
	* stdlibref/2-4.html: Same.
	* stdlibref/streambuf-h.html: Same.
	* stdlibref/bad-alloc.html: Same.
	* stdlibref/bitmasktypes.html: Same.
	* stdlibref/basic-ostringstream.html: Same.
	* stdlibref/basic-stringbuf.html: Same.
	* stdlibref/reverse-copy.html: Same.
	* stdlibref/functional-h.html: Same.
	* stdlibref/isspace.html: Same.
	* stdlibref/basic-ifstream.html: Same.
	* stdlibref/string-h.html: Same.
	* stdlibref/slice.html: Same.
	* stdlibref/2-1.html: Same.
	* stdlibref/list-h.html: Same.
	* stdlibref/ostream-iterator.html: Same.
	* stdlibref/vector.html: Same.
	* stdlibref/time-put.html: Same.
	* stdlibref/time-get.html: Same.
	* stdlibref/auto-ptr.html: Same.
	* stdlibref/isalpha.html: Same.
	* stdlibref/raw-storage-iterator.html: Same.
	* stdlibref/find-end.html: Same.
	* stdlibref/clog.html: Same.
	* stdlibref/islower.html: Same.
	* stdlibref/vector-h.html: Same.
	* stdlibref/generate.html: Same.
	* stdlibref/ptr-fun.html: Same.
	* stdlibref/isgraph.html: Same.
	* stdlibref/wcin.html: Same.
	* stdlibref/codecvt-byname.html: Same.
	* stdlibref/functoc.html: Same.
	* stdlibref/fpos.html: Same.
	* stdlibref/reverse.html: Same.
	* stdlibref/max-element.html: Same.
	* stdlibref/2-10.html: Same.
	* stdlibref/A.html: Same.
	* stdlibref/basic-fstream.html: Same.
	* stdlibref/gslice-array.html: Same.
	* stdlibref/for-each.html: Same.
	* stdlibref/not-equal-to.html: Same.
	* stdlibref/codecvt.html: Same.
	* stdlibref/logical-or.html: Same.
	* stdlibref/partial-sort-copy.html: Same.
	* stdlibref/push-heap.html: Same.
	* stdlibref/tolower.html: Same.
	* stdlibref/has-facet.html: Same.
	* stdlibref/rotate.html: Same.
	* stdlibref/upper-bound.html: Same.
	* stdlibref/booktoc.html: Same.
	* stdlibref/out-of-range.html: Same.
	* stdlibref/basic-streambuf.html: Same.
	* stdlibref/basic-ios.html: Same.
	* stdlibref/iscntrl.html: Same.
	* stdlibref/allocator.html: Same.
	* stdlibref/iosfwd-h.html: Same.
	* stdlibref/accumulate.html: Same.
	* stdlibref/basic-istream.html: Same.
	* stdlibref/strstream.html: Same.
	* stdlibref/streamiterators.html: Same.
	* stdlibref/complex-h.html: Same.
	* stdlibref/--iterator-category.html: Same.
	* stdlibref/functionobjects.html: Same.
	* stdlibref/1-3.html: Same.
	* stdlibref/basic-iostream.html: Same.
	* stdlibref/2-8.html: Same.
	* stdlibref/frames-displayarea.html: Same.
	* stdlibref/III.html: Same.
	* stdlibref/wclog.html: Same.
	* stdlibref/IV.html: Same.
	* stdlibref/uninitialized-copy.html: Same.
	* stdlibref/A-3.html: Same.
	* stdlibref/ispunct.html: Same.
	* stdlibref/binary-negate.html: Same.
	* stdlibref/equal-to.html: Same.
	* stdlibref/swap-ranges.html: Same.
	* stdlibref/make-heap.html: Same.
	* stdlibref/contact.html: Same.
	* stdlibref/istrstream.html: Same.
	* stdlibref/randomaccessiterators.html: Same.
	* stdlibref/ostream-h.html: Same.
	* stdlibref/stable-sort.html: Same.
	* stdlibref/forwarditerators.html: Same.
	* stdlibref/frames-classes-func.html: Same.
	* stdlibref/localedefutility.html: Same.
	* stdlibref/2-5.html: Same.
	* stdlibref/multiset.html: Same.
	* stdlibref/length-error.html: Same.
	* stdlibref/less-equal.html: Same.
	* stdlibref/operators.html: Same.
	* stdlibref/iomanip-h.html: Same.
	* stdlibref/heapoperations.html: Same.
	* stdlibref/set-union.html: Same.
	* stdlibref/exception-h.html: Same.
	* stdlibref/set-difference.html: Same.
	* stdlibref/limits-h.html: Same.
	* stdlibref/basic-ostream.html: Same.
	* stdlibref/frames-classes-alpha.html: Same.
	* stdlibref/memory-h.html: Same.
	* stdlibref/set-symmetric-difference.html: Same.
	* stdlibref/2-2.html: Same.
	* stdlibref/deque.html: Same.
	* stdlibref/mismatch.html: Same.
	* stdlibref/facets.html: Same.
	* stdlibref/equal.html: Same.
	* stdlibref/iostream-h.html: Same.
	* stdlibref/cin.html: Same.
	* stdlibref/map.html: Same.
	* stdlibref/partial-sort.html: Same.
	* stdlibref/stable-partition.html: Same.
	* stdlibref/strstreambuf.html: Same.
	* stdlibref/typeinfo-h.html: Same.
	* stdlibref/binary-search.html: Same.
	* stdlibref/istream-h.html: Same.
	* stdlibref/greater-equal.html: Same.
	* stdlibref/--distance-type.html: Same.
	* stdlibref/remove-copy.html: Same.
	* stdlibref/containers.html: Same.
	* stdlibref/stack.html: Same.
	* stdlibref/includes.html: Same.
	* stdlibref/replace-if.html: Same.
	* stdlibref/mask-array.html: Same.
	* stdlibref/pop-heap.html: Same.
	* stdlibref/copy.html: Same.

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

	* gcc.config (PICFLAGS): Avoided clever tricks in conditional
	to avoid failing to match Cygwin.

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

	* stdlibref/frames-banner.html: Made stdcxx index page replace
	the whole page instead of just a single frame.
	* stdlibug/frames-banner.html: Same.

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

	* stdlibref/frames-banner.html: Added an image of Apache logo
	and a link to the stdcxx project web page to make it easier
	for users to navigate to the site.
	* stdlibug/frames-banner.html: Same.

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

	STDCXX-407
	* B.html: Removed references to "Rogue Wave extensions."
	* frames-intro-contents.html: Same.
	* noframes.html: Same.
	* IV.html: Same.

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

	* stdlibug/22-2.html: Inserted Google Analytics tracking code
	using the sed script below:
	/<\/BODY>/ {
	$!N
	s/<\/BODY>\n<\/HTML>/\n\n<!-- Google Analytics tracking code -->\n<script src="http:\/\/www.google-analytics.com\/urchin.js" type="text\/javascript">\n<\/script>\n<script type="text\/javascript">\n    _uacct = "UA-1775151-1";\n    urchinTracker();\n<\/script>\n<!-- end of Google Analytics tracking code -->\n\n<\/BODY>\n<\/HTML>/
	}

	* stdlibug/42-2.html: Same.
	* stdlibug/25-1.html: Same.
	* stdlibug/14-4.html: Same.
	* stdlibug/45-1.html: Same.
	* stdlibug/34-4.html: Same.
	* stdlibug/17.html: Same.
	* stdlibug/26-6.html: Same.
	* stdlibug/29.html: Same.
	* stdlibug/3-1.html: Same.
	* stdlibug/1-7.html: Same.
	* stdlibug/11-2.html: Same.
	* stdlibug/31-2.html: Same.
	* stdlibug/14-1.html: Same.
	* stdlibug/34-1.html: Same.
	* stdlibug/14.html: Same.
	* stdlibug/40-5.html: Same.
	* stdlibug/23-4.html: Same.
	* stdlibug/43-4.html: Same.
	* stdlibug/26-3.html: Same.
	* stdlibug/26.html: Same.
	* stdlibug/frames-intro-text.html: Same.
	* stdlibug/29-2.html: Same.
	* stdlibug/38.html: Same.
	* stdlibug/35-6.html: Same.
	* stdlibug/38-5.html: Same.
	* stdlibug/frames-intro-contents.html: Same.
	* stdlibug/1-4.html: Same.
	* stdlibug/4-3.html: Same.
	* stdlibug/7-2.html: Same.
	* stdlibug/20-2.html: Same.
	* stdlibug/11.html: Same.
	* stdlibug/40-2.html: Same.
	* stdlibug/23-1.html: Same.
	* stdlibug/43-1.html: Same.
	* stdlibug/23.html: Same.
	* stdlibug/32-4.html: Same.
	* stdlibug/15-3.html: Same.
	* stdlibug/35.html: Same.
	* stdlibug/35-3.html: Same.
	* stdlibug/18-2.html: Same.
	* stdlibug/38-2.html: Same.
	* stdlibug/1-1.html: Same.
	* stdlibug/9.html: Same.
	* stdlibug/8-4.html: Same.
	* stdlibug/12-1.html: Same.
	* stdlibug/20.html: Same.
	* stdlibug/32-1.html: Same.
	* stdlibug/32.html: Same.
	* stdlibug/24-3.html: Same.
	* stdlibug/13-6.html: Same.
	* stdlibug/44.html: Same.
	* stdlibug/27-2.html: Same.
	* stdlibug/I.html: Same.
	* stdlibug/tindex.html: Same.
	* stdlibug/2-3.html: Same.
	* stdlibug/5-2.html: Same.
	* stdlibug/8-1.html: Same.
	* stdlibug/6.html: Same.
	* stdlibug/21-1.html: Same.
	* stdlibug/41-1.html: Same.
	* stdlibug/acknow.html: Same.
	* stdlibug/30-4.html: Same.
	* stdlibug/13-3.html: Same.
	* stdlibug/41.html: Same.
	* stdlibug/33-3.html: Same.
	* stdlibug/16-2.html: Same.
	* stdlibug/22-6.html: Same.
	* stdlibug/36-2.html: Same.
	* stdlibug/19-1.html: Same.
	* stdlibug/25-5.html: Same.
	* stdlibug/39-1.html: Same.
	* stdlibug/45-5.html: Same.
	* stdlibug/28-4.html: Same.
	* stdlibug/3.html: Same.
	* stdlibug/3-5.html: Same.
	* stdlibug/V.html: Same.
	* stdlibug/9-3.html: Same.
	* stdlibug/10-1.html: Same.
	* stdlibug/30-1.html: Same.
	* stdlibug/22-3.html: Same.
	* stdlibug/42-3.html: Same.
	* stdlibug/25-2.html: Same.
	* stdlibug/14-5.html: Same.
	* stdlibug/45-2.html: Same.
	* stdlibug/28-1.html: Same.
	* stdlibug/18.html: Same.
	* stdlibug/26-7.html: Same.
	* stdlibug/lists.html: Same.
	* stdlibug/3-2.html: Same.
	* stdlibug/6-1.html: Same.
	* stdlibug/frames-contents-all.html: Same.
	* stdlibug/11-3.html: Same.
	* stdlibug/31-3.html: Same.
	* stdlibug/14-2.html: Same.
	* stdlibug/34-2.html: Same.
	* stdlibug/17-1.html: Same.
	* stdlibug/15.html: Same.
	* stdlibug/37-1.html: Same.
	* stdlibug/26-4.html: Same.
	* stdlibug/27.html: Same.
	* stdlibug/29-3.html: Same.
	* stdlibug/39.html: Same.
	* stdlibug/frames-tindex-contents.html: Same.
	* stdlibug/1-5.html: Same.
	* stdlibug/4-4.html: Same.
	* stdlibug/7-3.html: Same.
	* stdlibug/copyright.html: Same.
	* stdlibug/20-3.html: Same.
	* stdlibug/12.html: Same.
	* stdlibug/40-3.html: Same.
	* stdlibug/23-2.html: Same.
	* stdlibug/43-2.html: Same.
	* stdlibug/24.html: Same.
	* stdlibug/26-1.html: Same.
	* stdlibug/32-5.html: Same.
	* stdlibug/46-1.html: Same.
	* stdlibug/36.html: Same.
	* stdlibug/35-4.html: Same.
	* stdlibug/18-3.html: Same.
	* stdlibug/38-3.html: Same.
	* stdlibug/1-2.html: Same.
	* stdlibug/4-1.html: Same.
	* stdlibug/12-2.html: Same.
	* stdlibug/21.html: Same.
	* stdlibug/32-2.html: Same.
	* stdlibug/15-1.html: Same.
	* stdlibug/35-1.html: Same.
	* stdlibug/33.html: Same.
	* stdlibug/24-4.html: Same.
	* stdlibug/VII.html: Same.
	* stdlibug/13-7.html: Same.
	* stdlibug/45.html: Same.
	* stdlibug/27-3.html: Same.
	* stdlibug/2-4.html: Same.
	* stdlibug/5-3.html: Same.
	* stdlibug/8-2.html: Same.
	* stdlibug/7.html: Same.
	* stdlibug/21-2.html: Same.
	* stdlibug/30.html: Same.
	* stdlibug/41-2.html: Same.
	* stdlibug/24-1.html: Same.
	* stdlibug/30-5.html: Same.
	* stdlibug/13-4.html: Same.
	* stdlibug/44-1.html: Same.
	* stdlibug/42.html: Same.
	* stdlibug/16-3.html: Same.
	* stdlibug/22-7.html: Same.
	* stdlibug/36-3.html: Same.
	* stdlibug/19-2.html: Same.
	* stdlibug/25-6.html: Same.
	* stdlibug/39-2.html: Same.
	* stdlibug/28-5.html: Same.
	* stdlibug/2-1.html: Same.
	* stdlibug/4.html: Same.
	* stdlibug/noframes.html: Same.
	* stdlibug/VI.html: Same.
	* stdlibug/10-2.html: Same.
	* stdlibug/30-2.html: Same.
	* stdlibug/13-1.html: Same.
	* stdlibug/33-1.html: Same.
	* stdlibug/22-4.html: Same.
	* stdlibug/25-3.html: Same.
	* stdlibug/14-6.html: Same.
	* stdlibug/45-3.html: Same.
	* stdlibug/28-2.html: Same.
	* stdlibug/19.html: Same.
	* stdlibug/26-8.html: Same.
	* stdlibug/1.html: Same.
	* stdlibug/3-3.html: Same.
	* stdlibug/6-2.html: Same.
	* stdlibug/9-1.html: Same.
	* stdlibug/22-1.html: Same.
	* stdlibug/42-1.html: Same.
	* stdlibug/14-3.html: Same.
	* stdlibug/34-3.html: Same.
	* stdlibug/17-2.html: Same.
	* stdlibug/16.html: Same.
	* stdlibug/37-2.html: Same.
	* stdlibug/26-5.html: Same.
	* stdlibug/28.html: Same.
	* stdlibug/booktoc.html: Same.
	* stdlibug/II.html: Same.
	* stdlibug/1-6.html: Same.
	* stdlibug/11-1.html: Same.
	* stdlibug/31-1.html: Same.
	* stdlibug/13.html: Same.
	* stdlibug/40-4.html: Same.
	* stdlibug/23-3.html: Same.
	* stdlibug/43-3.html: Same.
	* stdlibug/25.html: Same.
	* stdlibug/26-2.html: Same.
	* stdlibug/32-6.html: Same.
	* stdlibug/29-1.html: Same.
	* stdlibug/37.html: Same.
	* stdlibug/35-5.html: Same.
	* stdlibug/18-4.html: Same.
	* stdlibug/38-4.html: Same.
	* stdlibug/1-3.html: Same.
	* stdlibug/4-2.html: Same.
	* stdlibug/7-1.html: Same.
	* stdlibug/III.html: Same.
	* stdlibug/IV.html: Same.
	* stdlibug/20-1.html: Same.
	* stdlibug/10.html: Same.
	* stdlibug/40-1.html: Same.
	* stdlibug/12-3.html: Same.
	* stdlibug/22.html: Same.
	* stdlibug/32-3.html: Same.
	* stdlibug/15-2.html: Same.
	* stdlibug/35-2.html: Same.
	* stdlibug/34.html: Same.
	* stdlibug/18-1.html: Same.
	* stdlibug/38-1.html: Same.
	* stdlibug/13-8.html: Same.
	* stdlibug/46.html: Same.
	* stdlibug/27-4.html: Same.
	* stdlibug/2-5.html: Same.
	* stdlibug/5-4.html: Same.
	* stdlibug/8.html: Same.
	* stdlibug/8-3.html: Same.
	* stdlibug/21-3.html: Same.
	* stdlibug/31.html: Same.
	* stdlibug/41-3.html: Same.
	* stdlibug/24-2.html: Same.
	* stdlibug/13-5.html: Same.
	* stdlibug/44-2.html: Same.
	* stdlibug/43.html: Same.
	* stdlibug/27-1.html: Same.
	* stdlibug/16-4.html: Same.
	* stdlibug/36-4.html: Same.
	* stdlibug/39-3.html: Same.
	* stdlibug/frames-contents-chapter.html: Same.
	* stdlibug/2-2.html: Same.
	* stdlibug/5-1.html: Same.
	* stdlibug/5.html: Same.
	* stdlibug/10-3.html: Same.
	* stdlibug/30-3.html: Same.
	* stdlibug/13-2.html: Same.
	* stdlibug/40.html: Same.
	* stdlibug/33-2.html: Same.
	* stdlibug/16-1.html: Same.
	* stdlibug/22-5.html: Same.
	* stdlibug/36-1.html: Same.
	* stdlibug/25-4.html: Same.
	* stdlibug/14-7.html: Same.
	* stdlibug/45-4.html: Same.
	* stdlibug/28-3.html: Same.
	* stdlibug/26-9.html: Same.
	* stdlibug/VIII.html: Same.
	* stdlibug/2.html: Same.
	* stdlibug/3-4.html: Same.
	* stdlibug/6-3.html: Same.
	* stdlibug/9-2.html: Same.
	* stdlibref/iterators.html: Same.
	* stdlibref/new-h.html: Same.
	* stdlibref/2-11.html: Same.
	* stdlibref/B.html: Same.
	* stdlibref/char-traits.html: Same.
	* stdlibref/front-insert-iterator.html: Same.
	* stdlibref/queue.html: Same.
	* stdlibref/reverse-iterator.html: Same.
	* stdlibref/negate.html: Same.
	* stdlibref/operatornew.html: Same.
	* stdlibref/string.html: Same.
	* stdlibref/messages.html: Same.
	* stdlibref/numpunct.html: Same.
	* stdlibref/strstream-h.html: Same.
	* stdlibref/logical-and.html: Same.
	* stdlibref/swap.html: Same.
	* stdlibref/indirect-array.html: Same.
	* stdlibref/bad-cast.html: Same.
	* stdlibref/negators.html: Same.
	* stdlibref/bad-typeid.html: Same.
	* stdlibref/locale-h.html: Same.
	* stdlibref/deque-h.html: Same.
	* stdlibref/frames-intro-text.html: Same.
	* stdlibref/stdexcept-h.html: Same.
	* stdlibref/minus.html: Same.
	* stdlibref/istream-iterator.html: Same.
	* stdlibref/sequences.html: Same.
	* stdlibref/uninitialized-fill.html: Same.
	* stdlibref/lower-bound.html: Same.
	* stdlibref/wstring.html: Same.
	* stdlibref/basic-ofstream.html: Same.
	* stdlibref/equal-range.html: Same.
	* stdlibref/frames-intro-contents.html: Same.
	* stdlibref/ostrstream.html: Same.
	* stdlibref/sstream-h.html: Same.
	* stdlibref/ios-base--failure.html: Same.
	* stdlibref/2-9.html: Same.
	* stdlibref/complex.html: Same.
	* stdlibref/find-first-of.html: Same.
	* stdlibref/random-shuffle.html: Same.
	* stdlibref/algorithm-h.html: Same.
	* stdlibref/find-if.html: Same.
	* stdlibref/iterator-h.html: Same.
	* stdlibref/prev-permutation.html: Same.
	* stdlibref/isupper.html: Same.
	* stdlibref/adjacent-find.html: Same.
	* stdlibref/insert-iterator.html: Same.
	* stdlibref/cerr.html: Same.
	* stdlibref/ctype-byname.html: Same.
	* stdlibref/1-1.html: Same.
	* stdlibref/merge.html: Same.
	* stdlibref/ios-base.html: Same.
	* stdlibref/2-6.html: Same.
	* stdlibref/search.html: Same.
	* stdlibref/return-temporary-buffer.html: Same.
	* stdlibref/invalid-argument.html: Same.
	* stdlibref/gslice.html: Same.
	* stdlibref/valarray-h.html: Same.
	* stdlibref/logical-not.html: Same.
	* stdlibref/algorithms.html: Same.
	* stdlibref/basic-istringstream.html: Same.
	* stdlibref/use-facet.html: Same.
	* stdlibref/A-1.html: Same.
	* stdlibref/replace-copy.html: Same.
	* stdlibref/plus.html: Same.
	* stdlibref/localeutility.html: Same.
	* stdlibref/isxdigit.html: Same.
	* stdlibref/basic-string.html: Same.
	* stdlibref/compare.html: Same.
	* stdlibref/sort.html: Same.
	* stdlibref/I.html: Same.
	* stdlibref/count.html: Same.
	* stdlibref/utility-h.html: Same.
	* stdlibref/iterator.html: Same.
	* stdlibref/tindex.html: Same.
	* stdlibref/isdigit.html: Same.
	* stdlibref/outputiterators.html: Same.
	* stdlibref/ostreambuf-iterator.html: Same.
	* stdlibref/toupper.html: Same.
	* stdlibref/2-3.html: Same.
	* stdlibref/bidirectionaliterators.html: Same.
	* stdlibref/runtime-error.html: Same.
	* stdlibref/time-put-byname.html: Same.
	* stdlibref/operatordelete.html: Same.
	* stdlibref/nth-element.html: Same.
	* stdlibref/unary-function.html: Same.
	* stdlibref/valarray.html: Same.
	* stdlibref/lexicographical-compare.html: Same.
	* stdlibref/bad-exception.html: Same.
	* stdlibref/acknow.html: Same.
	* stdlibref/fill.html: Same.
	* stdlibref/uninitialized-fill-n.html: Same.
	* stdlibref/isprint.html: Same.
	* stdlibref/back-insert-iterator.html: Same.
	* stdlibref/bitset.html: Same.
	* stdlibref/inputiterators.html: Same.
	* stdlibref/underflow-error.html: Same.
	* stdlibref/partial-sum.html: Same.
	* stdlibref/insertiterators.html: Same.
	* stdlibref/bind1st.html: Same.
	* stdlibref/get-temporary-buffer.html: Same.
	* stdlibref/binary-function.html: Same.
	* stdlibref/queue-h.html: Same.
	* stdlibref/cout.html: Same.
	* stdlibref/replace.html: Same.
	* stdlibref/iter-swap.html: Same.
	* stdlibref/wcerr.html: Same.
	* stdlibref/range-error.html: Same.
	* stdlibref/min.html: Same.
	* stdlibref/time-get-byname.html: Same.
	* stdlibref/greater.html: Same.
	* stdlibref/set.html: Same.
	* stdlibref/money-put.html: Same.
	* stdlibref/lists.html: Same.
	* stdlibref/domain-error.html: Same.
	* stdlibref/exception.html: Same.
	* stdlibref/map-h.html: Same.
	* stdlibref/money-get.html: Same.
	* stdlibref/mem-fun.html: Same.
	* stdlibref/num-put.html: Same.
	* stdlibref/less.html: Same.
	* stdlibref/inplace-merge.html: Same.
	* stdlibref/num-get.html: Same.
	* stdlibref/replace-copy-if.html: Same.
	* stdlibref/not1.html: Same.
	* stdlibref/collate.html: Same.
	* stdlibref/logic-error.html: Same.
	* stdlibref/overflow-error.html: Same.
	* stdlibref/stack-h.html: Same.
	* stdlibref/basic-filebuf.html: Same.
	* stdlibref/iterator-traits.html: Same.
	* stdlibref/locale.html: Same.
	* stdlibref/associativecontainers.html: Same.
	* stdlibref/frames-tindex-contents.html: Same.
	* stdlibref/priority-queue.html: Same.
	* stdlibref/pointer-to-binary-function.html: Same.
	* stdlibref/isalnum.html: Same.
	* stdlibref/copyright.html: Same.
	* stdlibref/list.html: Same.
	* stdlibref/transform.html: Same.
	* stdlibref/ios-h.html: Same.
	* stdlibref/exceptions.html: Same.
	* stdlibref/next-permutation.html: Same.
	* stdlibref/max.html: Same.
	* stdlibref/multimap.html: Same.
	* stdlibref/remove.html: Same.
	* stdlibref/1-2.html: Same.
	* stdlibref/basic-stringstream.html: Same.
	* stdlibref/wcout.html: Same.
	* stdlibref/sort-heap.html: Same.
	* stdlibref/2-7.html: Same.
	* stdlibref/slice-array.html: Same.
	* stdlibref/pointer-to-unary-function.html: Same.
	* stdlibref/A-2.html: Same.
	* stdlibref/find.html: Same.
	* stdlibref/set-h.html: Same.
	* stdlibref/ctype.html: Same.
	* stdlibref/fstream-h.html: Same.
	* stdlibref/numeric-h.html: Same.
	* stdlibref/divides.html: Same.
	* stdlibref/remove-if.html: Same.
	* stdlibref/distance.html: Same.
	* stdlibref/pair.html: Same.
	* stdlibref/set-intersection.html: Same.
	* stdlibref/unary-negate.html: Same.
	* stdlibref/remove-copy-if.html: Same.
	* stdlibref/numeric-limits.html: Same.
	* stdlibref/moneypunct.html: Same.
	* stdlibref/adjacent-difference.html: Same.
	* stdlibref/advance.html: Same.
	* stdlibref/2-4.html: Same.
	* stdlibref/min-element.html: Same.
	* stdlibref/streambuf-h.html: Same.
	* stdlibref/bad-alloc.html: Same.
	* stdlibref/bitmasktypes.html: Same.
	* stdlibref/basic-ostringstream.html: Same.
	* stdlibref/basic-stringbuf.html: Same.
	* stdlibref/reverse-copy.html: Same.
	* stdlibref/isspace.html: Same.
	* stdlibref/functional-h.html: Same.
	* stdlibref/istreambuf-iterator.html: Same.
	* stdlibref/basic-ifstream.html: Same.
	* stdlibref/inner-product.html: Same.
	* stdlibref/string-h.html: Same.
	* stdlibref/2-1.html: Same.
	* stdlibref/slice.html: Same.
	* stdlibref/list-h.html: Same.
	* stdlibref/ostream-iterator.html: Same.
	* stdlibref/vector.html: Same.
	* stdlibref/time-put.html: Same.
	* stdlibref/noframes.html: Same.
	* stdlibref/auto-ptr.html: Same.
	* stdlibref/time-get.html: Same.
	* stdlibref/isalpha.html: Same.
	* stdlibref/raw-storage-iterator.html: Same.
	* stdlibref/islower.html: Same.
	* stdlibref/clog.html: Same.
	* stdlibref/find-end.html: Same.
	* stdlibref/vector-h.html: Same.
	* stdlibref/generate.html: Same.
	* stdlibref/ptr-fun.html: Same.
	* stdlibref/isgraph.html: Same.
	* stdlibref/1.html: Same.
	* stdlibref/codecvt-byname.html: Same.
	* stdlibref/wcin.html: Same.
	* stdlibref/functoc.html: Same.
	* stdlibref/fpos.html: Same.
	* stdlibref/reverse.html: Same.
	* stdlibref/max-element.html: Same.
	* stdlibref/2-10.html: Same.
	* stdlibref/basic-fstream.html: Same.
	* stdlibref/A.html: Same.
	* stdlibref/not2.html: Same.
	* stdlibref/gslice-array.html: Same.
	* stdlibref/for-each.html: Same.
	* stdlibref/not-equal-to.html: Same.
	* stdlibref/codecvt.html: Same.
	* stdlibref/logical-or.html: Same.
	* stdlibref/partial-sort-copy.html: Same.
	* stdlibref/push-heap.html: Same.
	* stdlibref/has-facet.html: Same.
	* stdlibref/tolower.html: Same.
	* stdlibref/rotate.html: Same.
	* stdlibref/booktoc.html: Same.
	* stdlibref/upper-bound.html: Same.
	* stdlibref/II.html: Same.
	* stdlibref/out-of-range.html: Same.
	* stdlibref/basic-streambuf.html: Same.
	* stdlibref/basic-ios.html: Same.
	* stdlibref/iscntrl.html: Same.
	* stdlibref/iosfwd-h.html: Same.
	* stdlibref/allocator.html: Same.
	* stdlibref/basic-istream.html: Same.
	* stdlibref/accumulate.html: Same.
	* stdlibref/strstream.html: Same.
	* stdlibref/streamiterators.html: Same.
	* stdlibref/complex-h.html: Same.
	* stdlibref/--iterator-category.html: Same.
	* stdlibref/functionobjects.html: Same.
	* stdlibref/1-3.html: Same.
	* stdlibref/basic-iostream.html: Same.
	* stdlibref/2-8.html: Same.
	* stdlibref/partition.html: Same.
	* stdlibref/III.html: Same.
	* stdlibref/wclog.html: Same.
	* stdlibref/IV.html: Same.
	* stdlibref/A-3.html: Same.
	* stdlibref/uninitialized-copy.html: Same.
	* stdlibref/predicates.html: Same.
	* stdlibref/ispunct.html: Same.
	* stdlibref/binary-negate.html: Same.
	* stdlibref/equal-to.html: Same.
	* stdlibref/swap-ranges.html: Same.
	* stdlibref/make-heap.html: Same.
	* stdlibref/istrstream.html: Same.
	* stdlibref/randomaccessiterators.html: Same.
	* stdlibref/ostream-h.html: Same.
	* stdlibref/stable-sort.html: Same.
	* stdlibref/forwarditerators.html: Same.
	* stdlibref/frames-classes-func.html: Same.
	* stdlibref/localedefutility.html: Same.
	* stdlibref/2-5.html: Same.
	* stdlibref/multiset.html: Same.
	* stdlibref/length-error.html: Same.
	* stdlibref/less-equal.html: Same.
	* stdlibref/operators.html: Same.
	* stdlibref/iomanip-h.html: Same.
	* stdlibref/heapoperations.html: Same.
	* stdlibref/set-union.html: Same.
	* stdlibref/exception-h.html: Same.
	* stdlibref/set-difference.html: Same.
	* stdlibref/limits-h.html: Same.
	* stdlibref/modulus.html: Same.
	* stdlibref/basic-ostream.html: Same.
	* stdlibref/frames-classes-alpha.html: Same.
	* stdlibref/memory-h.html: Same.
	* stdlibref/set-symmetric-difference.html: Same.
	* stdlibref/2-2.html: Same.
	* stdlibref/deque.html: Same.
	* stdlibref/mismatch.html: Same.
	* stdlibref/facets.html: Same.
	* stdlibref/unique.html: Same.
	* stdlibref/equal.html: Same.
	* stdlibref/iostream-h.html: Same.
	* stdlibref/cin.html: Same.
	* stdlibref/map.html: Same.
	* stdlibref/partial-sort.html: Same.
	* stdlibref/stable-partition.html: Same.
	* stdlibref/strstreambuf.html: Same.
	* stdlibref/typeinfo-h.html: Same.
	* stdlibref/multiplies.html: Same.
	* stdlibref/binary-search.html: Same.
	* stdlibref/istream-h.html: Same.
	* stdlibref/greater-equal.html: Same.
	* stdlibref/2.html: Same.
	* stdlibref/--distance-type.html: Same.
	* stdlibref/remove-copy.html: Same.
	* stdlibref/containers.html: Same.
	* stdlibref/stack.html: Same.
	* stdlibref/includes.html: Same.
	* stdlibref/replace-if.html: Same.
	* stdlibref/mask-array.html: Same.
	* stdlibref/pop-heap.html: Same.
	* stdlibref/copy.html: Same.

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

	* index.html: Removed executable property, set EOL style to native,
	and added the Id keyword.
	* stdlibref/find-end.html: Same.
	* stdlibref/bad-alloc.html: Same.
	* stdlibref/fstream-h.html: Same.
	* stdlibref/not-equal-to.html: Same.
	* stdlibref/iter-swap.html: Same.
	* stdlibref/stable-sort.html: Same.
	* stdlibref/collate.html: Same.
	* stdlibref/fill.html: Same.
	* stdlibref/bad-typeid.html: Same.
	* stdlibref/isgraph.html: Same.
	* stdlibref/IV.html: Same.
	* stdlibref/isupper.html: Same.
	* stdlibref/basic-stringstream.html: Same.
	* stdlibref/allocator.html: Same.
	* stdlibref/operators.html: Same.
	* stdlibref/wcin.html: Same.
	* stdlibref/basic-filebuf.html: Same.
	* stdlibref/isspace.html: Same.
	* stdlibref/frames-intro-text.html: Same.
	* stdlibref/logical-and.html: Same.
	* stdlibref/equal-to.html: Same.
	* stdlibref/auto-ptr.html: Same.
	* stdlibref/ptr-fun.html: Same.
	* stdlibref/isalnum.html: Same.
	* stdlibref/I.html: Same.
	* stdlibref/2-5.html: Same.
	* stdlibref/A.html: Same.
	* stdlibref/new-h.html: Same.
	* stdlibref/has-facet.html: Same.
	* stdlibref/sequences.html: Same.
	* stdlibref/containers.html: Same.
	* stdlibref/search.html: Same.
	* stdlibref/vector.html: Same.
	* stdlibref/isprint.html: Same.
	* stdlibref/islower.html: Same.
	* stdlibref/complex-h.html: Same.
	* stdlibref/remove-copy.html: Same.
	* stdlibref/bad-cast.html: Same.
	* stdlibref/nth-element.html: Same.
	* stdlibref/basic-ostream.html: Same.
	* stdlibref/set-intersection.html: Same.
	* stdlibref/istrstream.html: Same.
	* stdlibref/operatordelete.html: Same.
	* stdlibref/2-7.html: Same.
	* stdlibref/basic-fstream.html: Same.
	* stdlibref/sort-heap.html: Same.
	* stdlibref/set-symmetric-difference.html: Same.
	* stdlibref/strstream.html: Same.
	* stdlibref/adjacent-find.html: Same.
	* stdlibref/accumulate.html: Same.
	* stdlibref/clog.html: Same.
	* stdlibref/numeric-h.html: Same.
	* stdlibref/basic-ios.html: Same.
	* stdlibref/functionobjects.html: Same.
	* stdlibref/mismatch.html: Same.
	* stdlibref/reverse-iterator.html: Same.
	* stdlibref/time-get.html: Same.
	* stdlibref/lower-bound.html: Same.
	* stdlibref/time-put.html: Same.
	* stdlibref/istream-iterator.html: Same.
	* stdlibref/pointer-to-unary-function.html: Same.
	* stdlibref/map-h.html: Same.
	* stdlibref/list-h.html: Same.
	* stdlibref/basic-istream.html: Same.
	* stdlibref/basic-ifstream.html: Same.
	* stdlibref/pop-heap.html: Same.
	* stdlibref/plus.html: Same.
	* stdlibref/runtime-error.html: Same.
	* stdlibref/A-2.html: Same.
	* stdlibref/memory-h.html: Same.
	* stdlibref/bitmasktypes.html: Same.
	* stdlibref/binary-search.html: Same.
	* stdlibref/fpos.html: Same.
	* stdlibref/sort.html: Same.
	* stdlibref/moneypunct.html: Same.
	* stdlibref/acknow.html: Same.
	* stdlibref/basic-ostringstream.html: Same.
	* stdlibref/cin.html: Same.
	* stdlibref/char-traits.html: Same.
	* stdlibref/wclog.html: Same.
	* stdlibref/domain-error.html: Same.
	* stdlibref/compare.html: Same.
	* stdlibref/list.html: Same.
	* stdlibref/iterator-traits.html: Same.
	* stdlibref/pair.html: Same.
	* stdlibref/localeutility.html: Same.
	* stdlibref/A-3.html: Same.
	* stdlibref/rotate.html: Same.
	* stdlibref/set-union.html: Same.
	* stdlibref/1-1.html: Same.
	* stdlibref/sstream-h.html: Same.
	* stdlibref/2-3.html: Same.
	* stdlibref/front-insert-iterator.html: Same.
	* stdlibref/money-get.html: Same.
	* stdlibref/lexicographical-compare.html: Same.
	* stdlibref/ios-base--failure.html: Same.
	* stdlibref/numpunct.html: Same.
	* stdlibref/2-6.html: Same.
	* stdlibref/bitset.html: Same.
	* stdlibref/replace-if.html: Same.
	* stdlibref/greater.html: Same.
	* stdlibref/valarray.html: Same.
	* stdlibref/minus.html: Same.
	* stdlibref/2-8.html: Same.
	* stdlibref/basic-ofstream.html: Same.
	* stdlibref/max-element.html: Same.
	* stdlibref/overflow-error.html: Same.
	* stdlibref/wcout.html: Same.
	* stdlibref/binary-negate.html: Same.
	* stdlibref/stack.html: Same.
	* stdlibref/A-1.html: Same.
	* stdlibref/iostream-h.html: Same.
	* stdlibref/booktoc.html: Same.
	* stdlibref/facets.html: Same.
	* stdlibref/reverse.html: Same.
	* stdlibref/partial-sort-copy.html: Same.
	* stdlibref/wcerr.html: Same.
	* stdlibref/money-put.html: Same.
	* stdlibref/less-equal.html: Same.
	* stdlibref/insertiterators.html: Same.
	* stdlibref/contact.html: Same.
	* stdlibref/stable-partition.html: Same.
	* stdlibref/multiset.html: Same.
	* stdlibref/raw-storage-iterator.html: Same.
	* stdlibref/frames-classes-alpha.html: Same.
	* stdlibref/--iterator-category.html: Same.
	* stdlibref/find.html: Same.
	* stdlibref/time-put-byname.html: Same.
	* stdlibref/basic-istringstream.html: Same.
	* stdlibref/num-put.html: Same.
	* stdlibref/set-h.html: Same.
	* stdlibref/frames-displayarea.html: Same.
	* stdlibref/queue-h.html: Same.
	* stdlibref/min.html: Same.
	* stdlibref/swap-ranges.html: Same.
	* stdlibref/binary-function.html: Same.
	* stdlibref/2-10.html: Same.
	* stdlibref/iomanip-h.html: Same.
	* stdlibref/forwarditerators.html: Same.
	* stdlibref/bidirectionaliterators.html: Same.
	* stdlibref/transform.html: Same.
	* stdlibref/frames-tindex.html: Same.
	* stdlibref/strstreambuf.html: Same.
	* stdlibref/negate.html: Same.
	* stdlibref/slice-array.html: Same.
	* stdlibref/associativecontainers.html: Same.
	* stdlibref/basic-stringbuf.html: Same.
	* stdlibref/copy.html: Same.
	* stdlibref/valarray-h.html: Same.
	* stdlibref/ostream-h.html: Same.
	* stdlibref/equal-range.html: Same.
	* stdlibref/limits-h.html: Same.
	* stdlibref/replace-copy-if.html: Same.
	* stdlibref/exception-h.html: Same.
	* stdlibref/iscntrl.html: Same.
	* stdlibref/tolower.html: Same.
	* stdlibref/III.html: Same.
	* stdlibref/underflow-error.html: Same.
	* stdlibref/gslice-array.html: Same.
	* stdlibref/localedefutility.html: Same.
	* stdlibref/make-heap.html: Same.
	* stdlibref/outputiterators.html: Same.
	* stdlibref/unary-function.html: Same.
	* stdlibref/priority-queue.html: Same.
	* stdlibref/generate.html: Same.
	* stdlibref/streambuf-h.html: Same.
	* stdlibref/prev-permutation.html: Same.
	* stdlibref/push-heap.html: Same.
	* stdlibref/use-facet.html: Same.
	* stdlibref/logical-or.html: Same.
	* stdlibref/find-first-of.html: Same.
	* stdlibref/multimap.html: Same.
	* stdlibref/toupper.html: Same.
	* stdlibref/gslice.html: Same.
	* stdlibref/codecvt.html: Same.
	* stdlibref/string-h.html: Same.
	* stdlibref/find-if.html: Same.
	* stdlibref/1-2.html: Same.
	* stdlibref/cerr.html: Same.
	* stdlibref/index.html: Same.
	* stdlibref/ios-base.html: Same.
	* stdlibref/ostream-iterator.html: Same.
	* stdlibref/includes.html: Same.
	* stdlibref/messages.html: Same.
	* stdlibref/2-11.html: Same.
	* stdlibref/B.html: Same.
	* stdlibref/bind1st.html: Same.
	* stdlibref/logical-not.html: Same.
	* stdlibref/numeric-limits.html: Same.
	* stdlibref/inplace-merge.html: Same.
	* stdlibref/isxdigit.html: Same.
	* stdlibref/2-2.html: Same.
	* stdlibref/deque-h.html: Same.
	* stdlibref/slice.html: Same.
	* stdlibref/count.html: Same.
	* stdlibref/2-1.html: Same.
	* stdlibref/random-shuffle.html: Same.
	* stdlibref/for-each.html: Same.
	* stdlibref/functoc.html: Same.
	* stdlibref/max.html: Same.
	* stdlibref/partial-sum.html: Same.
	* stdlibref/streamiterators.html: Same.
	* stdlibref/indirect-array.html: Same.
	* stdlibref/algorithm-h.html: Same.
	* stdlibref/distance.html: Same.
	* stdlibref/queue.html: Same.
	* stdlibref/utility-h.html: Same.
	* stdlibref/basic-string.html: Same.
	* stdlibref/remove-if.html: Same.
	* stdlibref/exceptions.html: Same.
	* stdlibref/merge.html: Same.
	* stdlibref/partial-sort.html: Same.
	* stdlibref/vector-h.html: Same.
	* stdlibref/iterator-h.html: Same.
	* stdlibref/mask-array.html: Same.
	* stdlibref/cout.html: Same.
	* stdlibref/heapoperations.html: Same.
	* stdlibref/ostreambuf-iterator.html: Same.
	* stdlibref/uninitialized-copy.html: Same.
	* stdlibref/uninitialized-fill-n.html: Same.
	* stdlibref/length-error.html: Same.
	* stdlibref/reverse-copy.html: Same.
	* stdlibref/adjacent-difference.html: Same.
	* stdlibref/2-9.html: Same.
	* stdlibref/basic-iostream.html: Same.
	* stdlibref/exception.html: Same.
	* stdlibref/remove.html: Same.
	* stdlibref/less.html: Same.
	* stdlibref/typeinfo-h.html: Same.
	* stdlibref/locale-h.html: Same.
	* stdlibref/functional-h.html: Same.
	* stdlibref/isalpha.html: Same.
	* stdlibref/basic-streambuf.html: Same.
	* stdlibref/istream-h.html: Same.
	* stdlibref/iterator.html: Same.
	* stdlibref/lists.html: Same.
	* stdlibref/pointer-to-binary-function.html: Same.
	* stdlibref/not1.html: Same.
	* stdlibref/upper-bound.html: Same.
	* stdlibref/out-of-range.html: Same.
	* stdlibref/codecvt-byname.html: Same.
	* stdlibref/iosfwd-h.html: Same.
	* stdlibref/tindex.html: Same.
	* stdlibref/wstring.html: Same.
	* stdlibref/string.html: Same.
	* stdlibref/complex.html: Same.
	* stdlibref/1-3.html: Same.
	* stdlibref/greater-equal.html: Same.
	* stdlibref/ostrstream.html: Same.
	* stdlibref/2-4.html: Same.
	* stdlibref/copyright.html: Same.
	* stdlibref/frames-classes-func.html: Same.
	* stdlibref/remove-copy-if.html: Same.
	* stdlibref/ctype.html: Same.
	* stdlibref/isdigit.html: Same.
	* stdlibref/inputiterators.html: Same.
	* stdlibref/logic-error.html: Same.
	* stdlibref/equal.html: Same.
	* stdlibref/--distance-type.html: Same.
	* stdlibref/randomaccessiterators.html: Same.
	* stdlibref/deque.html: Same.
	* stdlibref/ispunct.html: Same.
	* stdlibref/return-temporary-buffer.html: Same.
	* stdlibref/set-difference.html: Same.
	* stdlibref/bad-exception.html: Same.
	* stdlibref/replace.html: Same.
	* stdlibref/map.html: Same.
	* stdlibref/unique.html: Same.
	* stdlibref/modulus.html: Same.
	* stdlibref/mem-fun.html: Same.
	* stdlibref/strstream-h.html: Same.
	* stdlibref/time-get-byname.html: Same.
	* stdlibref/unary-negate.html: Same.
	* stdlibref/advance.html: Same.
	* stdlibref/multiplies.html: Same.
	* stdlibref/set.html: Same.
	* stdlibref/get-temporary-buffer.html: Same.
	* stdlibref/II.html: Same.
	* stdlibref/replace-copy.html: Same.
	* stdlibref/num-get.html: Same.
	* stdlibref/frames-tindex-contents.html: Same.
	* stdlibref/invalid-argument.html: Same.
	* stdlibref/noframes.html: Same.
	* stdlibref/inner-product.html: Same.
	* stdlibref/istreambuf-iterator.html: Same.
	* stdlibref/frames-banner.html: Same.
	* stdlibref/uninitialized-fill.html: Same.
	* stdlibref/partition.html: Same.
	* stdlibref/predicates.html: Same.
	* stdlibref/stack-h.html: Same.
	* stdlibref/ctype-byname.html: Same.
	* stdlibref/1.html: Same.
	* stdlibref/min-element.html: Same.
	* stdlibref/operatornew.html: Same.
	* stdlibref/swap.html: Same.
	* stdlibref/insert-iterator.html: Same.
	* stdlibref/not2.html: Same.
	* stdlibref/iterators.html: Same.
	* stdlibref/2.html: Same.
	* stdlibref/stdexcept-h.html: Same.
	* stdlibref/next-permutation.html: Same.
	* stdlibref/divides.html: Same.
	* stdlibref/algorithms.html: Same.
	* stdlibref/back-insert-iterator.html: Same.
	* stdlibref/frames-intro-contents.html: Same.
	* stdlibref/locale.html: Same.
	* stdlibref/ios-h.html: Same.
	* stdlibref/range-error.html: Same.
	* stdlibref/negators.html: Same.
	* stdlibug/43-3.html: Same.
	* stdlibug/26-3.html: Same.
	* stdlibug/IV.html: Same.
	* stdlibug/8-2.html: Same.
	* stdlibug/4-2.html: Same.
	* stdlibug/28-3.html: Same.
	* stdlibug/VIII.html: Same.
	* stdlibug/42-3.html: Same.
	* stdlibug/18-1.html: Same.
	* stdlibug/8-3.html: Same.
	* stdlibug/26-7.html: Same.
	* stdlibug/31-3.html: Same.
	* stdlibug/27-4.html: Same.
	* stdlibug/1-6.html: Same.
	* stdlibug/frames-intro-text.html: Same.
	* stdlibug/45-3.html: Same.
	* stdlibug/5-3.html: Same.
	* stdlibug/23-2.html: Same.
	* stdlibug/6-2.html: Same.
	* stdlibug/24-4.html: Same.
	* stdlibug/I.html: Same.
	* stdlibug/38-3.html: Same.
	* stdlibug/38-4.html: Same.
	* stdlibug/43-4.html: Same.
	* stdlibug/12.html: Same.
	* stdlibug/2-5.html: Same.
	* stdlibug/22-3.html: Same.
	* stdlibug/45-5.html: Same.
	* stdlibug/10-3.html: Same.
	* stdlibug/26-1.html: Same.
	* stdlibug/45-1.html: Same.
	* stdlibug/27-1.html: Same.
	* stdlibug/5-1.html: Same.
	* stdlibug/38-5.html: Same.
	* stdlibug/15-2.html: Same.
	* stdlibug/3.html: Same.
	* stdlibug/26-6.html: Same.
	* stdlibug/37-2.html: Same.
	* stdlibug/43.html: Same.
	* stdlibug/22-5.html: Same.
	* stdlibug/3-3.html: Same.
	* stdlibug/32-4.html: Same.
	* stdlibug/26.html: Same.
	* stdlibug/13-4.html: Same.
	* stdlibug/23.html: Same.
	* stdlibug/19-2.html: Same.
	* stdlibug/29.html: Same.
	* stdlibug/19.html: Same.
	* stdlibug/14.html: Same.
	* stdlibug/33-1.html: Same.
	* stdlibug/7-2.html: Same.
	* stdlibug/5-4.html: Same.
	* stdlibug/40-5.html: Same.
	* stdlibug/34-3.html: Same.
	* stdlibug/24-2.html: Same.
	* stdlibug/41-2.html: Same.
	* stdlibug/11-3.html: Same.
	* stdlibug/10.html: Same.
	* stdlibug/14-7.html: Same.
	* stdlibug/8-1.html: Same.
	* stdlibug/VI.html: Same.
	* stdlibug/35.html: Same.
	* stdlibug/35-4.html: Same.
	* stdlibug/acknow.html: Same.
	* stdlibug/33-3.html: Same.
	* stdlibug/44.html: Same.
	* stdlibug/29-1.html: Same.
	* stdlibug/40-3.html: Same.
	* stdlibug/31-2.html: Same.
	* stdlibug/28.html: Same.
	* stdlibug/36.html: Same.
	* stdlibug/46-1.html: Same.
	* stdlibug/34-4.html: Same.
	* stdlibug/1-1.html: Same.
	* stdlibug/45-2.html: Same.
	* stdlibug/2-3.html: Same.
	* stdlibug/21-3.html: Same.
	* stdlibug/13-5.html: Same.
	* stdlibug/39-2.html: Same.
	* stdlibug/20-2.html: Same.
	* stdlibug/22-7.html: Same.
	* stdlibug/23-3.html: Same.
	* stdlibug/33-2.html: Same.
	* stdlibug/16-4.html: Same.
	* stdlibug/42.html: Same.
	* stdlibug/28-4.html: Same.
	* stdlibug/25-6.html: Same.
	* stdlibug/35-3.html: Same.
	* stdlibug/25.html: Same.
	* stdlibug/32-5.html: Same.
	* stdlibug/9-1.html: Same.
	* stdlibug/24-3.html: Same.
	* stdlibug/booktoc.html: Same.
	* stdlibug/39-1.html: Same.
	* stdlibug/14-3.html: Same.
	* stdlibug/26-5.html: Same.
	* stdlibug/contact.html: Same.
	* stdlibug/31-1.html: Same.
	* stdlibug/13-3.html: Same.
	* stdlibug/36-4.html: Same.
	* stdlibug/38-2.html: Same.
	* stdlibug/12-3.html: Same.
	* stdlibug/5.html: Same.
	* stdlibug/16-2.html: Same.
	* stdlibug/frames-displayarea.html: Same.
	* stdlibug/28-2.html: Same.
	* stdlibug/34-1.html: Same.
	* stdlibug/14-4.html: Same.
	* stdlibug/17.html: Same.
	* stdlibug/13-7.html: Same.
	* stdlibug/41-1.html: Same.
	* stdlibug/32.html: Same.
	* stdlibug/13-8.html: Same.
	* stdlibug/6.html: Same.
	* stdlibug/32-6.html: Same.
	* stdlibug/27-3.html: Same.
	* stdlibug/22-1.html: Same.
	* stdlibug/43-2.html: Same.
	* stdlibug/34.html: Same.
	* stdlibug/frames-tindex.html: Same.
	* stdlibug/13-6.html: Same.
	* stdlibug/24.html: Same.
	* stdlibug/21-1.html: Same.
	* stdlibug/40-1.html: Same.
	* stdlibug/38-1.html: Same.
	* stdlibug/45-4.html: Same.
	* stdlibug/34-2.html: Same.
	* stdlibug/10-1.html: Same.
	* stdlibug/39.html: Same.
	* stdlibug/24-1.html: Same.
	* stdlibug/15-1.html: Same.
	* stdlibug/11-2.html: Same.
	* stdlibug/35-1.html: Same.
	* stdlibug/III.html: Same.
	* stdlibug/9.html: Same.
	* stdlibug/22-6.html: Same.
	* stdlibug/3-5.html: Same.
	* stdlibug/5-2.html: Same.
	* stdlibug/3-4.html: Same.
	* stdlibug/43-1.html: Same.
	* stdlibug/V.html: Same.
	* stdlibug/22-2.html: Same.
	* stdlibug/41.html: Same.
	* stdlibug/38.html: Same.
	* stdlibug/13.html: Same.
	* stdlibug/41-3.html: Same.
	* stdlibug/39-3.html: Same.
	* stdlibug/20.html: Same.
	* stdlibug/14-5.html: Same.
	* stdlibug/40.html: Same.
	* stdlibug/3-2.html: Same.
	* stdlibug/26-2.html: Same.
	* stdlibug/20-3.html: Same.
	* stdlibug/1-2.html: Same.
	* stdlibug/30-2.html: Same.
	* stdlibug/7-1.html: Same.
	* stdlibug/18-4.html: Same.
	* stdlibug/index.html: Same.
	* stdlibug/32-2.html: Same.
	* stdlibug/25-2.html: Same.
	* stdlibug/29-3.html: Same.
	* stdlibug/21.html: Same.
	* stdlibug/33.html: Same.
	* stdlibug/2-2.html: Same.
	* stdlibug/8-4.html: Same.
	* stdlibug/45.html: Same.
	* stdlibug/2-1.html: Same.
	* stdlibug/14-1.html: Same.
	* stdlibug/42-1.html: Same.
	* stdlibug/11.html: Same.
	* stdlibug/13-2.html: Same.
	* stdlibug/15-3.html: Same.
	* stdlibug/frames-contents-chapter.html: Same.
	* stdlibug/7-3.html: Same.
	* stdlibug/36-3.html: Same.
	* stdlibug/35-6.html: Same.
	* stdlibug/37-1.html: Same.
	* stdlibug/7.html: Same.
	* stdlibug/11-1.html: Same.
	* stdlibug/18-2.html: Same.
	* stdlibug/18.html: Same.
	* stdlibug/26-9.html: Same.
	* stdlibug/28-1.html: Same.
	* stdlibug/30.html: Same.
	* stdlibug/30-3.html: Same.
	* stdlibug/40-2.html: Same.
	* stdlibug/17-1.html: Same.
	* stdlibug/20-1.html: Same.
	* stdlibug/14-2.html: Same.
	* stdlibug/6-3.html: Same.
	* stdlibug/10-2.html: Same.
	* stdlibug/32-1.html: Same.
	* stdlibug/23-1.html: Same.
	* stdlibug/25-1.html: Same.
	* stdlibug/1-5.html: Same.
	* stdlibug/22-4.html: Same.
	* stdlibug/35-5.html: Same.
	* stdlibug/22.html: Same.
	* stdlibug/VII.html: Same.
	* stdlibug/lists.html: Same.
	* stdlibug/27.html: Same.
	* stdlibug/21-2.html: Same.
	* stdlibug/4-1.html: Same.
	* stdlibug/tindex.html: Same.
	* stdlibug/frames-contents-all.html: Same.
	* stdlibug/1-7.html: Same.
	* stdlibug/1-3.html: Same.
	* stdlibug/2-4.html: Same.
	* stdlibug/copyright.html: Same.
	* stdlibug/13-1.html: Same.
	* stdlibug/25-5.html: Same.
	* stdlibug/16.html: Same.
	* stdlibug/36-2.html: Same.
	* stdlibug/46.html: Same.
	* stdlibug/37.html: Same.
	* stdlibug/4-3.html: Same.
	* stdlibug/30-4.html: Same.
	* stdlibug/4.html: Same.
	* stdlibug/44-2.html: Same.
	* stdlibug/17-2.html: Same.
	* stdlibug/26-8.html: Same.
	* stdlibug/30-1.html: Same.
	* stdlibug/29-2.html: Same.
	* stdlibug/8.html: Same.
	* stdlibug/40-4.html: Same.
	* stdlibug/36-1.html: Same.
	* stdlibug/14-6.html: Same.
	* stdlibug/9-2.html: Same.
	* stdlibug/18-3.html: Same.
	* stdlibug/32-3.html: Same.
	* stdlibug/42-2.html: Same.
	* stdlibug/31.html: Same.
	* stdlibug/30-5.html: Same.
	* stdlibug/II.html: Same.
	* stdlibug/9-3.html: Same.
	* stdlibug/frames-tindex-contents.html: Same.
	* stdlibug/12-2.html: Same.
	* stdlibug/noframes.html: Same.
	* stdlibug/4-4.html: Same.
	* stdlibug/6-1.html: Same.
	* stdlibug/frames-banner.html: Same.
	* stdlibug/25-4.html: Same.
	* stdlibug/16-1.html: Same.
	* stdlibug/26-4.html: Same.
	* stdlibug/3-1.html: Same.
	* stdlibug/1.html: Same.
	* stdlibug/1-4.html: Same.
	* stdlibug/35-2.html: Same.
	* stdlibug/16-3.html: Same.
	* stdlibug/2.html: Same.
	* stdlibug/28-5.html: Same.
	* stdlibug/23-4.html: Same.
	* stdlibug/25-3.html: Same.
	* stdlibug/27-2.html: Same.
	* stdlibug/12-1.html: Same.
	* stdlibug/frames-intro-contents.html: Same.
	* stdlibug/15.html: Same.
	* stdlibug/19-1.html: Same.
	* stdlibug/44-1.html: Same.

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

	* mbsrtowcs.cpp: New example program to demonstrate an implementation
	of the C Standard Library function mbsrtowcs() in terms of the C++
	Standard Library codecvt facet precipitated by the Usenet thread:
	http://groups.google.com/group/comp.lang.c++/browse_thread/thread/85ffe366e1d65734
	* mbsrtowcs.out: Expected output of the example program.

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

	* environ.cpp [FreeBSD] (rw_putenv): Ignored unsetenv() return
	value since the function is declared to return void on FreeBSD.

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

	* file.cpp (P_tmpdir): Added a comment.

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

	* index.html: Added Google Analytics tracking code and reformatted.
	* stdlibug/frames-banner.html: Same.
	* stdlibref/frames-banner.html: Same.
	* stdlibug/index.html: Reformatted.
	* stdlibref/index.html: Reformatted.

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

	STDCXX-338
	* _config-gcc.h [__CYGWIN__](_RWSTD_NO_EXCEPTION_WHAT): Undefined
	to prevent linker errors due to the symbol being multiply defined.

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

	* _config-msvc.h (_RWSTD_DLLIMPORT): Added comments.

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

	STDCXX-397
	* algorithm.cc (__introsort_loop): Reduced max_depth before each
	recursive call rather than after.

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

	STDCXX-399
	* codecvt.html: Zero-initialized mbstate_t variable in example code
	before passing it to codecvt::in() and codecvt::out() (as done in
	revision 533806. Replaced std::endl with '\n' for efficiency.

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

	* codecvt.cpp (main): Zero-initialized mbstate_t variable
	before passing it to codecvt::in() and codecvt::out().
	Replaced std::endl with '\n' for efficiency.

2007-04-26 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-220
	* collate.cpp (def::add_missing_values): Added checking of the
	iterator validity before use.

2007-04-26 Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-398
	* projectdef.js (projectCreateVCProject): Added workarounds to build
	projects with ".obj" in name on MSVC 7.x

2007-04-24 Farid Zaripov <Farid_Zaripov@epam.com>

	* configure.wsf: "Checking" replaced with "checking" for consistency
	(checkHeaders): removed variable hdrname2.
	* utilities.js (stripTags): Rewritten to correctly extract text from Buildlog.htm.
	* build.wsf (event_ProjectBuildFinished): Removed invoking of the decodeHTML()
	because of this function invoked in stripTags().

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

	* runall.wsf (runAllExamples, parseStatus): Added handling
	of the status LINK.

2007-04-20 Farid Zaripov <Farid_Zaripov@epam.com>

	* runall.wsf: Added options /PRJDIR and /COMPAT, removed options /BUILDTYPE and /COPYDLL
	* projectdef.js: Add the library path to the PATH environment variable before
	invoking scripts or utilities (exec, localedef)
	* projects.js: Ditto. Removed copying libstdxx.dll to bin directory before invoking
	scripts or utilities

2007-04-16 Farid Zaripov <Farid_Zaripov@epam.com>

	* locale_stub.cpp (main): Corrected calculation of
	the command line length (arglen).

2007-04-13 Farid Zaripov <Farid_Zaripov@epam.com>

	* projects.js (CreateProjectsDefs): Corrected path to the
	shared library.

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

	* GNUmakefile.rwt (CXXPRELINK): Added LDLIBS to avoid IBM xlC link
	failures.

2007-04-11 Farid Zaripov <Farid_Zaripov@epam.com>

	* projects.js (localedef): Added a dependency on locale.cpp and
 	memchk.cpp.
 	(locale): Replaced all dependencies with one on locale_stub.cpp.

2007-04-11 Farid Zaripov <Farid_Zaripov@epam.com>

	* generate.wsf (Echo): New function to replace WScript.Echo().

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

	STDCXX-393
	* STRUCT_TM.cpp (OFF): #defined a helper macro when the offsetof()
	macro from <stddef.h> doesn't work (i.e., when _RWSTD_NO_OFFSETOF
	is #defined).

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

	* limits (_RWSTD_ROUND_STYLE): #defined to round_indeterminate
	when the configuration macro _RWSTD_FLT_ROUNDS is not #defined.

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

	* LIMITS.cpp (<limits.h>): Removed an unnecessary #include directive
	(causes compilation errors with EDG eccp -A on Linux due to the use
	of the gcc #include_next extension in system headers).

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

	* gcc.config (wide): Encoded the PID of the shell in a temporary file
	name to prevent collisions. Removed a stray $ from an invocation of
	the echo built-in.

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

	* _mbstate.h: Updated ASF license.

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

	STDCXX-392
	* _mbstate.h (_RWSTD_MBSTATE_T): #defined macro for generic OS.

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

	* 21.string.access.cpp (test_access): Cast an argument to
	a (potentially) wider type to silence the pesky HP aCC 3.73
	Warning (suggestion) 887: Type T is smaller than type U,
	unwanted widening in value may result.
	* 21.string.append.cpp (test_append): Same.

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

	STDCXX-390
	* _specialized.h (__rw_construct): Removed const qualification from
	second parameter and let the compiler deduce the cv-qualifier from
	the actual argument.

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-04-06  Martin Sebor  <sebor@roguewave.com>

	STDCXX-386
	* locale.cpp (main): Renamed...
	(locale_main): ...to this and removed exception handling.
	(print_mon): Added missing comma.
	* localedef.cpp (main): Renamed...
	(localedef_main): ...to this and removed exception handling.
	(main): Invoked locale_main() or localedef_main() depending on whether
	the first command line option is the special keyword "--locale-mode"
	or something else. Handled exceptions from either function.
	* locale_stub.cpp: New. Invokes localedef --locale-mode ...
	* GNUmakefile.bin (localedef): Added a dependency on locale.o and
	memchk.o.
	(locale): Replaced all dependencies with one on locale_stub.o so
	as to avoid linking the same object files into more than one program.

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

	* build.wsf: Rename stdlib to stdcxx.
	* generate.wsf: Ditto.
	* makelog.wsf: Ditto.
	* projects.js: Ditto. Rename out library name from
	stdlib.[lib|dll] to libstd.[lib|dll] to consistency
	with unix names
	* runall.wsf: The same.

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

	STDCXX-352
	* gcc.config [Cygwin]: Set SHARED_SUFFIX = .dll

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

	* valcmp.cpp (rw_fltcmp): Corrected typos in preprocessor conditional.

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

	* build.wsf (BuildProject): Get real name of the project file
	instead of the predefined PrjName.vcproj.
	* generate.wsf (convertSolutions): New function to convert
	the solution(s) from MSVC to ICC format.
	(generate): Use convertSolutions() to convert the all
	created solutions.
	* summary.js (saveSummaryHeaderMulti): Close file to unlock
	it before delete.

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

	STDCXX-385
	* vector.cc (_C_insert_range): Renamed a loop control variable
	to prevent clashing with another, and to silence a bogus HP
	cadvise error #2101: variable has already been declared in the
	current scope.

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

	* GNUmakefile.tst (RWTESTDIR): Removed redundant variable.
	(INCLUDES): Removed $(RWTESTDIR)/include (a duplicate of
	$(TESTDIR)/include).
	* GNUmakefile.rwt (SRCDIRS, INCLUDE, VPATH): Removed redundant
	references to $(RWTESTDIR).
	(TARGET): Removed incorrect/unused variable.

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

	* 21.string.find.last.of.cpp (TEST): Replaced NPOS with -1 to silence
	(the justified) gcc warning: overflow in implicit constant conversion.

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

	* 27.ostream.cpp (test_formatted): Corrected wide character format
	directives.

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

	STDCXX-383
	* string (_C_off): Convenience functions to compute the unsigned
	distance between two iterators or the offset of an iterator from
	the beginning of the container.
	(insert, erase, replace): Used _C_off() to silence HP aCC 3.76
	remark #4271-D: type conversion may lose sign.

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

	STDCXX-382
	* limits (_RWSTD_DIGITS): Cast a Boolean expression to int to silence
	many HP aCC 3.76 remarks #4296-D: arithmetic operation on boolean type.

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

	STDCXX-379
	* _config-xlc.h (_RWSTD_NO_EXTERN_TEMPLATE): Hardcoded macro
	for XLC++ 8.0 and prior to work around a compiler bug.

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

	* process.cpp (<signal.h>, <sys/types.h>): Included for kill(), pid_t.
	(E2BIG, SIGCHLD, SIGHUP, SIGQUIT, SIGKILL): Defined if not defined by
	system headers.
	(kill): Declared for EDG eccp demo.

2007-03-29  Farid Zaripov <Farid_Zaripov@epam.com>

	* 21.string.io.cpp: Used std::size_t instead of size_t.

2007-03-29  Farid Zaripov <Farid_Zaripov@epam.com>

	* 23.list.assign.cpp: Used std::size_t instead of size_t.
	* 23.list.capacity.cpp: Ditto.
	* 23.list.cons.cpp: Ditto.
	* 23.list.erase.cpp: Ditto.
	* 23.list.insert.cpp: Ditto.
	* 23.list.iterators.cpp: Ditto.

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

	* GNUmakefile (CXXFLAGS.narrow, LDFLAGS.narrow, LDSOFLAGS.narrow,
	ARFLAGS.narrow): Added options to BUILDMODE whenever a "narrow"
	BUILDTYPE (i.e., one of { 8s, 11s, 12s, and 15s } is specified.
	* acc.config (CXXFLAGS.narrow, LDFLAGS.narrow, LDSOFLAGS.narrow,
	ARFLAGS.narrow): Commented out options implicit in the default
	invocation of the compiler.
	* mipspro.config: Ditto.
	* vacpp.config: Ditto.
	* gcc.config (CXXFLAGS.narrow, LDFLAGS.narrow, LDSOFLAGS.narrow,
	ARFLAGS.narrow, CXXFLAGS.wide, LDFLAGS.wide, LDSOFLAGS.wide,
	ARFLAGS.wide): Autodetected whether the default invocation of
	the compiler produces narrow (32-bit) or wide (64-bit) code and
	set options accordingly, avoiding specifying redundant options.

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

	* sunpro.config: Added a Makefile file type tag for emacs.

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-28  Farid Zaripov <Farid_Zaripov@epam.com>

	* 23.list.assign.cpp (_rw_advance): Removed static keyword.
	* 23.list.cons.cpp (_rw_advance): Ditto.
	* 23.list.erase.cpp (_rw_advance, _rw_distance): Ditto.
	* 23.list.insert.cpp (_rw_advance, _rw_distance): Ditto.

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

	STDCXX-112
	* etc/config/README: Moved to...
	* README: ...here.

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

	STDCXX-134
	* driver.cpp (rw_vtest): Extended column width to accommodate very
	large values.

	STDCXX-376
	* driver.cpp (rw_vtest): Used floating point arithmetic to avoid
	integer overflow on very large values.

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

	* driver.cpp (_rw_setopt_ulimit): Silenced gcc warning: missing
	initializer for member.
	(rw_vtest): Allowed test source file name to be null.

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

	STDCXX-364
	* STRUCT_TM_IN_WCHAR_H.cpp: Removed struct keyword.

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

	* 23.list.assign.cpp: New test exercising [lib.list.assign].
	* 23.list.capacity.cpp: New test exercising [lib.list.capacity].
	* 23.list.cons.cpp: New test exercising [lib.list.cons].
	* 23.list.erase.cpp: New test exercising [lib.list.,erase].
	* 23.list.insert.cpp: New test exercising [lib.list.insert].
	* 23.list.iterators.cpp: New test exercising [lib.list.iterators].
	* 23.list.special.cpp: New test exercising [lib.list.special].

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

	STDCXX-62
	* _money_get.cc (_C_get): Checked for iterator equality to end before
	dereferencing it.

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

	* GNUmakefile.tst (INCLUDES): Removed an unneeded directory from
	the preprocessor search path.

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

	* algorithm.cc: Removed a stray backtick.

2007-03-26  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-131
	* algorithm.cc (__stable_partition): Corrected an off-by-one error.

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

	STDCXX-371
	* locale.cpp (print_currency_symbol): Corrected indices (regression
	introduced in http://svn.apache.org/viewvc?view=rev&revision=448754).

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

	STDCXX-370
	* def.cpp (convert_string): Removed the assumption that a string
	that begins with the less-than sign also ends with a greater-than
	sign.

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

	* 27.stringbuf.virtuals.cpp (test_virtual): Introduced a cast to silence
	gcc warning: comparison between signed and unsigned integer expressions.

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

	* _basic_ios.h (~basic_ios): Removed protected declaration accidentally
	introduced in http://svn.apache.org/viewvc?view=rev&revision=519751.

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

	* 22.locale.money.put.cpp (type_test): Silenced gcc warning:
	comparison between signed and unsigned.

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

	* 21.cwctype.cpp (run_test): Explicitly cast the result of wctrans()
	to ptrdiff_t in case the function's return type is a pointer as is
	the case in GNU glibc.

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

	STDCXX-364
	* STRUCT_TM_IN_WCHAR_H.cpp: Checked only for the declaration of struct
	tm, not its definition (according to 7.24.1, p2 of C99, struct tm is
	required to declared as an incomplete type in <wchar.h>).

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

	STDCXX-368
	* string (ctor): Removed unused function formal arguments
	from function declaration to silence gcc 3.2.3 warnings.

2007-03-23  Farid Zaripov <Farid_Zaripov@epam.com>

	* msvc-7.0.config: Added variable CLVARSBAT (path to the iclvars.bat for ICC)
	* icc-9.0.config: Ditto.
	* icc-9.1.config: Ditto.
	* utilities.js: Added support of the variable CLVARSBAT
	* projects.js: Call iclvars.bat before invoking the confirure.wsf script.

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

	* vector (_C_construct): Eliminated first argument (is always end())
	and replaced with _C_push_back() for efficiency.
	(_C_destroy): Removed an un unnecessary argument (is always end())
	and outlined.
	(_C_unsafe_swap): New function defined out of line.
	(insert): Added an assertion.
	(erase): Simplified and optimized a wee bit.
	(clear): Defined in terms of _C_destroy() outside the body
	of the class template.
	(swap): Optimized, called _C_unsafe_swap() for unequal allocators.
	(dtor): Called _C_destroy() with a single argument for efficiency.
	(assign): Called clear() instead of erase() for better efficiency.
	* vector.cc (_C_realloc): Passed this to Allocator::allocate()
	instead of begin() and called _C_push_back() instead of _C_construct().
	(_C_unsafe_swap): Implements swap for objects with unequal allocators.
	(_C_assign_n, _C_insert_1, _C_assign_range, _C_insert_range): Called
	_C_push_back() instead of _C_construct() for efficiency.

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

	* vector (ctors): Removed extraneous zeros from initializers.

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

	* vector (ctors): Removed extraneous zeros from initializers.

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

	* GNUmakefile.tst (RUNFLAGS): Appended new options instead of straight
	out setting the variable to keep its value (such as the timeout set in
	makefile.in).

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

	* istream: Used _RWSTD_DEFINE_TEMPLATE_{FIRST,LAST} instead
	of just plain _RWSTD_DEFINE_TEMPLATE (_BASIC_ISTREAM).

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

	STDCXX-286
	* vacpp.config (PRELINKFLAGS): Avoided appending flags when the
	variable is empty to prevent trying to prelink with the wrong
	options (i.e., without -qmkshrobj). This should complete the
	change started in rev 515423:
	http://svn.apache.org/viewvc?view=rev&revision=515423

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

	STDCXX-300
	* _config-xlc.h (_RWSTD_NO_EXPLICIT_INSTANTIATION_BEFORE_DEFINITION,
	_RWSTD_NO_EXTERN_TEMPLATE_BEFORE_DEFINITION): Defined for IBM XLC++
	8.0 when _RWSTD_NO_INSTANTIATE_DEFAULT_ARGS is also #defined.

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

	* _basic_ios.h: Used _RWSTD_DEFINE_TEMPLATE_FIRST and _LAST instead of
	just _RWSTD_DEFINE_TEMPLATE, and corrected the spelling of _BASIC_IOS.

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

	* INSTANTIATE_DEFAULT_ARGS.cpp (bar): Removed a duplicate definition.	

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

	* INSTANTIATE_DEFAULT_ARGS.cpp: Exercised the ability to explicitly
	instantiate class templates whose member functions declare default
	arguments referring to static member functions of the template
	parameter that aren't declared (or well-formed) for the argument
	used in the instantiation directive. Reveals compiler bugs such as
	IBM XLC++ 8.0 STDCXX-363.

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

	* EXPLICIT_INSTANTIATION.cpp: Added comments.

2007-03-16  Farid Zaripov <Farid_Zaripov@epam.com>

	* configure.wsf (configure): Removed empty string from array initializer.

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

	STDCXX-97
	* xlC_version.sh: Corrected output for XLC/C++ 6.0, 7.0 (including
	patches), and 8.0.

2007-03-14  Eric Lemings  <lemings@roguewave.com>

	STDCXX-359
	* printf.cpp (_rw_vasnprintf_ext): Replaced the use of operator!
	on an enum with operator== to prevent a gcc error on Mac OS X.

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

	* GNUmakefile (CPPFLAGS): Removed -D_RWSTD_USE_CONFIG.

2007-03-14  Farid Zaripov <Farid_Zaripov@epam.com>

	STDCXX-16
	* _tree.cc (operator=): Added missing assignment of the _C_cmp member.

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

	STDCXX-356
	* GNUmakefile.bin (INCLUDES): Removed inlcude/loc from preprocessor
	search path.

2007-03-13  Eric Lemmings  <lemmings@roguewave.com>

	STDCXX-262
	* gcc.config (LDSOFLAGS): Set to -dynamiclib for Mac OS X.

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

	STDCXX-354
	* makefile.common (LDFLAGS): Moved -l$(LIBBASE)...
	(LDLIBS): ...to here, prepending it to the variable to keep runtime
	libraries that are already there last in order to allow symbols
	referenced in the former library and defined in the latter to be
	resolved by UNIX linkers.

2007-03-12  Farid Zaripov <Farid_Zaripov@epam.com>

	* 23.list.h (_rw_equal): Declared extern in order to allow
	it to be found by argument dependent lookup.
	* 23.containers.cpp (enum OverloadId): Added dummy enumeration.

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

	STDCXX-4
	* 22.locale.codecvt.length.cpp: New test exercising the member function
	std::codecvt::length().

2007-03-09  Farid Zaripov <Farid_Zaripov@epam.com>

	* configure.sh: Added svn:executable property,
	svn:eol-style changed from native to LF.
	* fixtree.sh: The same.
	* run_locale_utils.sh: The same.
	* runall.sh: The same.
	* libc_decl.sh: The same.
	* xlC_version.sh: The same.
	* headers.inc: svn:eol-style changed from native to LF.

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

	* 27.istream.fmat.arith.cpp (make_locale): Hardcoded array size
	to UCHAR_MAX to work around a gcc 3.4 bug described in STDCXX-351.

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

	* 0.printf.cpp (TEST_SPEC): Introduced a local variable to silence
	compiler warnings about controlling expression being constant.

2007-03-07  Andrew Black  <ablack@roguewave.com>

	* util/output.cpp (check_compat_test): Rewrite FSM to eliminate seek 
	to near end (was causing parsing issues on tests with output 
	following result block).

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

	* locale.cpp (_RWSTD_USE_CONFIG): Removed references to macro.
	* driver.cpp (_RWSTD_USE_CONFIG): Ditto.
	* _config-gcc.h (_RWSTD_USE_CONFIG): Ditto.
	* _config-xlc.h (_RWSTD_USE_CONFIG): Ditto.
	* configure.wsf (_RWSTD_USE_CONFIG): Ditto.
	* projects.js (_RWSTD_USE_CONFIG): Ditto.
	* README (_RWSTD_USE_CONFIG): Ditto.

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-03-07  Martin Sebor  <sebor@roguewave.com>

	STDCXX-346
	* gcc.config (PICFLAGS): Corrected a typo inadvertently introduced
	in r514256: http://svn.apache.org/viewcvs?view=rev&rev=514256.

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

	* ABS_OVERLOADS.cpp: Removed all references to the (no longer
	necessary) _RWSTD_USE_CONFIG macro.
	* ATOMIC_OPS.cpp: Same.
	* BAD_ALLOC_ASSIGNMENT.cpp: Same.
	* BAD_ALLOC_COPY_CTOR.cpp: Same.
	* BAD_ALLOC_DEFAULT_CTOR.cpp: Same.
	* BAD_ALLOC_DTOR.cpp: Same.
	* BAD_ALLOC_WHAT.cpp: Same.
	* BAD_CAST_ASSIGNMENT.cpp: Same.
	* BAD_CAST_COPY_CTOR.cpp: Same.
	* BAD_CAST_DEFAULT_CTOR.cpp: Same.
	* BAD_CAST_DTOR.cpp: Same.
	* BAD_CAST_WHAT.cpp: Same.
	* BAD_EXCEPTION_ASSIGNMENT.cpp: Same.
	* BAD_EXCEPTION_COPY_CTOR.cpp: Same.
	* BAD_EXCEPTION_DEFAULT_CTOR.cpp: Same.
	* BAD_EXCEPTION_DTOR.cpp: Same.
	* BAD_EXCEPTION_WHAT.cpp: Same.
	* BAD_TYPEID_ASSIGNMENT.cpp: Same.
	* BAD_TYPEID_COPY_CTOR.cpp: Same.
	* BAD_TYPEID_DEFAULT_CTOR.cpp: Same.
	* BAD_TYPEID_DTOR.cpp: Same.
	* BAD_TYPEID_WHAT.cpp: Same.
	* CLASS_PARTIAL_SPEC.cpp: Same.
	* CONST_CAST.cpp: Same.
	* CTYPE_BITS.cpp: Same.
	* DIV_OVERLOADS.cpp: Same.
	* DUMMY_DEFAULT_ARG.cpp: Same.
	* DYNAMIC_CAST.cpp: Same.
	* EXCEPTION_ASSIGNMENT.cpp: Same.
	* EXCEPTION_COPY_CTOR.cpp: Same.
	* EXCEPTION_DEFAULT_CTOR.cpp: Same.
	* EXCEPTION_DTOR.cpp: Same.
	* EXCEPTION_SPECIFICATION.cpp: Same.
	* EXCEPTION_WHAT.cpp: Same.
	* EXPLICIT_CTOR_INSTANTIATION.cpp: Same.
	* EXPLICIT_INSTANTIATION.cpp: Same.
	* EXPLICIT_INSTANTIATION_BEFORE_DEFINITION.cpp: Same.
	* EXPLICIT_MEMBER_INSTANTIATION.cpp: Same.
	* EXPORT.cpp: Same.
	* EXTERN_FUNCTION_TEMPLATE.cpp: Same.
	* EXTERN_MEMBER_TEMPLATE.cpp: Same.
	* EXTERN_TEMPLATE.cpp: Same.
	* EXTERN_TEMPLATE_BEFORE_DEFINITION.cpp: Same.
	* FLOAT.cpp: Same.
	* FRIEND_TEMPLATE.cpp: Same.
	* FUNCTION_TRY_BLOCK.cpp: Same.
	* GLOBAL_BAD_ALLOC.cpp: Same.
	* GLOBAL_BAD_CAST.cpp: Same.
	* GLOBAL_BAD_EXCEPTION.cpp: Same.
	* GLOBAL_BAD_TYPEID.cpp: Same.
	* GLOBAL_EXCEPTION.cpp: Same.
	* GLOBAL_NOTHROW.cpp: Same.
	* GLOBAL_NOTHROW_T.cpp: Same.
	* GLOBAL_SET_NEW_HANDLER.cpp: Same.
	* GLOBAL_SET_TERMINATE.cpp: Same.
	* GLOBAL_SET_UNEXPECTED.cpp: Same.
	* GLOBAL_TERMINATE.cpp: Same.
	* GLOBAL_TYPE_INFO.cpp: Same.
	* GLOBAL_UNCAUGHT_EXCEPTION.cpp: Same.
	* GLOBAL_UNEXPECTED.cpp: Same.
	* HONOR_STD.cpp: Same.
	* ICONV.cpp: Same.
	* IMPLICIT_INSTANTIATION.cpp: Same.
	* INFINITY.cpp: Same.
	* INSTANTIATE_DEFAULT_ARGS.cpp: Same.
	* LDBL_PRINTF_PREFIX.cpp: Same.
	* LIMITS.cpp: Same.
	* LLONG_PRINTF_PREFIX.cpp: Same.
	* LOCALE_NAME_FMAT.cpp: Same.
	* LONG_LONG.cpp: Same.
	* MATH_OVERLOADS.cpp: Same.
	* MBSTATE_T.cpp: Same.
	* MUNMAP.cpp: Same.
	* NEWLINE.cpp: Same.
	* NEW_FUNC_TEMPLATE_SYNTAX.cpp: Same.
	* NEW_THROWS.cpp: Same.
	* NONDEDUCED_CONTEXT.cpp: Same.
	* NO_DBL_TRAPS.cpp: Same.
	* NO_INT_TRAPS.cpp: Same.
	* NO_SIGNALING_NAN.cpp: Same.
	* OPERATOR_DELETE_ARRAY.cpp: Same.
	* OPERATOR_DELETE_ARRAY_PLACEMENT.cpp: Same.
	* OPERATOR_DELETE_PLACEMENT.cpp: Same.
	* OPERATOR_NEW_ARRAY.cpp: Same.
	* OPERATOR_NEW_ARRAY_NOTHROW.cpp: Same.
	* OPERATOR_NEW_ARRAY_PLACEMENT.cpp: Same.
	* OPERATOR_NEW_NOTHROW.cpp: Same.
	* OPERATOR_NEW_PLACEMENT.cpp: Same.
	* OVERLOAD_OF_TEMPLATE_FUNCTION.cpp: Same.
	* POD_ZERO_INIT.cpp: Same.
	* PUTENV_CONST_CHAR.cpp: Same.
	* QUIET_NAN.cpp: Same.
	* REINTERPRET_CAST.cpp: Same.
	* RUNTIME_IN_STD.cpp: Same.
	* SIG_ATOMIC_T.cpp: Same.
	* SIZE_T.cpp: Same.
	* SPECIALIZATION_ON_RETURN_TYPE.cpp: Same.
	* STATIC_CAST.cpp: Same.
	* STATIC_CONST_MEMBER_EXPR_CONST.cpp: Same.
	* STD_BAD_ALLOC.cpp: Same.
	* STD_BAD_CAST.cpp: Same.
	* STD_BAD_EXCEPTION.cpp: Same.
	* STD_BAD_TYPEID.cpp: Same.
	* STD_EXCEPTION.cpp: Same.
	* STD_MBSTATE_T.cpp: Same.
	* STD_NOTHROW.cpp: Same.
	* STD_NOTHROW_T.cpp: Same.
	* STD_SET_NEW_HANDLER.cpp: Same.
	* STD_SET_TERMINATE.cpp: Same.
	* STD_SET_UNEXPECTED.cpp: Same.
	* STD_TERMINATE.cpp: Same.
	* STD_TYPE_INFO.cpp: Same.
	* STD_UNCAUGHT_EXCEPTION.cpp: Same.
	* STD_UNEXPECTED.cpp: Same.
	* TEMPLATE_DEFAULT_ARG_CONVERSION.cpp: Same.
	* TEMPLATE_ON_RETURN_TYPE.cpp: Same.
	* TYPENAME.cpp: Same.
	* TYPE_INFO_BEFORE.cpp: Same.
	* TYPE_INFO_DTOR.cpp: Same.
	* TYPE_INFO_EQUALITY.cpp: Same.
	* TYPE_INFO_INEQUALITY.cpp: Same.
	* TYPE_INFO_NAME.cpp: Same.
	* UNAME.cpp: Same.
	* UNISTD_DECL.cpp: Same.
	* VA_LIST.cpp: Same.
	* VSNPRINTF_RETURN.cpp: Same.
	* WCSFTIME_WCHAR_T_FMAT.cpp: Same.
	* WINT_T.cpp: Same.
	* extern_template_before_definition_imp.cpp: Same.

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

	* wstringstream.out: Added a missing example output file.

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

	* GNUmakefile (RUNFLAGS): Bumped up exec timeout from 180 seconds
	to 300 to allow long-running tests (such as those exercising UTF-8
	locales) to finish.

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

	* time_put.cpp (main): Silenced the bogus HP aCC Warning 578: A class
	member may not be a const array since there is no way to initialize
	such a member (see STDCXX-347).

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

	* alloc.cpp: fixed typo (removed comma);
	* 0.alloc.cpp: use setjmp() instead sigsetjmp() on Cygwin

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

	STDCXX-286
	* vacpp.config (PRELINKFLAGS): Used -qmkshrobj only when building
	a shared library (including a shared archive), and not an ordinary
	archive.
	(DEFAULT_SHROBJ): Set only when using -qmkshrobj.
	(use_tempinc): Removed a temporary file when done.

2007-03-05  Andrew Black  <ablack@roguewave.com>

	* tests/src/driver.cpp (_rw_setopt_output_file): Add logic to treat 
	the magic file name of '-' as a reference to stdout.
	* etc/config/GNUmakefile.tst (RUNFLAGS): Specify compatibility mode 
	flags to enable parsing of legacy tests.
	* util/output.cpp (check_compat_test): Adjust seek position to avoid 
	false format errors when an executable contains a very small number 
	of tests.

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

	* 18.limits.traps.cpp (try_trap): Renamed from test_trap and declared
	extern in order to allow it to be found by argument dependent lookup.

2007-03-03  Mark Brown  <mbrown@inbox.com>

	STDCXX-337
	* gcc.config (LDLIBS): Used -lcatgets, not -catgets, to link with
	libcatgets on Cygwin.

2007-03-03  Mark Brown  <mbrown@inbox.com>

	STDCXX-346
	* gcc.config (PICFLAGS): Avoided using -fPIC for Cygwin in addition
	to AIX since gcc generated code is always position independent there.

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

	* 27.istream.fmat.arith.cpp (make_locale): Worked around a Sun
        C++ 5.8 bug described in STDCXX-345.

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

	* 0.outputiter.cpp: New test exercising the helper class template
	OutputIter.

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

	STDCXX-92
	* GNUmakefile.cfg (.NOTPARALLEL): Defined target to disable parallel
	builds until we figure out how to get them to work correctly.

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

	STDCXX-214
	* _traits.h (lt): Cast char arguments to unsigned char to
	yield results consistent with compare (and with memcmp).

2007-03-01  Farid Zaripov <FaridZ@kyiv.vdiweb.com>

	* 18.limits.traps.cpp (test_trap): New function to avoid MSVC error C2712:
	Cannot use __try in functions that require object unwinding;
	(test_traps) Used test_trap() function.

2007-02-27  Martin Sebor  <sebor@roguewave.com>

	* time_put.cpp: Added descriptions of ordinary (unmodified) conversion
	specifiers and printed out the "base" format specifier string for %c,
	%r, %x, and %X. Changed the date to demonstrate the formatting of %e
	formats (space followed by a digit for single-digit days of month).
	Treated the first command line argument as the name of the locale to
	format output in (including "" for the locale specified by the
	environment).
	* time_put.out: Adjusted accordingly.

2007-02-23 Farid Zaripov <faridz@kyiv.vdiweb.com>

	ChangeLog:
	* 23.list.h: New file with definitions of helpers used in
	clause 23.list tests.
	* 23.containers.cpp: #included 23.list.h; removed definition
	of the temporary struct ListIds; _rw_list_sigcat filled by code.

2007-02-23 Farid Zaripov <faridz@kyiv.vdiweb.com>

	ChangeLog:
	* 21.strings.h: #included 23.containers.h;
	struct StringIds inherited from struct ContainerIds;
	removed definitions of the AllocId and IteratorId.
	* 23.containers.h: New file with definitions of helpers used
	in clause 23 tests.
	* 23.containers.cpp: Ditto.

2007-02-23 Farid Zaripov <faridz@kyiv.vdiweb.com>

	ChangeLog:
	* rw_value.h (struct UserData): new common structure holding
	value for UserPOD and UserClass types;
	(UserPOD): New user type to be used in tests as POD type
	* value.cpp: Use UserClass::data_.val_ instead of UserClass::val_;
	(__rw_from_char): new function to create array of the UserXXX type
	from string;
	(_rw_mismatch): new function compare the array of the UserXXX type
	and string.
	* 25.binary.search.cpp: Use UserClass::data_.val_ instead of UserClass::val_.
	* 25.copy.cpp: The same.
	* 25.equal.range.cpp: The same.
	* 25.fill.cpp: The same.
	* 25.find.cpp: The same.
	* 25.find.end.cpp: The same.
	* 25.for.each.cpp: The same.
	* 25.generate.cpp: The same.
	* 25.heap.cpp: The same.
	* 25.includes.cpp: The same.
	* 25.lex.comparison.cpp: The same.
	* 25.libc.cpp: The same.
	* 25.lower.bound.cpp: The same.
	* 25.merge.cpp: The same.
	* 25.min.max.cpp: The same.
	* 25.mismatch.cpp: The same.
	* 25.nth.element.cpp: The same.
	* 25.partial.sort.cpp: The same.
	* 25.partitions.cpp: The same.
	* 25.permutation.cpp: The same.
	* 25.random.shuffle.cpp: The same.
	* 25.remove.cpp: The same.
	* 25.replace.cpp: The same.
	* 25.reverse.cpp: The same.
	* 25.rotate.cpp: The same.
	* 25.search.cpp: The same.
	* 25.set.difference.cpp: The same.
	* 25.set.intersection.cpp: The same.
	* 25.set.sym.difference.cpp: The same.
	* 25.set.union.cpp: The same.
	* 25.sort.cpp: The same.
	* 25.swap.cpp: The same.
	* 25.transform.cpp: The same.
	* 25.upper.bound.cpp: The same.
	* 23.deque.modifiers.cpp: The same.
	* 23.vector.modifiers.cpp: The same.
	* 26.accumulate.cpp: The same.
	* 26.adjacent.diff.cpp: The same.
	* 26.inner.product.cpp: The same.
	* 26.partial.sum.cpp: The same.
	* 26.valarray.cons.cpp: The same.
	* 0.inputiter.cpp: The same.
	* 20.pairs.cpp: The same.

2007-02-23 Farid Zaripov <faridz@kyiv.vdiweb.com>

	ChangeLog:
	* rw_value.h (_rw_user_class_fmat_init): New static variable
	to install the formatting callback function for UserClass type.
	* value.cpp (_rw_fmtxarray): Removed prototype of the function.
	Installation of the formatting callback function moved from
	UserClass ctor to UserClassFmatInit ctor.

2007-02-21 Farid Zaripov <faridz@kyiv.vdiweb.com>

	ChangeLog:
	* rw_value.h (struct X): Renamed to struct UserClass.
	* value.cpp: The same.
	* 25.adjacent.find.cpp: Updated copyright notice.
	#included rw_value.h; used struct UserClass instead of struct X.
	* 25.binary.search.cpp: The same.
	* 25.copy.cpp: The same.
	* 25.equal.cpp: The same.
	* 25.equal.range.cpp: The same.
	* 25.fill.cpp: The same.
	* 25.find.cpp: The same.
	* 25.find.end.cpp: The same.
	* 25.find.first.cpp: The same.
	* 25.for.each.cpp: The same.
	* 25.generate.cpp: The same.
	* 25.heap.cpp: The same.
	* 25.includes.cpp: The same.
	* 25.lex.comparison.cpp: The same.
	* 25.libc.cpp: The same.
	* 25.lower.bound.cpp: The same.
	* 25.merge.cpp: The same.
	* 25.min.max.cpp: The same.
	* 25.mismatch.cpp: The same.
	* 25.nth.element.cpp: The same.
	* 25.partial.sort.cpp: The same.
	* 25.partitions.cpp: The same.
	* 25.permutation.cpp: The same.
	* 25.random.shuffle.cpp: The same.
	* 25.remove.cpp: The same.
	* 25.replace.cpp: The same.
	* 25.reverse.cpp: The same.
	* 25.rotate.cpp: The same.
	* 25.search.cpp: The same.
	* 25.set.difference.cpp: The same.
	* 25.set.intersection.cpp: The same.
	* 25.set.sym.difference.cpp: The same.
	* 25.set.union.cpp: The same.
	* 25.sort.cpp: The same.
	* 25.swap.cpp: The same.
	* 25.transform.cpp: The same.
	* 25.unique.cpp: The same.
	* 25.upper.bound.cpp: The same.
	* 23.deque.modifiers.cpp: The same.
	* 23.deque.special.cpp: The same.
	* 23.vector.capacity.cpp: The same.
	* 23.vector.cons.cpp: The same.
	* 23.vector.modifiers.cpp: The same.
	* 26.accumulate.cpp: The same.
	* 26.adjacent.diff.cpp: The same.
	* 26.inner.product.cpp: The same.
	* 26.partial.sum.cpp: The same.
	* 26.valarray.cons.cpp: The same.
	* 0.inputiter.cpp: The same.
	* 20.pairs.cpp: The same.

2007-02-21  lnicoara  <nicoara@roguewave.com>

     * etc/config/icc.config
       Changed build process for post-8.1 compilers to
       use the yet undocumented -cxxlib-nostd option. 

2007-02-21 Farid Zaripov <faridz@kyiv.vdiweb.com>

	ChangeLog:
	* rw_sigdefs.h: New file with definitions of helpers macros
	to define member and non-member functions overload id's
	* 21.strings.h: Helper macros moved from here to rw_sigdefs.h

2007-02-21 Farid Zaripov <faridz@kyiv.vdiweb.com>

	ChangeLog:
	STDCXX-341
	* alg_test.h: ConstFwdIter<T> inherited from FwdIter<const T>.
	ConstBidirIter<T> inherited from BidirIter<const T>.
	ConstRandomAccessIter<T> inherited from RandomAccessIter<const T>.
	(make_iter): type of the last parameter changed to const reference

2007-02-21 Farid Zaripov <faridz@kyiv.vdiweb.com>

	ChangeLog:
	* alg_test.h (struct X, struct UnaryPredicate,
	struct BinaryPredicate): Declarations moved from here ...
	* rw_value.h: ... to here (new header file).
	* alg_test.cpp: Updated copyright notice;
	(struct X, struct UnaryPredicate, struct BinaryPredicate,
	_rw_fmtxarrayv, _rw_fmtxarray): Definitions moved from here ...
	* value.cpp: ... to here (new source file).

2007-02-19  Mark Brown  <mbrown@inbox.com>

	STDCXX-340
	* aliases.cpp (get_installed_locales): Avoided aborting on locale
	(or system) error and instead just issued a warning and continued.

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

	* printf.cpp (VarArgs): Made pargs_ non-const.
	(VA_ARG): Removed a const cast obviated by the above.
	(_rw_fmtexp): Simplified/corrected the uses of VA_ARG.

2007-02-15 Farid Zaripov <faridz@kyiv.vdiweb.com>

	STDCXX-268
	STDCXX-331
	* list (_RWSTD_LIST_SAFE_INSERT_RANGE): New macro for exception
	safe inserting the range into the list.
	(_C_insert (bidirectional_iterator_tag, input_iterator_tag)):
	Removed.
	(_C_insert): Used _RWSTD_LIST_SAFE_INSERT_RANGE macro.
	(_C_insert): Added try/catch with removing the inserted elements
	if exception was thrown.

2007-02-15 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* deque: The swap method moved from here ...
	* deque.cc: ... to here

2007-02-15 Farid Zaripov <faridz@kyiv.vdiweb.com>

	STDCXX-127
	* deque (swap): Corrected _C_beg._C_node and _C_end._C_node
	after swap operation for empty container.

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

	* src/printf.cpp (_rw_fmtnested): New function to handle nested
	formatting directives (%{@} et al) extended to format arrays of
	values of arbitrary types, including structures.
	(VarArgs): New stuct to encapsulate variable arguments and arrays.
	(VA_ARG): New macro to extract arguments from VarArgs.
	(_rw_fmtinteger, _rw_vasnprintf_ext, _rw_fmtspec): Used VarArgs.
	(PARAM): Changed it to use VarArgs.
	* test/printf.cpp (test_nested_format): Exercised the above.

2007-02-11  Martin Sebor  <sebor@apache.org>

	* exception.cpp: Updated copyright notice.

2007-02-11  Martin Sebor  <sebor@apache.org>

	* except.cpp: Renamed...
	* exception.cpp: ...to this.

2007-02-11  Mark Brown  <mbrown@inbox.com>

	STDCXX-40
	STDCXX-337
	* gcc.config [Cygwin](LDLIBS): Added libcatgets and libiconv.

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

	* GNUmakefile.bin (localedb.d): Gracefully handled empty/undefined
	LOCALES variable.

2007-02-07 Farid Zaripov <faridz@kyiv.vdiweb.com>

	STDCXX-334
	* list (swap): Fixed bug: used reference instead of the temporary object.

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

	STDCXX-230
	STDCXX-329
	* istream.cc (__rw_extract): Added comment.
	(_C_ipfx): Avoided resetting gcount().
	(_C_ipfx): Guarded body in a try/catch block and set badbit when
	an exception occurs.
	[_RWSTD_NO_OPTIMIZE_SPEED](_C_ipfx): Removed conditionally compiled
	block (and instead used the "optimized" branch unconditionally).
	(_C_get, read, readsome, get, getline, operator>>): Explicitly
	reset gcount.

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

	STDCXX-4
	* 27.istream.readsome.cpp: New test exercising the member function
	readsome() of basic_istream.

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

	* 27.istream_sentry.cpp (memfun_info): Renamed from just info.
	(test_ok): Called memfun_info w/o "%{$SENTRY}::" (the string
	is prepended by the callee).

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

	* istream_sentry.cpp (Streambuf, test_ctor, test_ok): Added
	a template parameter for Traits.
	(test_ctor, test_ok): Removed unnecessary local blocks.
	(test_ctor): Verified that the ctor doesn't affect gcount()
	to exercise STDCXX-329.
	(run_test): Exercised specializations on UserTraits. Handled
	command line options.

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

	* src/printf.cpp (_rw_pvasnprintf): Gracefuly handled a null format
	string.
	* self/0.printf.cpp (test_malformed_directives): Exercised the above.

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

	* 27.istream.fmar.arith.cpp: Renamed...
	* 27.istream.fmat.arith.cpp: to this.

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

	STDCXX-295
	* sstream.cc (seekoff): Prevented the function from failing when
	offset is 0 and neither sequence has been initialized yet (see 
	LWG issue 453:
	http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#453).

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

	* 27.istream.fmat.arith.cpp: New test exercising arithmetic extractor
	operators [istream.formatted.arithmetic]. The test reveals a number
	of known bugs.

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

	* exec.cpp (calculate_usage): Corrected variable
	in conditional expression

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

	STDCXX-4
	* 27.istream.sentry.cpp: New test exercising [istream.sentry].

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

	* _num_get.cc (_C_get): Added comments.

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

	* printf.cpp (_rw_fmtspec): Avoided handling '$' when it's immediately
	followed by a closing curly brace ('}'). Ditto for '@'.
	(_rw_pvasnprintf): New. Implements the guts of rw_vasnprintf without
	NUL-terminating the buffer to make it easier to call it recursively.
	(_rw_vasnprintf_ext): Recognized the new %{@} directive (nested format
	specifier). Called _rw_fmtexpr to handle it.
	(_rw_fmtexpr): Handled the %{@} directive (nested format specifier).
	* test/printf.cpp (test_envvar): Added test cases exercising
	unconditional assignment (the %{$<param>!:<word>} directive).
	(test_nested_format): Exercised the %{@} directive.

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

	* gcc.config (MAPFLAGS): Temporarily disabled until fully implemented.

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

	STDCXX-4
	* 27.istream.manip.cpp: New test exercising istream.manip.

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

	* projectdef.js (projectCreateTestLocalesDef): PreBuildCmd modified
	to avoid using of very long lines.
	* projects.js (CreateProjectsDefs): Use runall.wsf script to run locale tests.
	* runall.wsf: Added new parameter EXT.

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

	* sstream (str): Made one-argument char_type* overload public
	for efficiency since it's indistinguishable from the string
	overload (the two argument continues to be private in strict
	mode).
	(basic_stringstream ctor): Used __rw::__rw_in_out instead of
	(in | out) for efficiency and to make debugging easier (by
	avoiding the call to operator| defined by the implementation).

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

	STDCXX-327
	* sstream (stringbuf::str): Added a public char_type* overload
	to prevent compilation errors in strict mode when the 2 argument
	overload is private.
	* sstream.cc (stringbuf::str): Removed a comment.

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

	* projectdef.js (projectCreateTestLocalesDef): PreBuildCmd modified
	to avoid using of the $(SolutionDir) variable.
	* projects.js (CreateProjectsDefs): Ditto.

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

	* valarray (operator[]): Changed return type to const value_type&
	as per LWG issue 389:
	http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html#389

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

	STDCXX-326
	* _iosbase.h (seek_dir, io_state, open_mode): Declared as int.

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

	STDCXX-324
	* _cstdlib.h (div_t, ldiv_t): Declared quot and rem members.

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

	STDCXX-323
	* _cstdlib.h (abs, div): Added overloads for long.

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

	STDCXX-322
	* complex (operator=): Used the public member functions real()
	and imag() instead of the private data members.

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

	* projectdef.js (projectCreateTestLocalesDef): PreBuildCmd modified
	to use local variables for paths.
	* projects.js (CreateProjectsDefs): Ditto.

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

	STDCXX-320
	* _csignal.h (SIG_DFL, SIG_ERR, SIG_IGN): Cast to the appropriate type.

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

	* build.wsf (build): Set BuildLogging variable to true before the build
	* projectdef.js (projectCreateTestLocalesDef): Use compacted PreBuildCmd
	* summary.js (readBuildLog): Removed temporary for loop since the bug not repeated

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

	* 26.valarray.cons.cpp: New test exercising valarray constructors.

2007-01-12  Andrew Black  <ablack@roguewave.com>

	* GNUmakefile (RPATH) [!shared]: Fix indentation.

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

	* GNUmakefile.bin (install): Handled locales with the @ modifier
	in their name. Correctly handled the LOCALES variable when set
	to the empty string.

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

	* valarray.cc (shift, cshift): Used T(0) instead of T() in the
	declaration of an object to avoid a gcc 3.2 bug (see STDCXX-317).

2007-01-12  Andrew Black  <ablack@roguewave.com>

	* GNUmakefile (RPATH) [!shared]: Unset RPATH for archive builds (Not needed).

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

	* numpunct.cpp (make_german_locale): Corrected a logic error
	introduced in revision 431272.

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

	* 21.strings.h (arg_type): Explicitly cast an enum to int before
	applying bitwise operators to it to silence bogus Sun C++ warning:
	"Comparing different enum types."
	* 21.string.operators.cpp (test_operators): Same.
	* 21.string.cons.cpp (test_cons): Same.
	* 21.string.io.cpp (test_io): Same.

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

	* limits.cpp (operator<<): New overload for std::float_denorm_style.
	(print_limits): Called it for numeric_limits<T>::has_denorm.
	* limits.out: Adjusted accordingly.

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

	* 21.strings.cpp (_rw_sigcat, rw_setvars, _rw_dispatch, _rw_run_cases):
	Explicitly cast an enum to int before applying bitwise operators to it
	to silence (bogus) Sun C++ warning: "Comparing different enum types."

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

	* money_put.cpp (MoneyPut): Defined the default ctor in order
	to make it possible to define const objects of the type w/o
	explictly initializing them and to silence IBM XLC++ warning
	1540-1296 (W) The const object requires "struct MoneyPut<T>"
        to have a user-declared default constructor.
	(type_test): Qualified sprintf with std:: since the function
	may not be declared in the global namespace (as with Sun C++).

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

	* 26.accumulate.cpp (size_t): Qualifed with std:: since the type
	may not be declared in the global namespace (e.g., with Sun C++).

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

	* build.wsf: New script file to build specified configuration
	* configure.wsf (configure): Check if the environment variable
	exist before removing; use MT DLL runtime instead of ST static
	runtime in ST DLL solution configurations
	* devenv_consts.js: Added new constants
	* generate.wsf: Removed unused BUILDTYPE option from usage text;
	by default don't generate projects for build and test locales;
	generate additional solution files (stdlib + examples;
	stdlib + rwtest + tests; stdlib + utils + locales;
	stdlib + utils + locale tests;
	stdlib + utils + run_examples + run_tests); use new build.wsf
	script in generated build batch file
	* makelog.wsf (makelog): Updated according to new directory structure
	* projectdef.js (InitVSObjects): Added freedte parameter, don't free
	dte object if freedte == false;
	(projectCreateVCProject): Use MT DLL runtime instead of ST static
	runtime in ST DLL solution configurations;
	(projectCreateProjectDefsFromFolder): Add name of subfolder to the
	OutDir only if shiftOutDir is true;
	(projectCreateTestLocalesDef): New function to generate project for
	perform all locale tests in one shot;
	* projects.js (CreateProjectDefs): Added generation of the 3 projects:
	.stdcxx_runexamples; .stdcxx_runtests; .stdcxx_testlocales. Now
	returns array of the sets of projects (configure, stdlib, rwtest,
	utils, examples, run_examples, tests, run_tests, locales,
	locale_tests)
	* run_locale_utils.wsf (Cleanup): New function to remove
	temporary folder
	(Exit): New function to exit from script with cleanup
	(CreateFolder): New function to create directory three
	(dump_charmap): New function to dump the charmap of a locale
	(dump_locale): On error exited script with the same non-zero
	exit status as the locale utility
	(generate_locale): Used Exit function
	(test_locale): Called dump_charmap to produce the charmap source
	from the locale database at each of the three stages. Used this
	charmap source to create a locale in each subsequent stage.
	Placed the files created at each stage in separate directories
	named stage.1 through stage.3.
	(run_locale_utils): Avoided deleting stage directories when
	the -n option is set
	* runall.wsf: Parameter INOUTDIR now is optional; removed unused
	parameter COPYRWTESTDLL;
	(readOutFile): check manual and tutorial subfolders when searching
	example requested output file;
	(runWithChecks, runNoChecks): Removed as unused;
	(runAllExamples): Rewritten to use exec utility in packet mode.
	* summary.js (saveBuildInfoTable): encode symbols in example output
	before saving them to HTML file
	(readBuildLog): Added temporary loop to check the run-time error
	"runall.wsf(59, 6) Microsoft JScript runtime error: Permission denied"
	* utilities.js (decodeHTML): New function to decode escaped symbols
	(stripTags): New function to get text from HTML document

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

	STDCXX-318
	* valarray.cc (cshift): Avoided division by zero when *this is empty.

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

	* valarray (abs, acos, asin, atan, atan2, cos, cosh, exp, log,
	log10, pow, sin, sinh, sqrt, tan, tanh): Replaced T() with T(0)
	in order to work around a gcc 3.2.3 bug (see STDCXX-317).

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

	* runall.cpp (check_target_ok): Corrected index in array item assigning

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

	* 26.mask.array.cpp: New test exercising helper class template
	std::mask_array.

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

	STDCXX-316
	* valarray.cc (cshift): Initialized destination array prior
	to assigning to its elements.

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

	STDCXX-315
	* valarray (abs, acos, asin, atan, atan2, cos, cosh, exp, log,
	log10, pow, sin, sinh, sqrt, tan, tanh): Initialized destination
	array prior to assigning to its elements. 

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

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

	* 26.indirect.array.cpp: New test exercising the std::indirect_array
	helper template.

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

	* 17.names.cpp: Added more public names to test for.

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

	* 26.class.gslice.cpp (make_array): Corrected an off-by-1 error.
	(test_gslice): Exercised gslice copy ctor.

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

	* _array.h (operator[]): Returned a const reference rather than
	value_type to make it possible to implement the resolution of
	LWG issue 389.
	Simplifed a few other expressions and removed redundant formal
	argument names from member function declarations.

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

	STDCXX-4
	* 26.class.gslice.cpp: New test exercising lib.class.gslice.

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

	* run_locale_utils.sh [Tru64]: Made getopts work on Tru64 by setting
	the BIN_SH variable and re-executing self with the same command line
	arguments.

2006-12-12  Andrew Black  <ablack@roguewave.com>

	* makefile.rules (run runall run_all): Remove unneeded if-then-else-fi 
	construct, fixing bug introduced in 
	http://svn.apache.org/viewvc?view=rev&rev=485859 in the process.

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

	* GNUmakefile.lib (TARGET): Defined also in archive mode.

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-11  Andrew Black  <ablack@roguewave.com>

	* GNUmakefile.bin (SRCDIRS): Fix accidental path change in 
	http://svn.apache.org/viewvc?view=rev&rev=485859

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

	* GNUmakefile (REPORTFILE): Replaced...
	(CONFIG_H): ...with this variable (intended as a future replacement
	of the current config.h).
	(PREFIX, install): Added new variable and installation target.
	(post): Removed target.
	* GNUmakefile.bin (LOCALE_LIST): Renamed...
	(LOCALES): ...to this.
	(install): New target to install locale utilities and locales.
	* GNUmakefile.lib (LIBLINK): New variable.
	(TARGET): Replaced the use of the variable as a target...
	(LIB, LIBLINK): ...with each of these.
	(install): New target.
	* makefile.common (REGRESS_FILE): Removed unused variable.
	* makefile.rules (REGRESS_FILE, REPORTFILE): Removed.

2006-12-08  Andrew Black  <ablack@roguewave.com>

	* GNUmakefile ($(MAKEFILE_IN)): Echo RPATH into generated makefile.in
	* GNUmakefile.bin (LDFLAGS): Add $(RPATH) switch with a value of 
	$(LIBDIR) to $(LDFLAGS) if $(RPATH) is defined.
	* GNUmakefile.exm (LDFLAGS): Ditto.
	* GNUmakefile.ph (LDFLAGS): Ditto.
	* GNUmakefile.rwt (LDFLAGS): Ditto.
	* GNUmakefile.tst (LDFLAGS): Add $(RPATH) switch with a value of 
	$(LIBDIR):$(BUILDDIR)/rwtest to $(LDFLAGS) if $(RPATH) is defined.
	* acc.config (SHARED_LDFLAGS): Move rpath flag definition from here ...
	(RPATH): ... To here.
	* gcc.config (SHARED_LDFLAGS, RPATH): Ditto.
	* icc.config (SHARED_LDFLAGS, RPATH): Ditto.
	* sunpro.config (SHARED_LDFLAGS, RPATH): Ditto.
	* mipspro.config (SHARED_LDFLAGS, RPATH): Ditto.
	* osf_cxx.config (SHARED_LDFLAGS, RPATH): Ditto.
	* vacpp.config (SHARED_LDFLAGS, RPATH): Ditto.
	* como.config (RPATH): Define placeholder (empty) flag definition.
	* eccp.config (RPATH): Ditto.
	* reliant_cds.config (RPATH): Ditto.

2006-12-07  Andrew Black  <ablack@roguewave.com>

	* exec.cpp (alarm_timeout) [!_WIN32]: Update documentation.
	(kill_signal) [!WIN32]: Add file local variable to track signal used to 
	kill process.
	(handle_term_signal) [!_WIN32]: Add new callback function...
	(wait_for_child) [!_WIN32]: ... Used here for SIGHUP, SIGINT, SIGQUIT, 
	and SIGTERM signals (via sigaction).  Handlers are cleared if 
	kill_signal is set and the signal contained within is raise()ed.

2006-12-07  Andrew Black  <ablack@roguewave.com>

	* output.cpp (check_test): Set status->status to ST_OVERFLOW if 
	status->assert equals -1, don't return when status->t_warn reaches -1.
	(check_example): Set status->assert to -1 to denote example.
	* display.cpp (print_status_plain): Output assertion totals if 
	status->assert isn't -1 and status->status and status->exit are 0,
	special case status->assert = 0 to avoid divide by 0 errors.

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

	STDCXX-306
	* valarray (gslice_array::operator=): Removed private declaration.

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-12-04  Andrew Black  <ablack@roguewave.com>

	* display.cpp (short_st_name): Rename "OUTPUT" and "NREF" states, per 
	http://tinyurl.com/y28xev

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

	* 21.string.find.first.not.of.cpp (test_find_first_not_of): Inverted
	the logic of a controlling expression in an unconditional assertion.

2006-12-01 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* process.cpp: Removed unused #include <time.h>
	(rw_waitpid): Used sleep() instead of nanosleep()
	(rw_process_kill): Corrected timeout value to 1 second

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

	* cwchar.cpp (wprintf, wscanf, swprintf): Gave the last formal
	argument prior to the ellipsis a name in order to silence SGI
	MIPSpro warning: the last argument of the varargs function is
	unnamed.
	(swscanf, vfwprintf): Removed an undeducible template parameter.

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

	* printf.cpp (TEST_SPEC): Avoided the use of a conditional
	intended to always evaluate to the same value except at
	runtime in order to prevent compiler warnings.

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

	* def.h (create_format): Removed redundant const qualifier from
	function formal arguments and removed their names.
	(mon_punct_out_): Removed data member.
	* def.cpp (Def): Invalidated mon_out_ char members by assigning
	CHAR_MAX as expected (and required by C) rather than -1.
	* monetary.cpp (create_format): Assigned CHAR_MAX instead of -1
	to indicate missing values.
	(write_monetary): Renamed mon_punct_out_ to punct and made local.

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

	* fmt_bits.cpp (_rw_fmtbits): Inverted a controlling expression
	in an uncoditional assertion.

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-29  Andrew Black  <ablack@roguewave.com>

	* acc.config (CCVER, aCC_MAJOR, aCC_MINOR): Convert expensive 
	assignments from recursive to simple expansion.
	* como.config (CCVER, CC_MAJOR, CC_MINOR): Ditto.
	* eccp.config (CCVER, ECCP_MAJOR, ECCP_MINOR): Ditto.
	* icc.config (CCVER): Ditto.
	* osf_cxx.config (CCVER): Ditto.
	* reliant_cds.config (CCVER): Ditto.
	* sunpro.config (CCVER): Ditto.
	* vacpp.config (CCVER, CXX_MAJOR, CXX_MINOR): Ditto.

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

	* gcc.config [AIX] (OS_MAJOR, OS_MINOR): Retrieve and store OS major 
	and minor version.
	[AIX] (SHARED_CPPFLAGS): Only set if OS is 5.3 or newer (Earlier 
	versions of ld don't support -bsrv4, -R switches).
	* vacpp.config [AIX] (OS_MAJOR, OS_MINOR): Retrieve and store OS major 
	and minor version.
	[AIX] (SHARED_CPPFLAGS): Only set if OS is 5.3 or newer (Earlier 
	versions of ld don't support -bsrv4, -R switches).
	[!AIX] (SHARED_CPPFLAGS): Use -R switch (assuming Linux ld).

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

	* locale.cpp (print_ellipsis): New function to print sequences
	of consecutive characters as ellipses for compactness and for
	better efficiency.
	(print_charmap): Called print_ellipsis.

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

	* monetary.cpp (process_monetary): Simplified the parsing of integer
	values and checking their validity.

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

	* locale.cpp (MON_INT): New convenience macro to print out unspecified
	integer values as -1 even when char is an unsigned type.
	(print_int_frac_digits, print_frac_digits, print_p_cs_precedes,
	print_n_sep_by_space, print_p_sep_by_space, print_n_cs_precedes,
	print_p_sign_posn, print_n_sign_posn, print_int_p_cs_precedes,
	print_int_n_sep_by_space, print_int_p_sep_by_space,
	print_int_n_cs_precedes, print_int_p_sign_posn,
	print_int_n_sign_posn): Used it.

2006-11-28  Andrew Black  <ablack@roguewave.com>
	* sunpro.config (LDFLAGS): Remove redundant -L$(LIBDIR) switch.  Switch is added if needed in makefile.common.
	(MULTI_LDFLAGS_POSIX, MULTI_LDFLAGS_SOLARIS): Use $(LIBPTHREAD) for MULTI_LDFLAGS_POSIX and $(LIBTHREAD) for MULTI_LDFLAGS_SOLARIS.  Had been reversed at some point by mistake.
	* acc.config (LDFLAGS): Remove redundant -L$(LIBDIR) switch.  Switch is added if needed in makefile.common.
	(SHARED_LDFLAGS): Add rpath switch to include $(LIBDIR) in ld search path of executables.
	* gcc.config (SHARED_LDFLAGS): Ditto.
	* icc.config (SHARED_LDFLAGS): Ditto.
	* mipspro.config (LDFLAGS): Remove redundant -L$(LIBDIR) switch.  Switch is added if needed in makefile.common.
	(SHARED_LDFLAGS): Add rpath switch to include $(LIBDIR) in ld search path of executables.
	* osf_cxx.config (SHARED_LDFLAGS): Ditto.
	* vacpp.config (SHARED_LDFLAGS): Ditto.

2006-11-28 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* vector (vector<bool, _Allocator>): Removed _VB_TYPENAME macro.
	[_RWSTD_NO_CLASS_PARTIAL_SPEC && !_RWSTD_NO_TYPENAME]: _TYPENAME
	cleared before types definitions and restored after.

2006-11-28 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* _config-msvc.h: Updated copyright notice

2006-11-28 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* _config-msvc.h: All definitions which duplicates or contradict
	with config.h are moved to #if _MSC_VER <= 1200 / #endif

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

	* runall.cpp (merge_argv): Removed a redundant const qualifier
	from function return type.

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

	* locale.cpp (sect_charmap): Removed an unused static constant.

2006-11-22 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* projectdef.js (projectCreateTestLocaleDefs,
	projectCreateTestLocaleDefs): Code, independent from
	locale name moved from here ...
	* projects.js (CreateProjectsDefs): ... to here.
	Command line for custom build step assigned to file
	run_locale_utils.wsf (to deal with MSVC 8)

2006-11-20 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* projects.js (CreateProjectsDefs): Corrected OutDir for test
	locales projects; added dependency from project "exec"
	* projectdef.js (projectCreateTestLocaleDefs): Added locale
	sanity test; modified command line to using the exec utility
	to run locale test.

2006-11-20 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* generate.wsf (generate): Added printing of compiler config
	variables
	* runall.wsf: Timeout value increased up to 180 seconds

2006-11-17 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* process.cpp (rw_process_create) [!_WIN32]: Added missing __FILE__, __LINE__

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

	* valcmp.cpp (test_case): Used size_t instead of unsigned in order
	to silence HP aCC Warning (suggestion) 887: Type 'unsigned int' is
	smaller than type 'unsigned long', unwanted widening in value may
	result.
	(cases, test_all_cases): Ditto.

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

	* 21.find.last.not.of.cpp (cptr_size_size_test_cases): Cast NPOS
	to int to silence Compaq C++ warning: integer conversion resulted
	in truncation.
	Stripped trailing whitespace.

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

	* GNUmakefile (CURDIR): Used the shell PWD variable to avoid
	expanding NFS paths as mount points instead of the user-visible
	directories.
	(MAKEFILE_IN): Used "$(TOPDIR)" in the definition of the BUILDDIR
	variable when generating makefile.in rather than fully expanding
	the variable.

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

	* GNUmakefile.bin (exec): Fix typo introduced in http://svn.apache.org/viewvc?view=rev&rev=475095

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

	* GNUmakefile.bin (SRCDIRS): Revert accidental altering in http://svn.apache.org/viewvc?view=rev&rev=475095

2006-11-15 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* target.h: #include time.h instead of sys/types.h for clock_t

2006-11-15 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* COLLAPSE_STATIC_LOCALS.cpp: Removed "./" from the LDOPTS.
	* COLLAPSE_TEMPLATE_LOCALS.cpp: Ditto.
	* COLLAPSE_TEMPLATE_STATICS.cpp: Ditto.
	* EXPORT.cpp: Ditto.
	* EXTERN_FUNCTION_TEMPLATE.cpp: Ditto.
	* EXTERN_INLINE.cpp: Ditto.
	* EXTERN_MEMBER_TEMPLATE.cpp: Ditto.
	* EXTERN_TEMPLATE.cpp: Ditto.
	* EXTERN_TEMPLATE_BEFORE_DEFINITION.cpp: Ditto.
	* IMPLICIT_INSTANTIATION.cpp: Ditto.
	* LIB_EXCEPTIONS.cpp: Ditto.
	* collapse_static_locals.lib.cpp (bar) [_WIN32 && _DLL]: Added
	__declspec (dllexport) to the function definition.
	* collapse_template_locals.lib.cpp (bar): Ditto.
	* collapse_template_statics.lib.cpp (bar): Ditto.
	* extern_inline.lib.cpp (foo): Ditto.
	* lib_exceptions.lib.cpp (foo): Ditto.
	* configure.wsf (runExeTests): Removed replacing the "./" in LDOPTS.
	(compileLibs): Added parameter: shared.
	(makeLibrary): Ditto. Added creation of the dynamic library (dll)
	instead of static library, if shared is true

2006-11-15 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* projectdef.js (InitVSObjects): Use devenv.com instead of
	devenv.exe to get buildlog in batch build

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

	STDCXX-302
	* makefile.common (CXX.repo): New make function.
	* makefile.rules (%.o, %): Used CXX.repo in rules.
	* GNUmakefile.bin (exec, locale, localedef): Same.

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

	* cmdopt.h (TICKS_PER_SEC): Declare global constant.
	* cmdopt.cpp (TICKS_PER_SEC): Define, value dependent on pre-processor
	declarations. (Already comitted -- see revision 472162).
	* target.h (sys/types.h): Include for clock_t.
	(sys/time.h) [!_WIN32 && !_WIN64 && _XOPEN_UNIX]: Remove dependency.
	(rw_timeval): Remove as unneeded.
	(rw_time_t, rw_suseconds_t) [!_XOPEN_UNIX]: Ditto.
	(target_status): Use clock_t rather than rw_timeval.
	* exec.cpp (sys/times.h) [!_WIN32 && !_WIN64]: Include.
	(sys/time.h) [!_WIN32 && !_WIN64 && _XOPEN_UNIX]: Remove dependency.
	(calculate_usage) [!_WIN32 && !_WIN64]: Update documentation, alter
	signature, use times() rather than getrusage() to retrieve timing
	information.
	(exec_file) [!_WIN32 && !_WIN64]: Move wall clock timing logic into
	calculate_usage, retrieve starting times prior to wait_for_child().
	(exec_file) [_WIN32 || _WIN64]: Simplify wall clock delta logic.
	* display.cpp (unistd.h) [!_WIN32 && !_WIN64]: Remove dependency.
	(print_status_plain): Alter logic used to print times, reflecting
	change to target_status.

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

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

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

	* printf.cpp (test_errno): Removed assumption that strerror()
	never returns a null pointer (see STDCXX-305).

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

	* sunpro.config (SHARED_LDFLAGS): Add -R$(LIBDIR) switch so $(LIBDIR) is included in the runtime library search path of linked executables.

2006-11-14 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* projectdef.js (projectCreateVCProject): Used Libs member of the ProjectDef class.
	* projects.js (CreateProjectsDefs): Added missing libraries in definition of the rwtest project.

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

	STDCXX-303
	STDCXX-304
	* mipspro.config (PRELINKFLAGS): Removed.
	(AR, ARFLAGS): Set to only invoke the archiver through the compiler.

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

	* exec.cpp (alarm_handler) [!_WIN32]: Define typedef with signature matching that of handle_alrm.
	(wait_for_child) [!_WIN32]: Use alarm_handler typedef for type of local variable storing reference to handle_alrm.

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

	* GNUmakefile.bin (LDFLAGS.exec): Define LDFLAGS variant, filtering out the stdcxx library.
	(exec): Use LDFLAGS.exec rather than LDFLAGS.

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

	* 0.printf.cpp (TEST_SPEC): Avoided using constant controlling
	expression in do/while loop to silence annoyning EDG warnings.

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

	* cwchar (wmemcmp, wmemcpy, wmemmove): Correted typos (called the
	corresponding wide forms of the __rw_xxx functions rather than the
	narrow ones). Causing compilation errors with MIPSpro on IRIX64.

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

	* EXPORT.cpp: Added "./" in LDOPTS.
	* configure.wsf (runExeTests): Added replacing ".o" with ".obj" in LDOPTS
	(compileFiles): Reused srcsArr instead of srcs
	* projects.wsf (CreateProjectsDefs): Removed extra '\' in command line

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

	* process.cpp: ( __PURE_CNAME): Undefined Compaq/C++ macro to allow
	POSIX errno constants such as EACCES to be #defined even in strict
	mode.

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

	* GNUmakefile: Included the name of the platform in error messages.

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

	STDCXX-271
	* EXTERN_MEMBER_TEMPLATE.cpp: New test to detect the ability to use
	function template members of a specialization of a class template
	declared extern template.
	* extern_template_imp.cpp (NO_INLINE_MEMBER_TEMPLATE,
	NO_MEMBER_TEMPLATE): Defined macros in response to the corresponding
	configuration macros.
	* extern_template_imp.h (inline_member_template, member_template):
	Declared.

2006-11-08 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* rw_process.h (rw_pid_t): The type long changed to _RWSTD_SSIZE_T.
	(rw_wait_pid): Added the timeout parameter.
	(rw_process_kill): New function to terminate the specified process.
	* process.cpp [_WIN32] (__rw_map_errno): New function to get errno
	value from WinAPI last error code
	(__rw_split_cmd): Moved to #ifndef _WIN32/#endif
	[_WIN32] (_rw_vprocess_create): Used CreateProcess instead of
	rw_process_create(char*, char* [])
	[_WIN32] (rw_process_create): Used rw_process_create(char*, ...)
	instead of spawnp
	* 0.process.cpp: New test exercising the rw_process_create(),
	rw_process_kill() and rw_waitpid() functions.

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

	* cmdopt.cpp (eval_options): Set errno to 0 before calling strtol
	and testing its value to avoid false positives due to the variable
	being already set by another function.

2006-11-07 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* fmt_defs.h: Added definition of the DummyStruct
	* printf.cpp (rw_vasnprintf): Added checking for malformed directive
	(_rw_fmttm, _rw_fmtarray, _rw_fmtstrarray, _rw_fmtstr, _rw_fmtwstr):
	Third parameter of __rw::__rw_memattr() changed to -1
	(_rw_vasnprintf_ext): Ditto. Added "%{P}" formating directive to
	format the rw_pid_t value
	* 0.printf.cpp: #included rw_process.h for rw_pid_t
	(test_chararray): Added missing backslash in result string
	(test_stringarray): Added exercising of the "%{ As}" formatting
	directive
	(test_pid): New function exercising the "%{P}" formating directive
	(main): Added call to the test_pid()

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

	* cwchar (wcsrchr): Fixed a typo in conditionally compiled code.

2006-11-01 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* configure.wsf (configure): try/catch'ed removing
	VS_UNICODE_OUTPUT environment variable 

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

	* configure.wsf (configure): Remove VS_UNICODE_OUTPUT
	environment variable before run cl.exe

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

	* projectdef.js (projectCreateTestLocaleDefs): Fixed bug in assignment
	* projects.js (CreateProjectsDefs): Fixed bug in assignment

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

	* configure.wsf (checkHeaders): Removed unused parameter
	(configure): Try/catch'ed run of the sanity.exe while
	checking run environment sanity
	* data.js: Removed unused variable platformWin32Name
	* generate.wsf: Added output of the compiler configuration
	variables to the log file
	* makelog.wsf: Corrected the comment about CONFIG parameter
	* msvc-7.0.config: Added variable PLATFORM
	* msvc-8.0-x64.config: New configuration file for MSVC 8.0
	(x64 platform)
	* projectdef.js (setProperty): New function to assign value
	to a property if it's exists
	(projectCreateVCProject): Use PLATFORM compiler configuration
	variable instead of hardcoded variable platformWin32Name; use
	setProperty function with properties which are not supported
	on some platforms; leave default value of the property
	linker.TargetMachine (which is target dependent)
	* projects.js (CreateProjectsDefs): Copy dll's after every
	project rebuild
	* runall.wsf: Added parameter CONFIG to the list of parameters
	and usage example
	* utilities.js: Added variable PLATFORM
	(parseConfig): Renamed from getCompilerOpts, redesigned to use
	regular expression
	(PrintVars): New function to print compiler configuration
	variables and their values to the text stream
	(getWinDiffDifferences): code for determine the path to the
	windiff utility moved from here ...
	(getCompilerOpts): ... to here
	* generate.bat: Added check to run 32-bit cscript.exe
	on 64-bit Windows

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

	* printf.cpp (_rw_fmtstrarray): Use ' ' as delimiter if
	' ' is specified in flags field

2006-10-19 Andrew Black <ablack@roguewave.com>

	* libc_decl.sh: Fixed if expression

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

	* alloc.cpp (_rw_allocate_blocks): Set r/w access to the
	_rw_tail->next before modification

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

	* driver.h (rw_enable): New function to enable/disable
	specified diagnostics
	* driver.cpp (rw_enable): New function to enable/disable
	specified diagnostics
	(_rw_vdiag): Added checking whether the diagnostic
	is enabled or disabled
	* opt_trace.h: Added declaration of the _rw_diag_ignore variable
	* opt_trace.cpp: Added definition of the _rw_diag_ignore variable

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

	STDCXX-297
	* bitset.cc (__rw_bitset): Corrected calculation of
	size of the __bits buffer

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

	* libc_decl.sh: libc headers and functions moved to headers.inc file 
	* configure.wsf (checkHeaders): The same
	* headers.inc: New file with libc headers and functions list

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

	* makefile.common (TEEOPTS): Reverted previous change (rev 463535).
	* makefile.rules (%.o: %(AS_EXT), %.o: %.cpp, %: %.o, %: %.cpp):
	Reverted previous change and removed $(TEEOPTS) from compile/link
	lines so as to prevent the pipeline from masking compilation and/or
	linking errors.

2006-10-12  Andrew Black  <ablack@roguewave.com>

	* makefile.rules (%.o: %(AS_EXT), %.o: %.cpp, %: %.o, %: %.cpp): Add
	$(TEEOPTS) to compile/link line so that output is routed to log files.
	* makefile.common (TEEOPTS): Always tee output to $@.log.
	* target.h (target_opts): Add c_warn and l_warn fields.
	(target_status): Split warn field into c_warn, l_warn, t_warn.
	* output.cpp (check_test): Count warnings, store in status->t_warn.
	(check_compat_test): Expand tail horizon, capture warnings into
	status->t_warn.
	* display.cpp (print_header_plain): Add WARN column, rename WALL
	column to REAL.
	(print_status_plain): Print the total number of warnings in the WARN
	column.
	* runall.cpp (count_warnings): Add static method to count the number
	of warnings in a .log file.
	(check_target_ok): Always calculate object file name, call
	count_warnings for object and executable.
	* cmdopt.cpp (usage_text): Document new --warn switch.
	(parse_warn_opts): Define new helper function to parse --warn switch.
	(eval_options): Used here in parsing and to initialize default c_warn
	and l_warn values. 

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

	* cwchar (wcscat, wcscpy): Used the block form of language linkage
	specification to work around an HP aCC 3.70 bug (see STDCXX-298).

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

	* configure.wsf (checkHeaders): Added tests for POSIX
	functions (putenv, setenv, unsetenv).

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

	* environ.cpp (rw_putenv): Added missing semicolon

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

	* environ.cpp (unsetenv): Conditionally declared.
	(rw_putenv): Handled invalid separator character.
	Handled malloc() failure to allocate memory.
	Used unsetenv() when available, otherwise putenv().

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

	* libc_decl.sh (putenv, setenv, unsetenv): Added tests for POSIX
	functions.

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

	* alloc.cpp (MAP_PRIVATE, MAP_ANONYMOUS): #defined to 0 when not
	#defined in system headers.

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-06  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 23.bitset.cpp: New test exercising lib.bitset.

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

	STDCXX-3
	* rw_rand.h: New. Declarations of testsuite random generator helpers.
	* random.cpp: New. Definitions of the above.

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

	* icc-9.0.config: New configuration file for ICC-9.0
	* icc-9.1.config: New configuration file for ICC-9.1
	* msvc-7.0.config: New configuration file for MSVC-7.0
	* msvc-7.1.config: New configuration file for MSVC-7.1
	* msvc-8.0.config: New configuration file for MSVC-8.0
	* msvcex-8.0.config: New config file for MSVCExpress-8.0
	* config.js: Removed definitions of the classes: Solution,
	SolutionConfiguration, ProjectConfiguration, Project, Filter,
	Platform, Configuration, Tool, Compiler, Linker, Librarian,
	CustomBuild, PostBuild
	* data.js: Removed variables of types which was removed from config.js
	(ConfigInfo): New class for storing information about build
	configuration
	* devenv_consts.js: New file with constant variables for
	VisualStudio Automation objects
	* filterdef.js: New script file with FilterDef class definition
	* projectdef.js: New script file with ProjectDef class definition
	* projects.js: New script file with definitions of the projects
	for solution
	* summary.js (saveSummaryHeaderMulti): Modified according to the new
	directory structure
	(saveBuildSummaryMulti): Modified according to the new directory
	structure, added checking of source folder presence
	(saveBuildSummariesFromFolder): Added checking of folder presence
	* utilities.js: Removed functions: convertSolutionImpl,
	setCompilerEnvironment, compile, compileFiles, link, linkFiles,
	preprocess, preprocessFile, buildLibrary, makeLibrary
	(createUUID): Get new UUID using the "scriptlet.typelib" COM object
	instead of executing uuidgen utility
	(getCompilerOpts): New function for parsing the configuration file
	of the specified compiler
	(getExtension): New function for obtain extension of filename
	(changeFileExt): New function for get new filename with specified
	extension
	(arrayIndexOf): New function for obtain index of item in array
	(generateSolution): New function for create the solution file
	* configure.wsf (checkHeaders): Removed checking of the wctomb,
	wcstombs functions in wchar.h header. Added missing break keyword.
	(joinArray): New function to get string from array of strings
	(preprocessFile): New function to preprocess the specified file
	(compileFiles): New function to compile the specified files
	(linkFiles): New function to link targets in specified executable
	(makeLibrary): New function to build C++ library file
	(logLine): New function to append the line to log file
	* generate.wsf: Removed function generateUpdateBatch
	(generate): Modified to use the new objects for generate project files
	(LogMessage): New function to print message to the stdout and logfile
	(generateUpdateBatch): Modified to create separate build batch for
	each compiler configuration instead of common build.bat
	(createBuildDirs): Modified according to the new directory structure
	(readAndCheckArguments): Added checking of the new script parameters:
	/LOCALES and /LOCALETESTS
	* makelog.wsf: Modified according to the new directory structure
	* runall.wsf: Removed functions: inspectProcesses
	(runexamples): Get type of buildlog file from compiler
	configuration file
	(readAndCheckArguments): Added new option COPYRWTESTDLL
	(runAllExamples): Modified according to the new directory
	structure; added code for copying and deleting the rwtest.dll
	if COPYRWTESTDLL option is specified
	(runNoChecks): Used exec utility to run example instead of
	WshShell::Exec method
	(runWithChecks): Used exec utility to run example instead of
	WshShell::Exec method
	(parseStatus): New function to obtain the exit code of the example
	* run_locale_utils.wsf: New script file which implements
	functionality of the run_locale_utils.sh script

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

	* _config.h: Updated license.

2006-10-05  Andrew Black  <ablack@roguewave.com>

	* target.h: Update header comment.
	(target_status): Add wall field for wall clock timing.
	* exec.cpp [!_WIN32 && !_WIN64 && _XOPEN_UNIX] (sys/time.h): Included
	for gettimeofday.
	exec_file [!_WIN32 && !_WIN64 && _XOPEN_UNIX]: Set result->wall.
	exec_file [_WIN32 || _WIN64]: Ditto.
	* display.cpp (print_header_plain): Add column for wall clock time.
	(print_status_plain): Print result->wall, if set.

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  Martin Sebor  <sebor@roguewave.com>

	STDCXX-294
	* vector.cc (_C_insert_n): Corrected logic error.

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

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

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

	* output.cpp (check_example): swapped size and count parameters of fread() call

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

	* THREAD_SAFE_EXCEPTIONS.cpp [_WIN32]: disable displaying
	general protection fault message box

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

	* limits (_RWSTD_FLT_HAS_DENORM, _RWSTD_DBL_HAS_DENORM,
	_RWSTD_LDBL_HAS_DENORM): Defined macros to false when
	not #defined at configuration time.

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

	* time_get.cpp: File renamed ...
	* time_get.out: ... to this.

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

	* _defs.h: _RWBUILD_std replaced to _RWSTD_LIB_SRC

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

	Set svn:eol-style property.

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

	* sstream.cc (basic_stringbuf<>::str): Added check before
	deallocate the old buffer

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

	* _specialized.h: Restored HP copyright notice
	* vector: Ditto
	* set: Ditto
	* map: Ditto
	* list: Ditto
	* deque: Ditto

2006-10-02 Andrew Black <ablack@roguewave.com>

	* cmdopt.cpp: Convert C++ comments to C comments.
	(rw_signal) [!_WIN32 & !_WIN64]: Ditto.
	(parse_limit_opts): Ditto, fix style violation.
	(show_usage): Make static (move from global to file scope).
	(eval_options, split_opt_string): Move documentation from here ...
	* cmdopt.h (eval_options, split_opt_string): ... To here.
	Convert C++ comments to C comments.
	* display.cpp (print_header_plain, print_target_plain,
	print_status_plain, print_footer_plain): Make static, document.
	* display.h: Convert C++ comments to C comments.
	* exec.cpp: Ditto.
	(limit_process) [!_WIN32 & !_WIN64]: Ditto.
	(get_signo): Fix style violation.
	(wait_for_child, exec_file) [!_WIN32 & !_WIN64]: Ditto.
	(wait_for_child) [!_WIN32 & !_WIN64]: Correct embedded comment.
	(get_signo, get_signame, exec_file): Move documentation from here ...
	* exec.h (get_signo, get_signame, exec_file): ... To here.
	Convert C++ comments to C comments.
	* output.cpp (parse_output): Move documentation from here ...
	* output.h (parse_output): ... To here.
	Convert C++ comments to C comments.
	* runall.cpp: Ditto
	* target.h: Ditto, correct file header documentation.
	* util.cpp (guarded_realloc): Fix style violation.
	(terminate, guarded_malloc, guarded_realloc): Move documentation
	from here ...
	* util.h (terminate, guarded_malloc, guarded_realloc): ... To here.
	(terminate): Fix style violation in declaration.
	Convert C++ comments to C comments.

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

	* _select.h (__rw_is_same): Renamed: yes; no; Type<class T> to:
	_C_yes; _C_no; _C_Type<class _TypeV>
	* 22.locale.num.get.cpp (do_test): Changed type of dummy argument
	from charT to charT* to resolve MSVC 7.0 ambiguity
	* 21.cwchar.cpp (swscanf, vfwprintf): Removed unused template
	parameter SizeT to prevent MSVC 7.0 error:
	error C2783: 'int std::swscanf(const WCharT *,const WCharT *,...)' :
	could not deduce template argument for 'SizeT'
	(fgetwc): Return type changed to wint_t to prevent MSVC 7.0 error:
	error C2785: 'int std::fgetwc(FileT *)' and 'wint_t fgetwc(FILE *)'
	have different return types
	(test_functions): commented const to prevent MSVC 7.0 error:
	error C2147: 'tm_buf' : const automatic array must be fully
	initialized
	* 21.cwctype.cpp (towlower, towupper, wctrans, wctype, towctrans):
	Corrected return type to prevent MSVC 7.0 error:
	error C2785: 'int std::towlower(T)' and 'wchar_t towlower(wchar_t)'
	have different return types
	(run_test): Added exercising of the std::towctrans()
	* 26.c.math.cpp (test_declarations): Resolved MSVC 7.0 ambiguity:
	error C2782: 'T std::modf(T,T *)' : template parameter 'T' is
	ambiguous: could be 'double' or 'long double'
	* 27.forward.cpp [_RWSTD_NO_PART_SPEC_OVERLOAD]: Added is_same_type
	for compilers which not support the partial ordering of function
	templates
	* 25.search.cpp [_MSC_VER <= 1300]: Added explicit definition of the
	NonPredicateTag<X>::DummyPredicate::funcalls_ to prevent MSVC 7.0
	linker error
	* alg_test.h [_MSC_VER <= 1300] (conv_to_bool): UniquePtr defined
	as const void* to deal with MSVC 7.0

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

	STDCXX-4
	* 17.names.cpp: New test exercising the absence of namespace pollution.

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

	* run_locale_utils.sh (signal_cleanup): Renamed...
	(cleanup): ...to this and set up as a handler for SIGHUP,
	SIGINT, SIGQUIT, and SIGTERM.

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-09-28  Martin Sebor  <sebor@roguewave.com>

	* exec.cpp (wait_for_child): Added SIGQUIT to the array of signals
	to send to child.

2006-09-28  Andrew Black  <ablack@roguewave.com>

	* target.h: Add new header.
	(target_opts): Define.
	(rw_rlimit, ProcessStatus, target_status): Move from display.h.
	(rw_timeval, RLIM_INFINITY, RLIM_SAVED_CUR, RLIM_SAVED_MAX): Move from
	cmdopt.h.
	* cmdopt.h (rw_timeval, RLIM_INFINITY, RLIM_SAVED_CUR, RLIM_SAVED_MAX):
	Move to target.h.
	(timeout, compat, verbose, exe_opts, in_root, child_limits): Remove
	global declarations.
	(target_name): Move from global scope to runall.cpp local scope.
	(eval_options): Alter declaration to take storage structure, handle.
	(get_target): Declare, document accessor function defined in runall.cpp.
	* cmdopt.cpp (timeout, compat, verbose, exe_opts, in_root, target_name,
	child_limits): Remove global definitions.
	(usage_text): Remove -q and -v switch descriptions (they were unused).
	(parse_limit_opts): Alter definition to take storage structure, use
	storage structure.
	(eval_options): Alter definition to take storage structure, handle,
	update documentation, store parsed values in provided structure/handle,
	remove -q, -v switches.
	* display.h (rw_rlimit, ProcessStatus, target_status): Move to target.h.
	(short_st_name): Make immutable.
	(print_target): Alter declaration to take target_opts rather than
	target_status.
	* display.cpp (print_target_plain): Alter definition to match
	print_target.
	(print_status_plain): Alter usage to match changes to target_status
	structure.
	(short_st_name): Make immutable.
	(print_target): Alter definition to match declaration.
	* exec.h (exec_attrs): Remove.
	(target.h): Include.
	(exec_file): Alter declaration to accept target_opts in addition to
	target_status.
	* exec.cpp (target.h): Include instead of display.h.
	(open_input): Alter definition to take data_dir, update documentation.
	[!_WIN32 && !_WIN64] (alarm_timeout): Clean documentation slightly.
	[!_WIN32 && !_WIN64] (wait_for_child): Alter definition to take timeout,
	target_status, store results directly in struct.
	[!_WIN32 && !_WIN64] (LIMIT, limit_process): Alter definition to take
	target_opts, update documentation, check for valid pointer to limit
	structure rather than invalid values.
	[!_WIN32 && !_WIN64 && _XOPEN_UNIX] (calculate_usage): Store calculated
	times in static local vartiables, and store references to these
	variables in target_status struct.
	[!_WIN32 && !_WIN64] (exec_file): Alter to match prototype, altered
	function usage to match definitions.
	[_WIN32 || _WIN64] (kill_child_process): New helper function to simplify
	child process kill code.
	[_WIN32 || _WIN64] (exec_file): Alter to match prototype, altered
	functions to match definitions, use new helper function, some cleaning,
	process execution results.
	* output.h (parse_output): Alter declaration to take target_opts in
	addition to target_status.
	* output.cpp (check_test): Retrieve target_name via get_target.
	(check_example): Alter definition to take data_dir, update
	documentation.
	(parse_output): Alter definition to match prototype, use target_opts
	in place of removed globals.
	* runall.cpp (target.h): Included.
	(check_target_ok): Alter definition to take target (char*) in addition
	to target_status, retrieve target_name via get_target.
	(process_results): Remove, functionality rolled into exec_file.
	(target_name): moved to file local scope from global scope.
	(get_target): Declare accessor function for target_name, defined in
	cmdopt.h.
	(run_target): Alter definition to take target_opts structure rather
	than argv array.
	(main): Create local target_opts structure to fill in eval_opts and
	use in target_template, free any rlimit structures allocated in
	parse_limit_opts.
	* util.h (reference_name): Alter declaration to take data_dir, update
	documentation.
	* util.cpp (warn, terminate): Retrieve target_name via get_target.
	(reference_name): Retrieve target_name via get_target, use data_dir
	rather than (removed) in_root global.

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

	* deque: Added #ifndef _RWSTD_NO_PART_SPEC_OVERLOAD/#endif around the
	function std::swap<T, A> (std::deque<T, A>&, std::deque<T, A>&);
	[_RWSTD_NO_PART_SPEC_OVERLOAD]: Added function std::swap
	(std::deque&, std::deque&)
	* list [_RWSTD_NO_PART_SPEC_OVERLOAD]: Added function
	std::swap (std::list&, std::list&)
	* map [_RWSTD_NO_PART_SPEC_OVERLOAD]: Added functions
	std::swap (std::map&, std::map&) and
	std::swap (std::multimap&, std::multimap&)
	* set [_RWSTD_NO_PART_SPEC_OVERLOAD]: Added functions
	std::swap (std::set&, std::set&) and
	std::swap (std::multiset&, std::multiset&)
	* string [_RWSTD_NO_PART_SPEC_OVERLOAD]: Added function
	std::swap (std::string&, std::string&)
	* vector [_RWSTD_NO_PART_SPEC_OVERLOAD]: Added functions
	std::swap (std::vector&, std::vector&) and
	std::swap (std::vector<bool>&, std::vector<bool>&)

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

	* charmap.cpp (convert_sym_to_ucs): Parenthesized a call
	to isxdigit to prevent macro expansion.
	(process_ellipsis): Corrected a loop control expression.

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

	* exec.cpp (wait_for_child): Worked around HP aCC bug (STDCXX-291)
	even harder (and more correctly).

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

	* exec.cpp (wait_for_child): Used memcpy to assign function
	pointers as a workaround for HP aCC 6 bug (STDCXX-291).

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

	* cmdopt.cpp (rw_signal): Worked around an HP aCC 6 bug (see
	STDCXX-291).
	(eval_options): Changed the type of a local to avoid HP aCC
	sign extension warnings.

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

	* cwchar (wcschr): Added a missing parenthesis.

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

	* BAD_ALLOC_ASSIGNMENT.cpp (Base1, Derived): Silenced gcc -Wunused
	warnings.

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

	* wthread.h: Allowed to be #included regardless of the platform
	and renamed...
	* thread.h: ...to this.
	* THREAD_SAFE_ERRNO (thread.h): Included instead of wthread.h.
	* THREAD_SAFE_EXCEPTIONS.cpp (thread.h): Same.

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

	* INFINITY.cpp (main): Made output correct even when the macro
	_RWSTD_USE_CONFIG is not #defined.

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

	* TLS.cpp (_RWSTD_THREAD_STR): Removed unused macro.
	(PRINT_MACRO): Corrected ill-formed preprocessor concatenation.

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

	* scanner.cpp (convert_escape): Cast away constness to work around
	an MSVC 7.0 bug causing error C2446: '==' : no conversion from
	'char ** ' to 'const char ** ' Conversion loses qualifier.

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

	* BAD_ALLOC_COPY_CTOR.cpp: Added dependency on RUNTIME_IN_STD.cpp
	* BAD_ALLOC_DEFAULT_CTOR.cpp: Ditto
	* BAD_ALLOC_DTOR.cpp: Ditto
	* BAD_ALLOC_WHAT.cpp: Ditto
	* BAD_CAST_ASSIGNMENT.cpp: Ditto
	* BAD_CAST_COPY_CTOR.cpp: Ditto
	* BAD_CAST_DEFAULT_CTOR.cpp: Ditto
	* BAD_CAST_DTOR.cpp: Ditto
	* BAD_CAST_WHAT.cpp: Ditto
	* BAD_EXCEPTION_ASSIGNMENT.cpp: Ditto
	* BAD_EXCEPTION_COPY_CTOR.cpp: Ditto
	* BAD_EXCEPTION_DEFAULT_CTOR.cpp: Ditto
	* BAD_EXCEPTION_DTOR.cpp: Ditto
	* BAD_EXCEPTION_WHAT.cpp: Ditto
	* BAD_TYPEID_ASSIGNMENT.cpp: Ditto
	* BAD_TYPEID_COPY_CTOR.cpp: Ditto
	* BAD_TYPEID_DEFAULT_CTOR.cpp: Ditto
	* BAD_TYPEID_DTOR.cpp: Ditto
	* BAD_TYPEID_WHAT.cpp: Ditto
	* EXCEPTION_ASSIGNMENT.cpp: Ditto
	* EXCEPTION_COPY_CTOR.cpp: Ditto
	* EXCEPTION_DEFAULT_CTOR.cpp: Ditto
	* EXCEPTION_DTOR.cpp: Ditto
	* EXCEPTION_WHAT.cpp: Ditto
	* libc_decl.sh: Removed checking of the wctomb and wcstombs in wchar.h header
	* wthread.h: New file with definitions of Win32 POSIX compatibility layer functions
	* THREAD_SAFE_ERRNO.cpp [_WIN32]: Ported to Windows platform
	* THREAD_SAFE_EXCEPTIONS.cpp [_WIN32]: Ported to Windows platform
	* TLS.cpp: Added print out the #definition of the _RWSTD_THREAD macro
	[_MSC_VER]: Used modifier __declspec (thread) instead of __thread

2006-09-24  Andrew Black  <ablack@roguewave.com>

	* exec.cpp [!_WIN32 && !WIN64] (wait_for_child): Evaluate return value
	when sending signals to child process group, correct off-by-one issue
	when checking for end of signal array, Try to kill off any grandchildren
	left in the child process group after the child process terminates.

2006-09-22  Andrew Black  <ablack@roguewave.com>

	* cmdopt.cpp (parse_limit_opts): Restrict sub-option values to
	non-negative integers.
	(eval_options): Ditto for -t, --exit, and --sleep. Fix off-by
	one error in logic for --ignore and --ulimit, leading to incorrect
	parsing.

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

	* def.cpp (strip_pair): Eliminated HP aCC Warning (suggestion) 887:
	Type 'int' is smaller than type 'unsigned long', unwanted widening
	in value may result.

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

	* codecvt.cpp (write_codecvt): Corrected delete expressions.

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

	* limits [_RWSTD_NO_CLASS_PARTIAL_SPEC]: Corrected macro _RWSTD_SPECIALIZE_LIMITS
	* rw_char.h (UserInt): Added const_cast to avoid MSVC 7.0 error "C2446: '=='
	: no conversion from 'const int *' to 'void *const '"
	* _autoptr.h (__rw_nonvoid_ref): Added #ifndef _RWSTD_NO_CV_VOID_SPECIALIZATIONS/#endif
	to avoid error on MSVC 7.0 (http://www.dotnet247.com/247reference/msgs/1/7727.aspx)
	* _specialized.h (__rw_construct) [_RWSTD_NO_PART_SPEC_OVERLOAD]: Added code to deal
	with compilers, which are not supports the "Partial Ordering of Function Templates"
	* VA_LIST.cpp (va_list_array_size) [_RWSTD_NO_CLASS_PARTIAL_SPEC && _RWSTD_NO_PART_SPEC_OVERLOAD]:
	Added code to deal with compilers, which are not supports the "Partial Ordering of Function Templates"
	* CV_VOID_SPECIALIZATIONS.cpp: New file, checking for cv qualifiers on type void
	* 20.operators.cpp: Added #include <cstddef> for std::size_t
	* 20.pairs.cpp: Added #ifdef/#endif guard to avoid error "Cannot access private copy constructor"

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

	* aliases.cpp (get_installed_locales): Redirected locale's stderr
	to /dev/null to prevent it from cluttering our own. Eliminated
	the handling of invalid category values.
	* charmap.h (<list>): Included.
	(portable_charset): Declared.
	(get_n_cmap, get_rn_cmap, get_w_cmap, get_rw_cmap): Documented.
	(get_n_cmap2, get_rn_cmap2, get_strval_map, increment_val): Renamed...
	(get_mb_cmap, get_rmb_cmap, get_symnames_list, increment_wchar): ...to
	this.
	(get_strval_map): Replaced...
	(get_symnames_list): ...with this.
	(process_ellipsis): Changed to return the number of characters denoted
	by the ellipsis instead of void.
	(increment_strval): Renamed...
	(increment_encoding): ...to this for clarity and changed it to return
	true on success and false otherwise.
	(verify_portable_charset): Made const.
	(parse_ext_strval): Renamed...
	(encoding_to_mbchar): ...to this for clarity.
	(add_to_cmaps): Added a bool argument.
	(n_cmap2_, rn_cmap2_): Renamed...
	(mb_cmap_, rmb_cmap_): ...to this for clarity.
	(valid_mb_set_, valid_wchar_set_, strval_map_): Removed unused members.
	(symnames_list_): Added new member.
	* def.h (process_abs_ellipsis): New.
	(process_sym_ellipsis): Returned the number of characters denoted by
	the ellipsis instead of void.
	(hex_increment, dec_increment): Removed (defined as static non-members
	in collate.cpp).
	(process_mask): Added an argument denoting the human readable name
	of the mask for progress diagnostics.
	(process_transliteration, process_transliteration_statement,
	generate_xliteration_data): Renamed...
	(process_xlit, process_xlit_statement, gen_xlit_data): ...to this for
	brevity.
	(extract_string_array): New.
	(ctype_offset_tab_t): Renamed...
	(codecvt_offset_tab_t): ...to this.
	(wchar_off_map_, mb_char_offs_, wchar_offs_, wchar_utf8_to_ext_,
	utf8_offs_, valid_codecvt_utf8_set_, utf8_map_, next_codecvt_tab_num_,
	next_wchar_codecvt_tab_num_, next_utf8_codecvt_tab_num_, codecvt_out_):
	Removed data members.
	(mb_char_offs_iter, wchar_offs_iter, utf8_offs_iter, utf8_map_iter,
	(gen_valid_codecvt_wchar_set, gen_valid_codecvt_utf8_set, gen_utf8_map,
	generate_wchar_codecvt_table, generate_utf8_codecvt_table):
	Replaced member functions...
	(gen_mbchar_tables, gen_wchar_tables, gen_utf8_tables): ...with these.
	* diagnostic.h (E_NOTSUP, W_NOTSUP, W_CHARMAP, I_SKIP): Added.
	(W_COLVAL): Removed.
	* scanner.h (token_id): Arranged enumerators by LC_XXX section and
	documented. Added enumerators for LC_ADDRESS and other sections defined
	by ISO/IEC TR 14652.
	(tok_ellipsis, tok_dellipsis, tok_qellipsis, tok_doub_inc_ellipsis):
	Renamed...
	(tok_abs_ellipsis, tok_hex_ellipsis, tok_dec_ellipsis,
	tok_dbl_ellipsis): ...to this for better correspondence to ISO/IEC
	TR 14652 names.
	(tok_eof, tok_cont_line): Removed unused names.
	(tok_octal_value, tok_decimal_value, tok_hex_value): Replaced...
	(tok_char_value): ...with this for simplicity.
	* charmap.cpp (convert_escape): Removed dead code.
	(portable_charset): Defined.
	(convert_to_wc): Simplified, added comments.
	(increment_val): Renamed...
	(increment_wchar): ...to this, renamed locals for clarity, and replaced
	hardcoded 0xff with UCHAR_MAX (is this really correct when char is more
	that 8 bits wide?).
	(increment_strval): Renamed...
	(increment_encoding): ...to this, removed local statics, and optimized.
	The function is unused since it is not possible to increment a multibyte
	character so that its last byte overflows (i.e., wraps around to 0). It
	should/will be removed in a future commit.
	(parse_ext_strval): Renamed...
	(encoding_to_mbchar): ...to this and renamed locals.
	(convert_sym_to_ucs): Tightened up the checking of symbolic character
	names for validity (expect a hex digit after the leading "<U" prefix).
	Used strtoul instead strtol for simplicity.
	(convert_to_ucs): Adjusted formatting.
	(add_to_cmaps): Added an argument indicating whether the encoding
	is multibyte or whether it should be converted to it. Optimized and
	added inline comments.
	(process_ellipsis): Renamed locals, added inline comments and adjusted
	formatting for clarity. Corrected sprintf format. Avoided calling
	increment_strval and instead incremented the last byte of a multibyte
	character, detecting and diagnosing overflow, for efficiency.
	(process_chars): Added a progress message at the beginning of the
	function. Counted the number of tokens, ellipses, and characters
	processed. Added inline comments. Simplified the handling of numeric
	character values (tok_char_value). Used tok_abs_ellipsis,
	tok_hex_ellipsis, and tok_dec_ellipsis.  Added a progress message
	at the end of the function indicating the number of of tokens, ellipses,
	and characters processed.
	* codecvt.cpp (gen_valid_codecvt_mb_set, gen_valid_codecvt_wchar_set,
	gen_valid_codecvt_utf8_set, generate_codecvt_table, gen_utf8_map,
	generate_wchar_codecvt_table, -generate_utf8_codecvt_table): Replaced...
	(gen_mbchar_tables, gen_wchar_tables, gen_utf8_tables): ...with these
	functions and simplified by replacing member variables with function
	arguments wherever possible.
	(create_wchar_utf8_table): Moved to collate.cpp where the function
	is actually used.	
	(generate_xliteration_data): Renamed...
	(gen_xlit_data): ...to this.
	(write_codecvt): Called gen_mbchar_tables, gen_wchar_tables, and
	gen_utf8_tables for better locality of reference and documented.
	* collate.cpp (lc_name): New.
	(create_wchar_utf8_table): Moved from codecvt.cpp.
	(dec_increment, hex_increment): Made static non-members.
	(process_weights, add_missing_values, process_collate, write_collate):
	Used preincrement instead of postincrement with iterators for better
	efficiency.
	* ctype.cpp (lc_name): New.
	(convert_literal_to_ucs4): Handled tok_char_value instead of
	tok_octal_value, tok_decimal_value, and tok_hex_value.
	(process_abs_ellipsis): New function.
	(process_sym_ellipsis): Simplified.
	(process_mask): Added an argument, displayed progress message, and
	simplified.
	(process_upper_lower): Displayed progress message, and simplified.
	(process_transliteration, process_transliteration_statement): Renamed...
	(process_xlit, process_xlit_statement): ...to this.
	(process_ctype): Added a progress diagnostic.
	* def.cpp (convert_to_ext): Used rmb_cmap_iter.
	(process_input): Removed progress diagnostics.
	(verify_portable_charset): Used portable_charset.
	* diagnostic.cpp (issue_diag): Used fputs instead of fprintf where
	appropriate and simplified.
	* messages.cpp (lc_name): New.
	(process_messages): Used lc_name, issued an informative diagnostic,
	and simplified ever so slightly.
	* monetary.cpp (lc_name): New.
	(process_monetary): Used lc_name. Issued an informative diagnostic.
	* numeric.cpp (lc_name): New.
	(process_numeric): Used lc_name, issued an informative diagnostic,
	and simplified ever so slightly.
	* time.cpp (lc_name): New.
	(parse_era): Handled empty era strings and constified locals.
	(extract_string_array): Defined new member function of class Def.
	(process_time): Used lc_name, issued an informative diagnostic,
	called extract_string_array.
	(write_time): Issued an informative diagnostic and simplified ever
	so slightly.
	* scanner.cpp (ScannerContext): Declared copy ctor and assignment
	operator private and removed definitions.
	(process_token): Simplified the handling of numeric character values,
	removed unnecessary qualification from the definition of tok_map array
	elements.
	(next_token): Used the new names tok_abs_ellipsis, tok_hex_ellipsis,
	tok_dec_ellipsis, and tok_dbl_ellipsis, eliminated a C-style const
	cast to avoid a gcc warning.
	* localedef.cpp (--notes): Documented option.
	* locale.cpp: Declared all definitions static, renamed many locals for
	clarity and/or brevity.
	(collate_charmap, ctype_charmap, time_charmap, num_charmap, mon_charmap,
	messages_charmap, current_locales, is_env_set): Removed globals (moved
	into get_charmap()).
	(sect_charmap, sect_lc_all, sect_lc_collate, sect_lc_ctype, ect_lc_time,
	sect_lc_messages, sect_lc_monetary, sect_lc_numeric): Defined new global
	constants.
	(UChar): New convenience typedef.
	(validate): Tweaked text of error message.
	(initialize_struct): Renamed...
	(init_struct): ...to this for brevity, removed redundant arguments
	and added their static local equivalents.
	(initialize): Renamed...
	(init_section): ...to this and removed redundant arguments.
	(initialize_structs): Renamed...
	(init_sections): ...to this. Called init_section with fewer arguments.
	(get_charmap): Added static locals for better encapsulation and locality
	of reference.
	(escape_value): New function to handling the formatting of characters
	and weights using escape sequences.
	(create_str): Simolified.
	(print_section, print_keyword): New helper functions.
	(print_weight): Simplified.
	(write_coll_info): Renamed locals.
	(print_ce_info): Added comments, adjusted code formatting.
	(print_lc_collate, print_lc_ctype, print_lc_messages, print_lc_numeric,
	print_lc_time, print_lc_all): Printed comments on stdout with additional
	detail about each section. Simplified.
	(print_int): New helper to handle the printing of numeric values.
	(print_time_keyword): New helper to handle the printing of LC_TIME
	keywords.
	(print_mask, print_toupper, print_tolower): Simplified, added inline
	comments, adjusted formatting.
	(print_frac_digits, ...): Called print_int or print_time_keyword
	as appropriate for simplicity and to avoid code duplication.
	(print_help_msg): Renamed...
	(print_help): ...to this.
	(initialize_env_vars): Removed (done in get_charmap).
	(print_locale_name): Removed.
	(print_charmap): Collected character statistics.
	(print_charmap): Added a default argument, computed additional stats.
	(print_lc_var): New function to handle the formatting of localization
	environment variables according to POSIX rules.
	(handlers): New array of command line argument handlers.
	(main): Used handlers. Added -p to force locale to use symbolic
	character names from the Portable Character Set whenever possible.

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

	* 21.string.h (StringState): Added _TEST_EXPORT specification
	* rw_char.h (UserCharFmatInit): Ditto
	* 21.cwchar.cpp: Added #ifndef/#endif guard to avoid double
	function definition
	* 27.objects.cpp (run_test): Corrected rw_warning() to rw_warn()

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

	* run_locale_utils.sh (output, debug_output): New functions to handle
	script output.
	(check_locale_help, check_locale_all, check_locale_m, check_locale_k,
	check_localedef_help, generate_locale, dump_locale, test_locale,
	signal_cleanup, main body of script): Used output, debug_output.
	(dump_locale): Set the LC_ALL environment variable for the invoked
	process only (instead of the entire script). Incremented the number
	of assertions. On error exited script with the same non-zero exit
	status as the locale utility.
	(dump_charmap): New function to dump the charmap of a locale.
	(test_locale): Called dump_charmap to produce the charmap source
	from the locale database at each of the three stages. Used this
	charmap source to create a locale in each subsequent stage. Placed
	the files created at each stage in separate directories named stage.1
	through stage.3. Avoided setting the LANG and LC_ALL environment
	variables for the whole script to prevent their values from screwing
	up the output of system utilities that don't understand them. Avoided
	deleting stage directories when the -n option is set.

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

	* NOTICE.txt: Added a required file with names of copyright holders.

2006-09-15 Andrew Black <ablack@roguewave.com>

	* display.h (unistd.h) [!_WIN32 && !_WIN64]: Include.
	(sys/time.h) [_XOPEN_UNIX]: Include.
	(rw_time_t, rw_suseconds_t, struct rw_timeval) [!_XOPEN_UNIX]: Define
	placeholder structures.
	(rw_timeval): Define abstraction typedef.
	(struct target_status): Add run, user, sys elements.
	* display.cpp (unistd.h) [!_WIN32 && !_WIN64]: Include.
	print_header_plain: Alter cols for process times.
	print_target_plain: Partition output column printing by section, add
	timing output.
	* exec.h (exec_file): Alter signature to accept target_status rather
	than char**.
	* exec.cpp (display.h): Include.
	(calculate_usage) [!_WIN32 && !_WIN64]: Define function to populate
	user and sys fields of provided target_status struct (if _XOPEN_UNIX
	is defined).
	(exec_file): Alter to accept target_status rather than char**, use
	argv element in place of old char** argument.
	(exec_file) [!_WIN32 && !_WIN64]: call calculate_usage after
	wait_for_child.
	* runall.cpp (run_target): Pass target_status struct rather than argv
	element.

2006-09-15  Farid Zaripov  <farid@kyiv.vdiweb.com>

	* output.cpp (check_example): Switched size and count parameters of fread() call to get fread() result in bytes (needed for memcmp)

2006-09-14  Andrew Black  <ablack@roguewave.com>

	* cmdopt.cpp (RLIM_INFINITY, RLIM_SAVED_CUR, RLIM_SAVED_MAX): Move
	fallback definitions to...
	* cmdopt.h (RLIM_INFINITY, RLIM_SAVED_CUR, RLIM_SAVED_MAX): ... Here.
	* exec.cpp (limit_process) [!_WIN32 && !_WIN64 && _XOPEN_UNIX]: Check
	limits prior to setting.

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

	* aliases.cpp (get_installed_locales): Redirected locale stderr
	to /dev/null to prevent warning/error messages from cluttering
	our output.

2006-09-13  Andrew Black  <ablack@roguewave.com>

	* cmdopt.h (unistd.h) [!_WIN32 && !_WIN64]: Include.
	(sys/resource.h) [_XOPEN_UNIX]: Include.
	(rw_rlim_t, struct rw_rlimit) [!_XOPEN_UNIX]: Define placeholder
	type/struct for rlim_t and struct rlimit respectively.
	(rw_rlimit, limit_set): Define.
	(child_limits): Declare.
	* cmdopt.cpp (sys/resource.h) [!_WIN32 && !_WIN64 && _XOPEN_UNIX]:
	Include.
	(RLIM_INFINITY, RLIM_SAVED_CUR, RLIM_SAVED_MAX): Define if not defined.
	(child_limits): Define/initialize.
	(usage_text): Document --ulimit switch.
	(parse_limit_opts): Define helper function for parsing --rlimit option
	borrowed in part from _rw_setopt_ulimit in tests/src/driver.cpp.
	(eval_options): Define opt_ulimit character string, use with
	parse_limit_opts to handle --ulimit command line switch.
	* exec.cpp (sys/resource.h) [!_WIN32 && !_WIN64 && _XOPEN_UNIX]:
	Include.
	(LIMIT) [!_WIN32 && !_WIN64 && _XOPEN_UNIX]: Define helper macro for...
	(limit_process) [!_WIN32 && !_WIN64 && _XOPEN_UNIX]: ... New helper
	function to set resource limits, based on the values in child_limits
	borrowed in part from _rw_setopt_ulimit in tests/src/driver.cpp.
	(exec_file) [!_WIN32 && !_WIN64 && _XOPEN_UNIX]: Call above prior to
	execv.

2006-09-13  Andrew Black  <ablack@roguewave.com>

	* sunpro.config: Fix mistake in comparison.

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

	* sstream.cc (str): Avoided setting (pptr() == epptr()) except in
	input mode as required (see lwg issue 562 for clarification). See
	also http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29035.
	* stringbuf_virtuals.cpp (test_seekoff): Corrected tests exercising
	seeking on objects constructed in out mode so as not to assume that
	(pptr() == epptr()) holds after the construction of the stream (in
	fact, (pptr() == pbase()) is required to hold -- see lwg issue 562
	and this issue http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29035
	for more detail).

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

	* GNUmakefile (CXXFLAGS, LDFLAGS, LDSOFLAGS): Corrected a typo
	when detecting narrow mode.

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

	* sunpro.config (CXXFLAGS.narrow, LDFLAGS.narrow, LDSOFLAGS.narrow):
	Corrected.
	(CXXFLAGS.* LDFLAGS.*, LDSOFLAGS.*): Handled AMD64.

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

	* time_manip.cpp (time_get_manip. time_put_manip): Rewrote
	operator() to demonstrate necessary exception handling.

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

	* money_manip.cpp: Updated copyright.
	* time_manip.cpp: Same.

2006-09-06 Andrew Black <ablack@roguewave.com>

	* GNUmakefile.bin: Added display.o to link objects for exec utility.
	* display.h: New. Defined display subsystem.
	* display.cpp: New. Implemented initial display subsystem, equivalent
	to existing output.
	* output.h (parse_output): Altered signature to support display
	subsystem.
	* output.cpp: Included display.h. Updated comments.
	(check_test, check_compat_test, check_example, parse_output): Altered
	signatures to support display subsystem, replaced I/O calls with
	updates to target_status structure.
	* runall.cpp: Same as above.
	(check_target_ok, process_results): Same as above.
	(run_target): Added storage structure for display subsystem, calls
	into display subsystem.
	(main): Added calls into display subsystem.

2006-09-06 Andrew Black <ablack@roguewave.com>

	* makefile.common (DEPS): Initialized variable (used in makefile.rules)
	to prevent an infinite recursion when referencing it.

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

	STDCXX-184
	* charmap.cpp (Charmap): Set code_set_name_ to the same basename
	as the name of the character set description file in case it's
	not specified by the <code_set_name> declaration witin the said
	file.

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

	* GNUmakefile.bin (RUNTARGET, LOCALE_LIST, localedb.d): Added
	a dependency on gen_list.
	Removed an explicit include statement to pull in localedb.d
	and added said file to DEPS to let makefile.rules pull it in.
	* makefile.rules (DEPS): Appended to the variable since it may
	be previously set (see above).
	(makedep): Avoided creating $(DEPENDDIR) and instead done so
	in an explicit target for it to avoid code duplication between
	GNUmakefile.bin and this file.

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

	* 26.c.math.cpp (test_behavior): Introduced helper local variables
	and corrected the type of others to match the type returned by the
	called function.

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

	* run_locale_utils.sh (test_locale): Corrected locale target name
	conversion patterns to avoid errors due to sed removing the trailing
	part of ANSI_X3.4-1968.
	* GNUmakefile.bin (LOCALE_LIST, DEPENDDIR/localedb.d): Simplified
	and made consistent sed patterns used to convert locale target names
	into locale and character map parameters.

2006-08-29  Andrew Black  <ablack@roguewave.com>
            Farid Zaripov  <faridz@kyiv.vdiweb.com>

	* run_locale_utils.sh (test_locale): Corrected generation
	of the locale src file name (replaced '@' with '.').

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

	STDCXX-277
	* locale.cpp (print_weight): Formatted weights with value greater
	than UCHAR_MAX as multibyte characters of value UCHAR_MAX or less.
	(write_coll_info): Introduced a convenience typedef and simplified.
	* collate.cpp (get_weight): Handled weights formatted as multibyte
	characters (using escape sequences).
	* scanner.h (convert_escape): Added an argument.
	* scanner.cpp (convert_escape): Handled multibyte characters.

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

	* codecvt_out.cpp (get_mb_char): Randomized all bits of a wide
	character. Used the RW_ASSERT() testsuite macro instead of the
	library-configured _RWSTD_ASSERT().
	(test_out): Verified that the tested function doesn't write
	past the end of the converted destination sequence (denoted
	by to_next).
	(test_wcodecvt, test_wcodecvt_byname_table_based): Added test
	cases, comments. Adjusted indentation.

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-26  Martin Sebor  <sebor@roguewave.com>

	* rw_locale.h (rw_locales): Introduced default arguments.

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

	STDCXX-4
	* codecvt_out.cpp: New test execising lib.locale.codecvt.virtuals,
	member function do_out.

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

	STDCXX-279
	* nl_BE.euro (LC_MONETARY): Copied from fr_BE.euro instead of @euro.
	* sv_FI.euro (LC_MONETARY): Copied from fi_FI.euro instead of @euro.

2006-08-25  Farid Zaripov  <faridz@kyiv.vdiweb.com>

	* exec.cpp [_WIN32 || _WIN64] (exec_file): Set appropriate error mode
	before running the child process to disable displaying the critical
	error-handler and general-protection-fault message boxes.
	* runall.cpp [_WIN32 || _WIN64]: Included windows.h and signal.h.
	(process_results): Handle returned status STATUS_ACCESS_VIOLATION
	and print status "SEGV".

2006-08-25  Andrew Black  <ablack@roguewave.com>

	* runall.cpp (merge_argv): Update function documentation.
	(run_target): Free argv array returned by merge_argv.

2006-08-21 Farid Zaripov <faridz@kyiv.vdiweb.com>

        * exec.cpp [_WIN32 || _WIN64] (exec_file): WAIT_FAIL replaced
        with WAIT_FAILED; fixed incorrect parameter in calls CloseHandle
        and WaitForSingleObject.

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 Andrew Black  <ablack@roguewave.com>

	* run_locale_utils.sh (test_locale): Remove redundant calls to rm.
	(signal_cleanup): Add exit handler for cleaning up tempdir.
	(main): Set EXIT trap before calling test_locale, remove redundant
	rm call.

2006-08-18  Andrew Black  <ablack@roguewave.com>

	* exec.cpp [_WIN32 || _WIN64] (exec_file): Check return value
	from calls to CloseHandle and WaitForSingleObject.

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-18 Farid Zaripov <faridz@kyiv.vdiweb.com>

	* exec.cpp [_WIN32 || _WIN64] (warn_last_error): When
	FORMAT_MESSAGE_ALLOCATE_BUFFER is used then lpBuffer must point
	to the place where pointer to the allocated buffer is stored.
	(exec_file): Added wait after sending Ctrl+Break signal. Added
	wait after TerminateProcess(). Closed handles of child process.

2006-08-18 Andrew Black <ablack@roguewave.com>

	* cmdopt.cpp [!_WIN32 && !_WIN64] (rw_sleep): Declared function
	'extern "C"' if __cplusplus is defined.

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

	* cmdopt.cpp: Added comments.

2006-08-17  Andrew Black  <ablack@roguewave.com>

	* exec.h [_WIN32 || _WIN64] (exec_attrs): Alter structure definition
	for windows.
	* exec.cpp [_WIN32 || _WIN64]: Use windows.h and process.h in place
	of unistd.h and sys/wait.h on windows.
	[!_WIN32 && !_WIN64] (handle_alrm, wait_for_child, open_input,
	replace_file, exec_file): Reduce scope of (existing) functions
	to non-windows platforms only.
	[_WIN32 || _WIN64] (open_input, merge_argv, warn_last_error, exec_file):
	Define implementation of named functions for windows platforms only.
	* cmdopt.cpp [_WIN32 || _WIN64]: Use windows.h in place of unistd.h
	on windows.
	(escape_code, default_path_sep, suffix_sep, exe_suffix_len): Alter
	values for windows.
	(rw_sleep, rw_signal): Define platform independent wrapper for
	sleep/Sleep and sigaction/signal.
	(eval_options): Use above.
	* runall.cpp [!_WIN32 && !_WIN64]: Don't include sys/wait.h on windows.
	(S_IXUSR, S_IXGRP, S_IXOTH): Define values if undefined (for windows).
	(check_target_ok) [_WIN32 || _WIN64]: Make object file comparison
	operating system specific.
	(process_results) [_WIN32 || _WIN64]: Make error state processing code
	operating system specific.
	(rw_basename) [_WIN32 || _WIN64]: Treat slash as an additional path
	separator on windows.

2006-08-16  Farid Zaripov  <faridz@kyiv.vdiweb.com>

	* memchk.cpp [_WIN32] (memchk): Or'ed _O_TEMPORARY with O_CREAT
	before passing the whole thing to Win32 open() and handled error
	return.

2006-08-16 Andrew Black <ablack@roguewave.com>

	* util.h (reference_name, output_name): Declaree functions to generate
	the names for reference and output files respectively.
	* util.cpp (reference_name, output_name): Defined the above.
	(guarded_malloc, guarded_realloc): Allocated memory after asserts.
	* cmdopt.h (escape_code, default_path_sep, suffix_len, suffix_sep):
	Declared (platform specific) file system related constants.
	* cmdopt.cpp (escape_code, default_path_sep, suffix_len, suffix_sep):
	Defined the above for UNIX systems.
	(split_opt_string): Moved the use of opts after assert, used escape_code
	as escape character in place of '\'.
	* exec.cpp: (get_signame): Enlarged static buffer, use sprintf in place
	of snprintf.
	(open_input): Used reference_name to determine input file name, removed
	root_len variable, move use of in_root after asserts.
	(exec_file): Altered to use output_name to determine output file name.
	* output.cpp (check_example): Used reference_name to determine reference
	file location, add assert on on_name.
	(parse_output): Used output_name to determine output file name.
	* runall.cpp (merge_argv): Used target after asserts.
	(check_target_ok): Disabled (unused) logic for output only targets.
	Altered compile check on windows systems to correctly locate .obj file.
	(rw_basename): Used default_path_sep as separator.
	(run_target): Used target, argv, childargv after asserts.

2006-08-16 Andrew Black <ablack@roguewave.com>

	* run_locale_utils.sh (generate_locale): Redirected stderr from
	localedef utility to $dbgout.
	(test_locale): Exported LC_ALL and LANG and echo'ed all export
	directives and values to debug output.

2006-08-16 Andrew Black <ablack@roguewave.com>

	* scanner.cpp (Scanner::convert_escape): Corrected order of arguments
	to an issue_diag call, added missing newline.

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-14  Andrew Black <ablack@roguewave.com>

	* exec.cpp (wait_for_child): Corrected mistake in kill()
	call to kill child process group rather than child process.

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

	* numpunct.cpp (make_german_locale): New helper function.
	(main): Called it instead of using a hardcoded locale name for each
	known operating system (apparently the names that used to be valid
	on Tru64 UNIX no longer is in 5.1).

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

	* output.cpp (check_example): Compared only as many bytes as read
	from files to prevent false negatives.
	(fout, fref, buf, nread): Renamed locals for brevity and to avoid
	confusing Emacs syntax highlighting for "reference."

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-08-11  Martin Sebor  <sebor@roguewave.com>

	* allocator.cpp (deallocate): Commented out unused function arguments
	to silence HP aCC 3.70 Warning (suggestion) 431: No uses of argument
	were detected; it may be possible to remove its declaration.

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

	* 22.locale.money.get.cpp (test_memfun): Avoided relying on
	implementation-defined preprocessor behavior and silenced HP
	aCC 3.70 Warning 823: Redundant preprocessing concatenation
	operation results in two valid preprocessing tokens.

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

	* GNUmakefile.ph (.DEFAULT): Avoided redirection to an undefined
	variable.

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

	* 0.strncmp.cpp (TEST): Avoided unnecessarily casting away constness
	in order to silence gcc warning: cast from `const char*' to `void*'
	discards qualifiers from pointer target type.

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

	* 22.locale.num.put.cpp: Added preprocessor guards to disable
	long long tests when the type is not supported.

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

	* printf.h (<time.h>): #included for struct tm.

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

	* runall.cpp (<sys/wait.h>): Included for WIFEXITED() et al.

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

	* GNUmakefile (WIDE_CXXFLAGS, WIDE_LDFLAGS, WIDE_LDSOFLAGS,
	WIDE_ARFLAGS): Renamed to CXXFLAGS.wide, LDFLAGS.wide, etc.
	Handled CXXFLAGS.narrow etc. analogously.
	* acc.config: Same. Introduced CXXFLAGS.narrow, etc., to
	parallel the wide flags.
	* gcc.config: Same.
	* mipspro.config: Same.
	* sunpro.config: Same.
	* vacpp.config: Same.

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

	* messages.cpp (<stdlib.h>): Removed an unnecessary #include directive.
	(open_catalog): Improved diagnostics to include failure (in addition
	to exception) detection.
	(test_open_close, test_get, test_use_codecvt, test_use_nls_path):
	Simplified the handling of errors from open().
	(stress_test): Removed catalog extension (since it's already present
	in the value of NLSPATH). Replaced hardcoded values with a constant.

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

	STDCXX-269
	* gcc.config (WIDE_CXXFLAGS, WIDE_LDFLAGS, WIDE_LDSOFLAGS): Defined
	to -m64 on non-IA64 architectures only.

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

	* new.cpp (_rw_find_block): Corrected a typo in conditionally
	compiled code (Compaq C++ prior to version 6.6).

2006-08-07  Andrew Black  <ablack@roguewave.com>

	* cmdopt.cpp (eval_options): Used raise(signal) rather than
        kill(getpid (), signal).
	* runall.cpp (merge_argv): Added missing terminator to generated
	array for bare executables.
	* cmdopt.cpp, output.cpp, runall.cpp: Removed unneeded #includes.

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

	* messages.cpp (test_has_facet): Exercised the behavior of has_facet
	and use_facet with messages_byname (in addition to the base class).
	(test_use_nls_path): Handled getcwd() errors, called open_catalog
	instead of invoking messages::open() directly.
	(open_catalog, test_open_close, test_use_codecvt): Added missing
	argument to rw_assert().
	(stress_test): Asserted a precondition.

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

	* ostream1.cpp: Renamed...
	* ostream.cpp: ...to this.
	* ostream1.out: Renamed...
	* ostream.out: ...to this.

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

	* ostream1.cpp: Hardcoded 64-bit output for platforms with
	no 64-bit integer type to prevent comparison failures while
	testing.

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

	* limits.cpp: Added output for numeric_limits<int> and changed
	format to make it more readable.
	* limits.out: Same.

2006-08-07 Andrew Black <ablack@roguewave.com>

	* output.cpp (check_example): Initialized read buffers prior
	to read to prevent incorrect results.

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

	* cmdopt.h (show_usage, eval_options): Removed redundant const
	qualifier from function parameter types to avoid running into
	bugs in Sun and Compaq/HP C++ compilers (see STDCXX-266 and
	STDCXX-267).
	* cmdopt.cpp (show_usage, eval_options): Made definitions
	consistent with declarations.

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

	STDCXX-4
	* 23.bitset.cons.cpp: New test exercising lib.bitset.cons.

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

	* rw_char.h (to_char): Worked around an Intel C++ 9.1/Windows
	codegen	bug described in STDCCXX-248.

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

	* cmdopt.cpp (usage_text): New.
	(show_usage): Printed usage to stdout when explicitly requested
	via a command line option (such as --help) and to stderr otherwise.
	(eval_options): Added the new --help option (same as -h).

2006-08-03  Andrew Black  <ablack@roguewave.com>
	    Martin Sebor  <sebor@roguewave.com>

	* cmdopt.cpp (bad_value, missing_value): New helpers.
	(bad_option): Made pointer const, not the argument.
	(eval_options): Detected and diagnosed invalid or missing
	option arguments and failed calls to kill and sigaction.

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

	* runall.cpp (main): Widened NAME column to 25 characters, and
	renamed ASSRTS column to ASSERTS, widening to 7 characters in
	the process.
	* runall.cpp (run_target): Altered format string used to print
	target name to match above.
	* output.cpp (check_test, check_compat_test): Altered format
	string used to print assertion counts to match the above.

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

	* GNUmakefile (BINDIR, LIBDIR): Removed from makefile.in.
	* makefile.common (BINDIR, LIBDIR): Defined.

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

	* cmdopt.h (eval_options, split_opt_string): Removed spurious const.
	* exec.cpp: Inserted a missing newline to reduce line length to less
	than 80 characters.
	* exec.h (get_signo): Removed a redundant const qualifier from the
	function's return type.

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

	* exec.h (get_signo): Declared.
	* exec.cpp (get_signo): Defined.
	* exec.cpp (signal_names): Moved lookup table out of get_signame
        to file scope.
	* cmdopt.h (verbose): Declared global.
	* cmdopt.cpp (verbose): Defined global.
	* cmdopt.cpp (get_short_val, get_long_val, bad_option): Added
        helper functions for option parsing.
	* cmdopt.cpp (eval_options): Used new functions, add -v, -q,
        --exit, --sleep, --signal, --ignore switches.

2006-07-31 Andrew Black <ablack@roguewave.com>

	* util.h (RW_REALLOC, guarded_realloc): Define helper macro and
	wrapper function for realloc.
	* util.cpp (guarded_realloc): Implementation.
	* cmdopt.h (split_child_opts): rename to split_opt_string, alter
        signature.
	* cmdopt.cpp (split_child_opts): ditto, alter behavior removing
        'empty' 0 element from generated array.
	* runall.cpp (merge_argv): Define static function to merge a target
        with an argument array.
	* runall.cpp (run_target): Alter to use above.
	* runall.cpp (main): alter use of split_child_opts/split_opt_string
        to reflect changes in cmdopt.cpp/h.

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

	* util.cpp (warn, terminate): Handle case of null target_name.

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

	* alloc.cpp (CaddrT): New type.
	(munmap): Changed first argument from void* to CaddrT.
	(_rw_table, _rw_table_size, _rw_table_max_size): Renamed from
	table_, table_size_, and table_max_size_ according to the naming
	convention.
	(MemRWGuard::caddr_): Changed type to CaddrT and renamed from
	addr_.
	(_rw_table_free, _rw_table_grow, _rw_table_insert,
	_rw_table_remove, _rw_find_by_addr): Type and naming changes
	according to the above.
	(MAP_FAILED): Changed to a macro.
	(mmap, mprotect): Changed to return/take CaddrT rather than
	void*.
	Removed unnecessary casts.
	(_rw_table_remove): Silenced Sun C++ 5.8 Warning: Conversion
	of 64 bit type value to "char" causes truncation.

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

	* exec.cpp (__PURE_CNAME): Defined prior to #including any system
	headers in order to prevent Compaq/HP C++ from using its "pure"
	libc headers and to get it to define POSIX symbols such as SIGABRT
	or SIGKILL.

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

	* alloc.cpp (sig_handler): Declqred extern "C" to avoid errors
	due to the incompatibility between extern "C" ane extern "C++"
	functions.
	(<stddef.h>): Included for size_t.

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

	STDCXX-264
	* LIMITS.cpp (compute_min): Renamed from foo.
	(greater): Removed.
	(compute_limits): Used the volatile globals zero, one, and two
	instead the locals to (try to) foil aggressive optimizers and
	avoid undefined behavior due to signed overflow. Used said
	globals instead of integer constants consistently in all
	arithmetic expressions.

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

	* exception.cpp (<stdlib.h>): Included instead of the non-standard
	<malloc.h> for malloc() and free().
	(ExceptionBase::operator=, format): Replaced calls to the C95
	function strncpy() with strcpy() for portability to C89 systems.

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

	* exception.cpp: Replaced Windows \r\n sequences with \n alone.

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

	STDCXX-4
	* 20.pairs.cpp: New test exercising lib.pairs.

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

	STDCXX-4
	* 20.function.objects.cpp: New test exercising lib.function.objects.

2006-07-28 Andrew Black <ablack@roguewave.com>

	* cmdopt.h (target_name): Declared global variable indicating current
	target.
	* cmdopt.cpp (eval_options): Routed unknown option message to stderr
	rather than stdout.
	* cmdopt.cpp (split_child_opts): Cached output of a strlen() call.
	* util.h (warn): Declared.
	* util.cpp (warn): Added utility function for generating a (non-fatal)
	error message.
	* util.cpp (terminate): Added executable and target name to output.
	* output.h (parse_output): Altered prototype.
	* exec.h (exec_file): Ditto.
	* output.cpp (FILE_TEST, check_example): Altered check_example to
	remove reliance on the diff utility, remove FILE_TEST as unneeded.
	* output.cpp (check_test, check_compat_test, parse_output): Moved
	opening of output file to parse_output.
	* exec.cpp (wait_for_child, exec_file): Used warn() utility.
	* runall.cpp (check_target_ok): Ditto.
	* runall.cpp (process_results): Altered signature, alter call to
	parse_output.
	* runall.cpp (run_target): Set/used target_name global, alter calls
	to exec_file and process_results.

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

	STDCXX-4
	* 20.temp.buffer.cpp: New test execising lib.temporary.buffer.

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

	* system.h: Removed (moved to <rw_process.h>).
	* system.cpp: Ditto (moved to process.cpp).
	* 22.locale.messages.cpp (<rw_process.h>): Included instead of
	<system.h> to avoid potential clashes with system header of the
	same name.
	* locale.cpp: Ditto.

2006-07-27  Farid Zaripov  <faridz@kyiv.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* rw_process.h: New. Declared test suite process helpers.
	* process.cpp: New. Defined the above.

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

	* src/printf.cpp (_rw_fmtstrarray): New function to format argv-style
	(i.e., null-terminated) arrays of NUL-terminated character strings.
	(_rw_vasnprintf_ex): Called _rw_fmtstrarray to process the "%{As}"
	formatting directive.
	* test/0.printf.cpp (test_stringarray): Exercised the above.

2006-07-27  Farid Ziripov <faridz@kyiv.vdiweb.com>
            Martin Sebor  <sebor@roguewave.com>

        * 21.strings.h (rw_setvars): Declared.
        (assert_equal): Changed return type to int.
        * 21.strings.cpp (rw_setvars): Renamed from _rw_setvars and made extern.

2006-07-25 Andrew Black <ablack@roguewave.com>

	* cmdopt.cpp: Formatting cleanup.
	* exec.cpp: Same.
	* output.cpp: Same.
	* runall.cpp: Same.
	* util.cpp: Same.

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

	* rwthread.h: Renamed...
	* rw_thread.h: ...to this according to convention.
	* rwthread.cpp: Renamed...
	* thread.cpp: ...to this.
	* push_back_mt.cpp (<rw_thread.h>): Included instead of rwthread.h.
	* atomic_add.cpp (<rw_thread.h>): Same.
	* atomic_xchg.cpp (<rw_thread.h>): Same.
	* temp_buffer_mt.cpp (<rw_thread.h>): Same.
	* exceptions_mt.cpp (<rw_thread.h>): Same. Replaced a call
	to memset() with zero-initialization of POD.

2006-07-25  Anton Pevtsov <antonp@moscow.vdiweb.com>

	* rwthread.cpp (rw_thread_pool): Passed the value of the thread
	argument rather than its address to the thread being created.

2006-07-23 Andrew Black <ablack@roguewave.com>
	   Martin Sebor <sebor@apache.org>

	* GNUmakefile (BINDIR): Add and use convenience variable referencing
	the bin/ subdirectory of the buildspace.
	* GNUmakefile.exm (RUNFLAGS): Change command line switch used to
	specify input/output file directory to match switch expected by
	the utility.
	* GNUmakefile.bin (exec): Add rule to build the new exec utility.
	* GNUmakefile.tst (RUNFLAGS): Removed additional switches as unneeded.
	* makefile.rules (run runall run_all): Add dependency on exec utility.
	* GNUmakefile.exm, GNUmakefile.tst: Add rule to build the exec utility.
	* run_locale_utils.sh: Change default output file to /dev/stdout, add
	test driver style assertion count summary.
	* cmdopt.h: New. Declared command line parsing function(s).
	* cmdopt.cpp: Definition(s) of the above.
	* exec.h: New. Declared helper to execute program(s).
	* exec.cpp: Definition(s) of the above.
	* output.h: New. Declarations of functions for program (test,
	example, etc.) output processing.
	* output.cpp: Defintions of the above.
	* runall.cpp: Defintion of main and helpers.
	* util.h: New. Declared helper functions.
	* util.cpp: Definitions of the above.

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

	* README: Added basic info for VisualStudio users.

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

	STDCXX-4
	* 22.locale.ctype.cpp: New test exercising the std::ctype facet.

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

	STDCXX-4
	* 22.locale.time.get.cpp: New test exercising the std::time_get facet.

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

	* 21.string.append.cpp (AppendRangeOverload): Qualified references
	to dependent base member function begin() with this-> to allow lookup
	to find them.
	* 21.string.assign.cpp (AssignRangeOverload): Same.
	* 21.string.cons.cpp (ConsRangeOverload): Same.
	* 21.string.insert.cpp (InsertRangeOverload): Same.

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

	* 22.locale.messages.cpp (CodeCvt): Parametrized to make it possible
	to exercise both required specialization of the messages facet.
	Overrode do_always_noconv() to try to make the messages facet use
	the codecvt<char, char>::in().
	(open_catalog, close_catalog): New helpers to reduce code bloat when
	opening and closing catalogs and checking for exceptions.
	(test_open_close, test_get, test_use_codecvt, test_use_nls_path,
	stress_test): Called helpers.

2006-07-19  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.io.cpp (Ctype): Removed as obsolete
	(TEST): test cases updated to exercise the exception safety
	(test_io): Ctype replaced with UserCtype, added exception 
	safety checks with streams

2006-07-19  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* allocator.cpp (_rw_throw_exception): Removed as obsolete 
	(allocate, funcall): The calls to _rw_throw_exception() replaced 
	with calls to rw_throw()
	* new.cpp (BadAlloc): Removed because of another one 
	is defined in exception.cpp
	(operator_new): The throw statement replaced with call 
	to rw_throw(ex_bad_alloc, ..) 
	* rw_streambuf.h (MyStreambuf): Added new method memfun_inx() 
	which returns the index of the method in array ncalls_; 
	added the member throw_when_ to define which virtual 
	method and when should throw the exception;  
	added the member allthrows_ to count the total number 
	of thrown exceptions; 
	added the member allcalls_ to count the total number of
	calls to the virtual methods
	(test): The throw statement replaced with call 
	to rw_throw(ex_stream, ...) 

2006-07-19  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-3
	* rw_exception.h: New header with definition of the Exception class
	and the rw_throw() function
	* exception.cpp: Implementation of the Exception class 
	and the rw_throw() function.

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

	STDCXX-4
	* 22.locale.messages.cpp: New test exercising lib.locale.messages.

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

	* file.h (rw_nextfd): New function.
	* file.cpp (rw_nextfd): Definition.

2006-07-18  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-3
	* 0.alloc.cpp: New test exercising the rw_alloc() and 
	rw_free() functions

2006-07-18  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* rw_alloc.h: Removed RW_PROT_EXEC as unusable
	* alloc.cpp: RW_ASSERT macro replaced with calls to more 
	informative rw_error() / rw_fail() 

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

	* src/printf.cpp (_rw_bufcat): Avoided appending NUL to the end
	of buffer and failed consistently when the maximum size of of the
	buffer has been reached.
	(rw_vasnprintf): Allowed buffer length not including the terminating
	NUL to reach its maximum capacity. Reset errno to original value if
	set by a failed call to fprintf (e.g., when the file has been closed).
	(_rw_vasnprintf_ex): Made sure buffer is NUL-terminated before
	invoking user-defined callbacks.
	(rw_snprintfa): Returned (char*)0 on error.
	* test/printf.cpp (stress_bufsize): Stress test to exercised the
	ability to format into a fixed size buffer and correctly report
	buffer overlow errors via ENOMEM.
	(main): Closed stderr before calling stress_bufsize to avoid
	excessive noise.

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

	* rw_ctype.h (UserCtype, ctype): Added a ctor overload
	to all specializations.
	* 0.ctype.cpp: Defined the above.

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

	* rw_ctype.h (std::ctype<UserChar>): Defined specialization.
	(UserCtype<UserChar>): Defined in terms of the above.
	* src/ctype.cpp (std::ctype<UserChar>): Defined members.
	(UserCtype<UserChar>): Removed definitions of virtual members.
	* test/ctype.cpp (UserCtype::id): Exercised.

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

	* alloc.cpp: Renamed driver-private symbols according to the naming
	convention (by prepending the "_rw_" prefix to their names).
	(first, last): Renamed to _rw_head and _rw_tail, respectively.
	(RA_ASSERT): Used instead of the assert() macro.
	Adjusted formatting according to convention.

2006-07-14  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-3
	* rw_alloc.h: New header with the declarations of the rw_alloc 
	and rw_free functions.
	* alloc.cpp: Definitions of the rw_alloc and rw_free functions.

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

	* alarm.h: Renamed...
	* rw_alarm.h: ...to this to avoid a name clash on HP-UX.
	* alarm.cpp: Included rw_alarm.h instead of alarm.h.
	* exceptions_mt.cpp: Same.

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

	* _config.h (_RWSTD_NO_EXT_KEEP_WIDTH_ON_FAILURE): #defined
	in response to _RWSTD_STRICT_ANSI/_RWSTD_NO_EXTENSIONS being
	#defined. (See STDCXX-205 and STDCXX-206).
	(_RWSTD_VER): Added a missing digit.

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

	STDCXX-205
	STDCXX-206
	* _num_put.cc (_C_put): Called width(0) before outputting any
	characters (see STDCXX-259) but guarded with the configuration
	macro _RWSTD_NO_EXT_KEEP_WIDTH_ON_FAILURE for consistency with
	(some) other inserters. When the macro is not #defined, reset
	width only after all characters have been successfully output
	(i.e., no exception occurred and the iterator is not in failed
	state).
	* ostream (operator<<(ostream&, charT), operator<<(ostream&,
	charT*): Avoided calling width(0) here (done in __rw_insert).
	_ioinsert.cc (__rw_insert)): Called width(0) unconditionally
	after outputting characters as required of array inserters
	(but not single-charater inserters), and guarded with
	_RWSTD_NO_EXT_KEEP_WIDTH_ON_FAILURE. When the macro is not
	#defined, reset width only after all characters, including
	any padding, have been successfully output (for consistency
	with numeric inserters).

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

	* GNUmakefile.bin (SRCDIRS): Reverted an inadvertent change
	introduced in r420633.

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

	STDCXX-255
	* locale.cpp (initialize): Avoided trying to validate and diagnose
	null pointers.

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

	* run_locale_utils.sh (check_locale_location): Removed a bogus test.
	(locale, localedef): Added helper variables to refer to the utilities
	in the CWD.
	(check_locale_xxx): Removed "let x+= 1" Bash-isms, replaced the non
	portable Linux extension echo -n with printf.
	(generate_locale): Removed inadvertent backgrounding of process.
	(test_locale): Added assertions.
	Used process id in temporary file name(s) and removed on exit.
	Removed redundant debugging output.

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

	* GNUmakefile.bin ($(RUNTARGET)): Simplified. Used the $* shell
	variable to pass all command line arguments to the invoked script.
	Added progress output.

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

	STDCXX-257 (part 2)
	* GNUmakefile.bin: Renamed run_locale_utils.sh to run_utils.

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

	STDCXX-257
	* GNUmakefile: Renamed the run_locale_utils.sh symlink to run_utils
	to prevent the clean target from removing it.
	* GNUmakefile.bin: Same.

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

	* 0.strncmp.cpp (run_test): Used SIZE_MAX instead of ~0.

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

	* src/char.cpp (_rw_get_char): Handled terminating NUL when
	the source string length is specified (i.e., not SIZE_MAX).
	(_rw_expand, rw_match): Passed the length of the source
	string to _rw_get_char.
	* self/0.char.cpp (test_rw_match): Added assertions exercising
	the above (see also the thread at http://tinyurl.com/zf9pm).

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

	STDCXX-3
	* rw_ctype.h: New header with the definitions of the UserCtype
	primary template and explicit specializations for char, wchar_t,
	and UserChar.
	* ctype.cpp: Definitions of members of UserCtype specializations.
	* test/ctype.cpp: New test (partially) exercising UserCtype::is().

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

	* replace.cpp (ReplaceRangeOverload): Qualified calls to members
	of a dependent base with this-> to allow lookup to find them and
	prevent compilation errors with strict compilers.

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

	STDCXX-256
	* run_locale_utils.sh (check_locale_location, check_locale_help,
	check_locale_all, ...): Removed non-portable function keyword.
	(test_locale): Used the export keyword in a portable way.

2006-07-07  Andrew Black  <ablack@roguewave.com>

	STDCXX-254
	* GNUmakefile.tst (RUNFLAGS): Added --compat to make tests
	produce output understandable by the runall.sh script.
	* runall.sh: Moved XOPTS in front of any other command line
	options passed to executables (tests, examples, or locale
	scripts).

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

	* 25.for.each.cpp: Updated acording to changes in alg_test.h -
	the calls to make_iter replaced with calls to iterators ctors.
	* 25.mismatch.cpp: Same
	* 25.reverse.cpp: Same
	* 25.rotate.cpp: Same

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

	STDCXX-253
	* GNUmakefile (.PHONY): Added target util.

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

	* 21.strings.cpp (_rw_run_test): Avoided making the assumption
	that the range function member template is the last element in
	the array of tests and "optimized" by moving the loop iterating
	over iterator categories and known iterator types into the loop
	that iterates over each function's array of tests. See the
	thread starting at http://tinyurl.com/qsfy3 for more.

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

	* fmt_defs.h (_rw_fmtmask): Renamed to _rw_fmtcharmask and added
	a new function with the same name to format ctype_base::mask values.
	* fmt_bits.cpp (_rw_fmtmask): Same.
	* src/printf.cpp (_rw_vasnprintf_ext): Handled the new %{C} and
	%{LC} directives to format the ctype mask of a character argument
	and a ctype_base::mask value, respectively.
	* test/printf.cpp (test_ctype_mask): Exercised the %{LC} directive.
	(main): Called test_ctype_mask.

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

	* 21.string.io.cpp (NotEof): Parenthesized.
	(extractor_test_cases): Added test cases.
	(test_io): Simplified, constified locals, added comments,
	used the %{Is} directive to format ios::iostate values,
	and adjusted formatting.

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

	* 21.strings.cpp (_rw_setvars): Formatted the (initial)
	contents of the string argument to string I/O functions.

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

	STDCXX-251
	* streambuf (uflow): Outlined and moved...
	* streambuf.cc (uflow): ...to here. Prevented undefined behavior
	caused by dereferencing gptr() when underflow() doesn't set up
	a non-empty pending sequence (i.e., when gptr() == 0 or when
	gptr() == egptr()).

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

	* _mutex.h: Updated copyright.

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

	STDCXX-4
	* 21.string.io.cpp: New test exercising lib.string.io.

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

	* 21.strings.h (MemberId): Added new elements for inserter, 
	extractor, getline non-members.
	(OverloadId): Added new enum elements for these non-members and 
	their overloads.
	(ArgId): Added new elements for input and output stream arguments.
	* 21.strings.cpp (_rw_sigcat): Updated to operate with 
	stream arguments and new fids, added new formatting variables
	ISTREAM and OSTREAM processing
	(_rw_setvars): Added new formatting variables ISTREAM and OSTREAM 
	processing to operate with stream arguments in string's non-members.
	* rw_streambuf.h: Added support for UserChar.

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

	STDCXX-245
	STDCXX-247
	* sstream.cc (seekpos): Used a typedef rather than the class name
	(w/o a template argument list) to prevent invoking a virtual member
	function overridden in a derived class to work around an HP aCC
	3.27 bug.
	* fstream.cc (overflow, xsputn): Same.
	Replaced codecvt_base::result with plain old int to work around
	yet another HP aCC 3.27 bug.
	* _messages.cc (do_get): Same.

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

	STDCXX-184
	* cstdlib (abs): Hacked around an HP aCC quirk when using system
	headers in /usr/include without the compiler's wrappers (i.e.,
	when -I/usr/include is before the compiler's include directory
	in the preprocessor seacrh path). See STDCXX-244.
	* stdlib.h: Same.

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

	* 21.strings.cpp (_rw_dispatch): Detected and diagnosed
	test logic error: null test callback function.

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

	* src/char.cpp (_rw_get_char): New helper to parse <char>@<count>
	directives and Unicode <Unnn...> sequences denoting UCS characters.
	(_rw_expand): Called _rw_get_char.
	(rw_match): Called _rw_get_char, optimized and simplified.
	* test/0.char.cpp (test_rw_match): Added test cases and exercised
	the handling of <Unnn...> sequences.
	* 21.string.replace.cpp: Made use of the <Unnnn> directive and
	replaced NUL characters embedded in hardcoded string literals with
	the <U0> Unicode sequence (denoting NUL).

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

	* 21.string.access.cpp: Made use of the <Unnnn> directive and
	replaced NUL characters embedded in hardcoded string literals with
	the <U0> Unicode sequence (denoting NUL).
	* 21.string.access.cpp: Same.
	* 21.string.append.cpp: Same.
	* 21.string.assign.cpp: Same.
	* 21.string.capacity.cpp: Same.
	* 21.string.cons.cpp: Same.
	* 21.string.copy.cpp: Same.
	* 21.string.erase.cpp: Same.
	* 21.string.insert.cpp: Same.
	* 21.string.iterators.cpp: Same.
	* 21.string.operators.cpp: Same.
	* 21.string.plus.cpp: Same.
	* 21.string.plus_equal.cpp: Same.
	* 21.string.substr.cpp: Same.
	* 21.string.swap.cpp: Same.

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

	* 21.strings.cpp (_rw_reverse_results): Conditionally declared
	static to avoid Sun C++ bug/limitation (see STDCXX-207), and
	constified locals.
	(_rw_dispatch): Qualified the call to _rw_reverse_results with
	:: and constified locals.
	Used size_t instead of the _RWSTD_SIZE_T macro intended to be
	used only in headers.

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-23  Martin Sebor  <sebor@roguewave.com>

	* char.cpp (test_user_traits_wchar): Removed from ...wchar_t to
	avoid Emacs syntax highlighting normally used only for types.
	(test_rw_expand): Added test cases.
	(opt_user_traits, ...): Renamed from no_user_traits, ...
	(run_test): Accommodated naming changes above and treated
	options as tristate (rather than two-state switches).
	(main): Changed options from switches to tristate.

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

	* stringbuf_virtuals.cpp (<ctsring>, <rw_char.h>): Included.
	(VFun): Added sequence_ member.
	(widen): Removed (obviated by rw_expand declared in <rw_char.h>).
	(test_virtual): Called rw_expand() instead of widen(). Called
	sputn() with pptr() as the first argument when string argument
	is null.
	(test_virtual): Reset strarg_ and sequence_ after each test case.
	(test_xsputn): Used <char>@<repeat-count> directives and added
	new test cases exercising xsputn() with the first argument of
	pptr().

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

	* char.cpp (_rw_expand): NUL-terminated expanded string.
	(rw_match): Avoided false positives when detecting whether
	to expand the first argument.

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

	* printf.cpp (rw_vasnprintf): Used the number of bytes,
	not elements, in the call to memcpy.

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

	* 21.string.rfind.cpp: Added missed header <exception>

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

	STDCXX-7
	* fstream (xsputn): Declared.
	* fstream (xsputn): Overrode the base class virtual function and
	optimized to avoid unnecessary writes when the size of the array
	argument exceeds the amount of space available in the internal
	character buffer.
	(overflow): Moved most of the body of the function to xsputn()
	and called it.

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

	* reverse_iterator.cpp: Updated copyright.

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

	STDCXX-197
	* gcc.config (SHARED_SUFFIX): Defined to .dylib for Darwin.

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

	* fmt_defs.h (_rw_fmtbits): Declared new helper function.
	* fmt_bits.cpp (_rw_fmtbits): Defined it.
	* src/printf.cpp (_rw_vasnprintf_ext): Called _rw_fmtbits in
	response to the %B and %b directives to format bitset values.
	* test/printf.cpp (test_bitset): Exercised the %b directive.
	(test_*): Declared all functions static.

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

	Renamed files for sanity.

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

	STDCXX-4
	* 21.string.iterators.cpp: New test exercising lib.string.iterators.
	* 21.strings.h (MemberId): Added new elements for data, c_str,
	get_allocator, begin, end, rbegin, rend methods.
	(OverloadId): Added new enum elements for these methods and their 
	overloads.
	* 21.strings.cpp (_rw_setvars): Added support for data, c_str,
	get_allocator, begin, end, rbegin, rend overloads.

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

	* 20.specialized.cpp (make_iter): Replaced a template with a couple
	of ordinary functions to avoid tripping up broken compilers such
	as HP aCC 3.63 on argument deduction.

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

	* specialized.cpp (type_name): Added an overload for const
	volatile T*.
	(run_test): Exercised std::uninitialized_copy() specialized
	on InputIterator=const volatile int* to further exercise
	STDCXX-203.

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

	STDCXX-4
	* 20.specialized.cpp: New test exercising lib.specialized.algorithms,
	including STDCXX-203.

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

	* alg_test.h (InputIter ctor): Asserted a precondition.
	(InputIter, OutputIter, ...): Changed the actual type
	of difference_type from plain int to ptrdiff_t.
	(make_iter): Made the type of the first argument const T*
	for const iterator overloads of the function template.

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

	STDCXX-202
	* configure.wsf (checkHeader): Parentheses added.
	(runExeTests): "ok" changed to "no" for failed tests.

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

	STDCXX-203
	* _specialized.h (__rw_construct): Added an overload on volatile T*.

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

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

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

	* 21.strings.cpp (_rw_reverse_results): new helper function to 
	reverse the substring in the resulting sequence
	(_rw_dispatch): updated to reverse the resulting substring for
	the reverse iterators via call to the helper function.
	* 21.string.append.cpp (AppendRangeOverload): Added special
	processing for the reverse iterators.
	(test_append): reverse iterators tests enabled, range classes
	variables renamed for the convenience.
	* 21.string.assign.cpp: Same
	* 21.string.cons.cpp: Same
	* 21.string.insert.cpp: Same
	* 21.string.replace.cpp: 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-14  Martin Sebor  <sebor@roguewave.com>

	* cwchar (swprintf, vswprintf): More hackery for the various
	strains of the disease known as MSVC.

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

	* 21.strings.cpp (_rw_setvars): ctor_range and ctor_range_alloc 
	cases joined with append_range and assign_range
	* 21.string.cons.cpp: Ctor replaced with Cons according to 
	the naming conventions.
	(ConsRange, ConsRangeOverload): New class templates to abstract out 
	the invocation of the ctor member template and its overloads.
	(test_cons): Added RangeBase& argument and eliminated
	test_cons_range (obviated by the addition of the argument).
	(test_cons): Dispatched to the appropriate specialization
	based on the iterator id (if any).

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

	* cwchar (wprintf, swprintf): Avoid declaring functions extern
	"C++" to prevent dumb MSVC 8 from choking on it for some bizarre
	reason.

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-13  Martin Sebor  <sebor@roguewave.com>

	* 22.locale.time.put.cpp (test_POSIX): Avoided exercising the "%Z"
	directive with an invalid tm object (tm_isdst < 0). Added a couple
	of test cases for the same directive (but with a valid tm object).
	See STDCXX-201.

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

	* 22.locale.time.put.cpp (do_test): Included the value of the TZ
	environment variable in diagnostics involving the "%Z" or "%z"
	formatting directives.

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

	* rw_char.h (UserTraits): Removed the definition of the primary
	template and replaced it with definitions of the two required
	specializations (on char and wchar_t) to avoid Sun C++ 5.8 bugs
	described at http://issues.apache.org/jira/browse/STDCXX-177.
	(TraitsMemFunc): Moved from the primary template to file scope
	and renamed from TraitsFun.
	* char.cpp: Same.

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

	* cmdopt.cpp (cmdopts_t): Renamed toggle_ to tristate_.
	(_rw_getbounds): Added a formal argument and handled tristate_
	bit number specification.
	(_rw_match_tristate): Renamed from _rw_match_toggle.
	(_rw_set_bits): New helper.
	(rw_runopts): Handled tristate bit specifications.
	* 0.cmdopts.cpp (test_tristate): Renamed from test_toggles
	and exercised bit specification.

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

	STDCXX-4
	* 27.ostream.cpp: New test exercising lib.ostream.

2006-06-11  Eric Lemings  <lemmings@roguewave.com>

	STDCXX-194
	* gcc.config (LDSOFLAGS): Avoided using -shared on Darwin.

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

	STDCXX-4
	* 27.filebuf.codecvt.cpp: New test exercising lib.filebuf with
	a user-defined codecvt facet.

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

	* cwchar (swprintf, vswprintf): Declared extern "C++" for MSVC 7.1
        and beyond.

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

	* 21.strings.h (RangeBase): New base class to exercise the range
	template methods overloads - append, assign, insert and replace.
	* 21.strings.cpp (_rw_setvars): append_range and assign_range 
	cases separated from others due to the changes in the 
	corresponding tests.
	* 21.string.append.cpp (AppendRange, AppendRangeOverload): New class
	templates to abstract out the invocation of the append member
	template and its overloads.
	(test_append): Added RangeBase& argument and eliminated
	test_append_range (obviated by the addition of the argument).
	(test_append): Dispatched to the appropriate specialization
	based on the iterator id (if any).
	* 21.string.assign.cpp: Same
	* 21.string.insert.cpp: Same
	* 21.string.replace.cpp (ReplaceBase): moved to 21.strings.h
	and renamed to RangeBase.
	(ReplaceRangeOverload): begin overloads moved to the base class.
	(test_replace): parameter type changed to RangeBase.

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

	* 21.string.swap.cpp (str_test_cases): Added test cases with
	special strings length.
	(test_swap): Added two Allocator parameters, migrated to use 
	StringTestCaseData structure, exception safety testing loop added.
	(main): rw_run_string_test call updated according to 
	test driver changes.

2006-06-06  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	* 21.string.replace.cpp: Added test cases.
	(ReplaceBase, ReplaceRange, ReplaceRangeOverload): New class
	templates to abstract out the invocation of the replace member
	template and its overloads.
	(test_replace): Added ReplaceBase& argument and eliminated
	test_replace_range (obviated by the addition of the argument).
	(test_replace): Dispatched to the appropriate specialization
	based on the iterator id (if any).

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

	* 21.strings.h (IteratorId): New member type of StringIds.
	(StringFunc): Added a new data member.
	* 21.strings.cpp (_rw_iter_names): New.
	(_rw_opt_char_types, ...): Sized based on the corresponding
	_rw_xxx_names arrays.
	(_rw_sigcat): Used _rw_iter_names in function signatures and
	command line option names.
	(_rw_argno): Renamed from _rw_uses_alloc and generalized.
	(_rw_setvars): Simplified the setting of environment variables
	by using the %{paramater!:word} extended directive.
	(_rw_run_cases): New helper.
	(_rw_run_test): Iterated over all IteratorId's and called
	_rw_run_cases.
	(_rw_add_toggles): New helper.
	(_rw_run_test): Called _rw_add_toggles, installed option
	handlers for iterator specializations of member templates.

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

	STDCXX-189
	* LOCALE_NAME_FMAT.cpp (MAX_LOCALE_NAME_LEN): New macro defined
	to the maximum length of a locale name sufficiently large to
	handle excessively long names generated by GNU glibc.
	(main): Used it consistently throughout.

2006-06-05  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-191
	* gcc.config (MULTI_CPPFLAGS_POSIX, MULTI_LDFLAGS_POSIX): Removed
	-pthread for gcc on Darwin.

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

	* 21.strings.cpp (_rw_setvars): Handled the %{$Iterator} directive in
	formatting of string member function templates.
	(_rw_run_test): Corrected a typo in a conditional formatting directive.

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

	* printf.cpp (_rw_fmtexpr): Added the %{$parameter!:word} drective
	as an extension and corrected logic error (passing a pointer to an
	auto array to free()).

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

	* rw_allocator.h (reset_call_counters, func_name): New functions.
	* allocator.cpp (reset_call_counters, func_name): Implemented.
	(instance): Made sure global instance always exists.

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

	* 21.strings.cpp (_rw_setvars): Corercted the syntax of setenv
	directives.

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

	STDCXX-193
	* makefile.common (INCLUDES): Reversed the order of -I options.

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

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

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

	* 21.strings.h (FuncId): Added new elements for capacity mehtods.
	(OverloadId): Added new elements for capacity methods overloads.
	* 21.strings.cpp (_rw_func_names): Added capacity methods names,
	(_rw_setvars): Added cases for capacity methods overloads.
	* 21.string.capacity.cpp: Converted to simplified format
	(MemFun, run_test): removed as obsolete
	(test_capacity): Updated to use the test driver features.
	(main): Updated to use common workflow via test driver functions.

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

	* 21.string.cons.cpp (cptr_test_cases, cstr_test_cases, ...): Added
	new test cases which contains strings with special length to 
	exercise memory allocation,
	(test_cons_range): Changed signature
	to take StringTestCaseData<charT> instead of charT* arrays and
	their sizes and simplified definition.
	(test_cons): Same.
	(DEFINE_STRING_TEST_FUNCTIONS): Used to define an array of
	pointers to specializations of the test_cons template,
	thus obviating the need for the dispatch function.
	(main): Passed test_cons_func_array defined by the macro
	above to rw_run_string_test.
	21.string.append.cpp: Added new test cases which contains strings 
	with special length to exercise memory allocation,
	21.string.assign.cpp: Same
	21.string.insert.cpp: Same
	21.string.op.plus.equal.cpp: Same
	21.string.replace.cpp: Same

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

	* 21.strings.cpp (_rw_dispatch): Corrected the type of the test
	function to match its actual definition in the test.

2006-05-29  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.opertators.cpp: New test exercising 
	lib.string.nonmembers operators.

2006-05-29  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.op.plus.cpp: New test exercising lib.string::op+.

2006-05-29  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.strings.cpp (_rw_sigcat, _rw_setvars): Added 
	workaround for STDCXX-190 - warning silenced.

2006-05-29  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.strings.h (bit_member): Silenced MSVC bogus warning.

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

	* 21.string.replace.cpp (test_replace_range): Changed signature
	to takeStringTestCaseData<charT> instead of charT* arrays and
	their sizes and simplified definition.
	(test_replace): Same.
	(DEFINE_STRING_TEST_FUNCTIONS): Used to define an array of
	pointers to specializations of the test_replace template,
	thus obviating the need for the dispatch function.
	(main): Passed test_replace_func_array defined by the macro
	above to rw_run_string_test.

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

	* 21.strings.h (StringTestCaseData): New helper class template.
	(VoidFunc): New helper typedef.
	(DEFINE_STRING_TEST_FUNCTIONS): New helper macro to define an
	array of pointers to test functions (typically specializations
	of the same function template) and to obviate the need for the
	definition of the dispatch function in each test.
	(rw_run_string_test): Added a new overload taking an array of
	VoidFunc.
	* 21.strings.cpp (<string>, <rw_allocator.h>): Included headers.
	(_rw_dispatch): Added a set of overloaded function templates.
	(_rw_test_case): Added a VoidFunc[] argument and invoked
	_rw_dispatch.
	(_rw_func_array): New global array of pointers to test functions.
	(_rw_run_test): Passed _rw_func_array to _rw_test_case.
	(_rw_run_test): Moved body of rw_run_string_test here.
	(rw_run_string_test): Called _rw_run_test.

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

	* 21.string.replace.cpp (test_replace): Updated the expected_throw 
	value calculating mechanism.
	* 21.string.append.cpp (test cases): Changed the meaning of
	(tcase.bthrow == 0) to enable the testing of exception safety,
	and used -1 to disable.
	(Test, MemFun): Removed unused typedefs.
	(test_replace): Renamed throw_after to throw_count to better
	reflect the purpose of the variable
	Set UserAlloc::allocate() to throw bad_alloc analogously to
	operator new.
	Exercised exception safety in each test case by default (i.e.,
	when tcase.bthrow == 0).
	* 21.string.assign.cpp: Same
	* 21.string.insert.cpp: Same
	* 21.string.op.plus.equal.cpp: Same

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

	* 21.strings.h (FuncId): Added members, increased to 6 bits.
	(bit_member): New enumerator designating member functions.
	(OverloadId): Added enumerator for operator+, operator==,
	operator!=, and all relational operators.
	* 21.strings.cpp (_rw_func_names): Added function names.
	(_rw_class_name): New helper function to compute the name
	of the basic_string class (string, wstring, or basic_string).
	(_rw_sigcat): Used mnemonics instead of real function names
	for name of options controlling operators (such as operator+).
	Handled non-members correctly.
	(_rw_uses_alloc): New helper to help determine whether a ctor
	overload takes an allocator argument.
	(_rw_setvars): Formatted ctors and non-members correctly.
	Added formatting handlers for missing ctor overloads.
	Added formatting handlers for non-member functions.

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

	* 21.strings.h: Renamed StringMembers to StringIds, charT to CharId,
	Traits to TraitsId, Allocator to AllocId, and MemberId to FuncId).
	Removed UnknownChar, UnknownTraits, and UnknownAllocator and renamed
	DefaultAllocator and UserAllocator to DefaultAlloc and UserAlloc,
	respectively.
	Changed the prefix of FuncId (previously MemberId) enumerators from
	mem_ to fid_ (function id) to accommodate non-member string functions.
	(ArgId): New enum to encode the type of a single function argument.
	Removed SignatureId.
	(OverloadId): Defined enumerators in terms of FuncId and ArgId.
	Renamed Function to StringFunc, TestCase to StringTestCase, Test to
	StringTest, TestFun to StringTestFunc, run_test to rw_run_string_test,
	and moved all to file scope to make it possible to refer to them
	without qualification.
	(arg_type): New helper to determine the type of a function argument.
	(NPOS): New convenience constant representing std::string::npos.
	Removed long_string, rw_disable_user_allocator, and
	DEFINE_TEST_DISPATCH.
	(TEST_DISPATCH): Accommodated above changes.
	* 21.strings.cpp: Made naming and restructuring changes corresponding
	to the above.
	(_rw_opt_func): New array for toggling (enable/disable) options.
	Replaces _rw_opt_memfun_disabled and _rw_opt_memfun_enabled.
	(_rw_opt_char_types, _rw_opt_traits_types, _rw_opt_alloc_types,
	_rw_opt_self_ref): New arrays replacing _rw_opt_no_char_types,
	_rw_opt_no_traits_types, _rw_opt_no_alloc_types, and
	_rw_opt_no_self_ref.
	(_rw_get_func_inx): New helper. Computes a zero-based index of
	a tested string function from the array of tests supplied by each
	test program.
	(_rw_ilog2): Removed unused static function.
	(_rw_sigcat): New helper. Formats a string function signature
	or the mnemonic used to refer to it on the command line (e.g.,
	"append_val").
	(_rw_test_case): Enhanced the handling of command line options
	to allow to enable specific cases in addition to disabling them.
	(_rw_toggle_options): New helper. Scans an array of enable/disable
	options (toggles) and disables all those not explicitly enabled
	when at least one explicitly enabled option is found.
	(_rw_run_test): Simplified and enhanced by using toggles.
	(rw_run_string_tests): Dynamically constructed a command line
	option specification from the set of tests passed to it by the
	test program. Included function name in the name of the option.
	* 21.string.access.cpp: Accommodated the changes above and simplified.
	* 21.string.append.cpp: Same.
	* 21.string.assign.cpp: Same.
	* 21.string.compare.cpp: Same.
	* 21.string.cons.cpp: Same.
	* 21.string.copy.cpp: Same.
	* 21.string.erase.cpp: Same.
	* 21.string.find.cpp: Same.
	* 21.string.find_first_not_of.cpp: Same.
	* 21.string.find_first_of.cpp: Same.
	* 21.string.find_last_not_of.cpp: Same.
	* 21.string.find_last_of.cpp: Same.
	* 21.string.insert.cpp: Same.
	* 21.string.plus_equal.cpp: Same.
	* 21.string.replace.cpp: Same.
	* 21.string.rfind.cpp: Same.
	* 21.string.substr.cpp: Same.
	* 21.string.swap.cpp: Same.

2006-05-24  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* data.js (icc91SolutionName, icc91CfgSolutionName): New global
	variables to keep icc-9.1 solution names.
	* generate.js (solutionICC91): New global variable to keep icc-9.1 
	solution object.
	* generate.wsf (generateBuildBatch): Added special processing 
	for icc-9.1solution.
	* icc-config.js (solutionICC91Cfg): New variable to keep icc-9.1
	configuration solution.
	(configureToolsICC91): New function to configure tools for icc-9.1.
	* makelog.wsf (readAndCheckArguments): Set buildLogUnicode 
	variable to -1 for icc-9.1 - buildlog.htm is unicode.
	* msvc-config.js (solutionICC91): New variable to keep icc-9.1 
	solution object.
	* runall.wsf (runAllExamples): Set logUnicode variable to "true"
	for icc-9.1 - buildlog.htm is unicode.

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

	* 18.exception.cpp: Simplified command line option handling
	by using toggles.

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

	* cmdopt.cpp (cmdopts_t): Added the toggle_ member.
	(rw_vsetopts): Added the tilde ('~') special character
	denoting a toggle (i.e., and off/on option).
	(_rw_match_toggle): New.
	(rw_runopts): Called _rw_match_toggle.
	* 0.cmdopts.cpp (test_toggles): Added tests for the above.
	(main): Called test_toggles.

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

	STDCXX-4
	* 18.exception.cpp: Converted to new test driver.

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

	* 21.strings.h (TEST_DISPATCH): Passed the entire Function object
	to the test function template, not just the OverloadId member.
	* 21.string.access.cpp (OverloadId, Test): Removed unused typedefs.
	(Function): New convenience typedef.
	(test_access): Changed signature to take a Function argument
	rather than just OverloadId. Renamed the cs formal argument
	to tcase to make it more understandable and for consistency
	with other tests.
	* 21.string.append.cpp: Same.
	* 21.string.assign.cpp: Same.
	* 21.string.compare.cpp: Same.
	* 21.string.cons.cpp: Same.
	* 21.string.copy.cpp: Same.
	* 21.string.erase.cpp: Same.
	* 21.string.find.cpp: Same.
	* 21.string.find.first.not.of.cpp: Same.
	* 21.string.find.first.of.cpp: Same.
	* 21.string.find.last.not.of.cpp: Same.
	* 21.string.find.last.of.cpp: Same.
	* 21.string.insert.cpp: Same.
	* 21.string.plus_equal.cpp: Same.
	* 21.string.replace.cpp: Same.
	* 21.string.rfind.cpp: Same.
	* 21.string.substr.cpp: Same.
	* 21.string.swap.cpp: Same.

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

	* 21.string.cons.cpp: Removed unnecessary #include directives
	and improved comments.

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

	* 21.string.replace.cpp (test cases): Changed the meaning of
	(tcase.bthrow == 0) to enable the testing of exception safety,
	and used -1 to disable.
	(Test, MemFun): Removed unused typedefs.
	(test_replace): Renamed throw_after to throw_count to better
	reflect the purpose of the variable.
	Simplified the conditional computing the expected exception.
	Set UserAlloc::allocate() to throw bad_alloc analogously to
	operator new.
	Exercised exception safety in each test case by default (i.e.,
	when tcase.bthrow == 0).

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

	* 21.strings.cpp (_rw_setvars): Corrected formatting by adding
	the missing %{;} directive.

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

	* rw_allocator.h (n_throws_): New member array to keep track
	of the number of exceptions thrown from each member function.
	* allocator.cpp (SharedAlloc ctor): Zero-initialized all arrays.
	(funcall): Incremented the member function call counter regarless
	of whether the call results in an exception or not to parallel
	the same algorithm used in operator_new(). Incremented the
	exception counter, n_throws_, for each thrown exception.

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

	* 21.strings.h (DEFINE_STRING_TEST_DISPATCH): Used fully qualified
	StringMembers types Function and TestCase instead of relying on
	convenience typedefs defined in each test.

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

	* rw_allocator.h (allocator): Changed the class-key from struct
	to class to shut up a bogus MSVC warning.

2006-05-18  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.append.cpp (<rw_allocator.h>): Included.
	(test_append_range, test_append): Added Allocator template
	parameter and function argument.
	(DEFINE_STRING_TEST_DISPATCH): Replaced DEFINE_TEST_DISPATCH.
	* 21.string.access.cpp: Same
	* 21.string.assing.cpp: Same
	* 21.string.compare.cpp: Same
	* 21.string.cons.cpp: Same
	* 21.string.copy.cpp: Same
	* 21.string.erase.cpp: Same
	* 21.string.find.cpp: Same
	* 21.string.find.first.not.of.cpp: Same
	* 21.string.find.first.of.cpp: Same
	* 21.string.find.last.not.of.cpp: Same
	* 21.string.find.last.of.cpp: Same
	* 21.string.insert.cpp: Same
	* 21.string.op.plus.equal.cpp: Same
	* 21.string.rfind.cpp: Same
	* 21.string.substr.cpp: Same
	* 21.string.swap.cpp: Same

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

	* vector.cc (_C_insert_range): Removed a shadowing variable.

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

	* vector_modifiers.cpp (main): Removed a duplicate option
	specification.

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

	* 21.strings.cpp (_rw_setvars): Made static.
	Defined the {charT}, {Traits}, and {Allocator} environment variables
	to the name of the character type and the Traits and Allocator
	template arguments specified by each test.
	Removed an extraneous space from the format of the function call.
	Added the missing "|-no-self-ref# " option specification.

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

	* 21.string.replace.cpp (test_replace): Corrected the formatting
	of expected result string.
	(test_replace): Used rw_check_leaks() to simplify the detection
	of memory leaks using the user-defined allocator UserAlloc as
	well as replacement operator new (when available).

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

	* rw_allocator.h (m_cpy_assign, m_cvt_assign): New constants.
	(UserAlloc::operator=): Defined.
	(rw_check_leaks): Declared and defined new helpers.
	* allocator.cpp (<driver.h>): Included for rw_assert().
	(UserAlloc ctor): Initialized n_refs_.
	(UserAlloc dtor): Invalidated member arrays.
	(_rw_check_leaks): New helper.
	(rw_check_leaks): Defined.

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

	* 21.string.replace.cpp (<rw_allocator.h>): Included.
	(test_replace_range, test_replace): Added Allocator template
	parameter and function argument.
	(test_replace): Simplified the checking of calls to traits_type::
	length() in preparation for doing something similar for the user
	defined allocator.
	(DEFINE_STRING_TEST_DISPATCH): Replaced DEFINE_TEST_DISPATCH.

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

	* 21.strings.h (TEST_DISPATCH): Added an Alloc parameter.
	(DEFINE_TEST_DISPATCH): Introduced a transitional overload of
	the dispatch function template taking an Allocator argument
	and dispatching to the test-defined one which doesn't take
	one.
	(DEFINE_STRING_TEST_DISPATCH): New macro to define a dispatch
	function to invoke a test-defined function template with an
	Allocator argument.
	(rw_disable_user_allocator): Transitional variable to disable
	tests exercising basic_string with a user-defined allocator.
	* 21.strings.cpp (rw_disable_user_allocator): Defined.
	(_rw_run_test): Conditionally enabled tests exercising user
	defined allocators.
	("|-enable-size-const#"): Added a missing command line option.

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

	* rw_char.h (rw_get_call_counters): Inlined.
	Adjusted the formatting of function declarations according
	to convention (with function name in column 1).

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

	* allocator.cpp (<rw_new.h>): Included for operator_new() and
	operator_delete().
	(allocate, deallocate): Called the operator_new() and operator_delete()
	implementation functions instead of invoking the operators directly.

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

	STDCXX-179
	* vector.cc (_C_insert_range): Corrected the persistent logic
	error in the computation of the end of the range of elements
	to be overwritten (assigned).

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

	* vector_modifiers.cpp (test_insert): Corrected formatting.
	(test_insert_range): Added test cases exercising STDCXX-179.

2006-05-16  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.swap.cpp: New test exercising lib.string.swap.

2006-05-16  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.append.cpp (push_back_val_test_cases): New array to
	exercise the push_back method.
	(test_append): Added the case to exercise the push_back method.

2006-05-16  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.strings.cpp (_rw_setvars): Added support for swap and push_back
	overloads.

2006-05-16  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.strings.h (MemberId): Added new elements for swap, push_back
	(OverloadId): Added new enum elements for swap and push_back 
	overloads.

2006-05-15  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.cons.cpp: New test exercising lib.string.cons.

2006-05-15  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.access.cpp: New test exercising lib.string.access.

2006-05-15  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.copy.cpp: Converted to simplified format
	(MemFun, run_test): removed as obsolete
	(test_copy): Updated to use test driver features.
	* 21.string.replace.cpp (test_replace_range): Added res_len
	paramter, fixed bug with incorrect expected result string length.
	(test_replace): Updated cal to test_replace_range, fixed bug
	with agruments for the rw_match call. 
 	* 21.string.append.cpp: Replaced LSTR, LLEN, and LPAR in test 
	cases with strings containing the '<char>@<count>' directive(s).
	Corrected errors in expected results involving said strings 
	revealed by the use of the more flexible/reliable directives.
	* 21.string.assing.cpp: Same
	* 21.string.compare.cpp: Same
	* 21.string.copy.cpp: Same
	* 21.string.erase.cpp: Same
	* 21.string.find.cpp: Same
	* 21.string.find.first.not.of.cpp: Same
	* 21.string.find.first.of.cpp: Same
	* 21.string.find.last.not.of.cpp: Same
	* 21.string.find.last.of.cpp: Same
	* 21.string.insert.cpp: Same
	* 21.string.op.plus.equal.cpp: Same
	* 21.string.rfind.cpp: Same
	* 21.string.substr.cpp: Same

2006-05-15  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* char.cpp (rw_match): Fixed the bug with the expanded string length.
	* 21.strings.cpp (_rw_setvars): Added support for access, copy and 
	cons overloads.
	(run_test): Added support for new signature

2006-05-15  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.strings.h (MemberId): Added new elements for access, copy, cons
	(OverloadId): Added new enum elements for access, copy and cons 
	overloads.
	(SignatureId): Added new signature for at (size_type) const

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

	* rw_allocator.h: New header with the definition of a user-defined
	allocator class template.
	* allocator.cpp: New source containing definitions of helper classes
	and functions used by the user-defined allocator template.

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

	STDCXX-179
	* vector.cc (_C_insert_range): Corrected logic error in the computation
	of the end of the range of elements to be overwritten (assigned over).

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

	* deque (_RWSTD_COMPLEX_DEFAULT): Eliminated and unconditionally
	used default template arguments.
	* list: Same.
	* map: Same.
	* queue: Same.
	* set: Same.
	* stack: Same.
	* vector: Same.
	* _strref.h: Same.
	* fstream (_RWSTD_COMPLEX_DEFAULT): Same.
	(filebuf, fstream, ...): Made use of default template arguments
	in typedef defintions and in explicit instantiation directives.
	* iosfwd: Same.
	* sstream: Same.
	* istream: Same.
	* streambuf: Same.
	* _basic_ios.h: Same.
	* _ioinsert.h: Same.
	* _ioiter.h: Same.
	* _iterator.h: Same.
	* _money_get.h: Same. Replaced the _RWSTD_V3_LOCALE macro with std.
	* _money_put.h: Same.
	* _num_get.h: Same.
	* _num_put.h: Same.
	* _time_get.h: Same.
	* _time_put.h: Same.
	* _defs.h (_RWSTD_SIMPLE_DEFAULT, _RWSTD_COMPLEX_DEFAULT): Removed.

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

	* _iterbase.h (iterator): Removed uses of the _RWSTD_SIMPLE_DEFAULT
	macro (no longer detected).
	* _streamiter.h (istream_iterator, ostream_iterator): Same.

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-05-12  Martin Sebor  <sebor@roguewave.com>

	* 21.string.substr.cpp (test_substr): Inverted the expression
	in an unconditional assertion to make it actually fire when it
	gets hit and to silence icc warnings #279: controlling expression
	is constant.

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

        * char.cpp (UChar): New convenience typedef.
        (_rw_expand, _rw_fmtstringv): Cast char to unsigned char before
        passing it to isdigit() in order to prevent undefined behavior
        caused by sign extension.

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

	* char.cpp (test_rw_expand): Plugged benign memory leaks.

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

	* replace.cpp: Replaced LSTR, LLEN, and LPAR in test cases with
	strings containing the '<char>@<count>' directive(s). Corrected
	errors in expected results involving said strings revealed by
	the use of the more flexible/reliable directives. Added more
	test cases exercising self-referential modification.
	(test_replace_range): Added arguments, simplified, documented.
	(test_replace): Used the new rw_expand() instead of rw_widen(),
	added (and disabled for now) checking for memory leaks.

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

	* 21.strings.cpp (_rw_this_file): New.
	(_rw_setvars): Used rw_expand() to expand string arguments containing
	<char>@<count> directives.
	(_rw_test_case): New.
	(_rw_run_test): Factored the body of the innermost loop into
	_rw_test_case() for better readability and called it.

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

	* char.cpp (_rw_expand): New "generic" implementation of all three
	rw_expand() overloads. Corrected the handling of empty strings to
	produce a NUL-terminated string of 0 size.
	(rw_expand): Implemented in terms of the generic _rw_expand().
	(rw_match): Used rw_expand() when the first string contains '@'.
	* 0.char.cpp (test_rw_expand): Simplified, verified the correcntess
	of the result size, and added more test cases.

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

	* new.cpp (operator_new, operator_delete): Used rw_note() instead
	of rw_error() for tracing. Used the %#p rective to format pointers.

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

	* rw_char.h (rw_expand): Declared a set of new utility overloads.
	* src/char.cpp (rw_expand): Defined the above.
	* test/char.cpp (test_rw_expand): (Partially) exercised the above.

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

	* 21.string.compare.cpp (test_compare): Used StringState and simplified
	the detection and reporting of exception safety violations. Made naming
	and formatting changes.

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

	* 21.strings.cpp (_rw_setvars): Simplified formatting code
	and the resulting formatted string.
	Corrected the formatting of characters by using the %{#c}
	extended directive.
	Documented formatting convention.

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

	* 21.strings.cpp (_rw_setvars): Used memset() instead of a loop
	to set string elements.

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

	* printf.cpp (_rw_vfprintf): Called OutputDebugString() to send
	the string into the debugger window only when file is non-zero.

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

	* driver.cpp (rw_vtest): Set _rw_ftestout to rw_stdout here
	instead of relying on static initialization. Checked for 0
	before closing.

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

	* rw_char.h (UserTraits::n_calls_): Specified array extent in the
	declaration of the array member inside the class instead of its
	definition outside to work around a Sun C++ bug (see STDCXX-177).

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

	* 21.strings.h (MemberId): Added new elements for access, copy.
	(OverloadId): Added new enum elements for access and copy overloads.
	* 21.strings.cpp (_rw_setvars): Added support for access and copy
	overloads.
	* 21.string.copy.cpp: Converted to simplified format.
	(MemFun, run_test): removed as obsolete.
	(test_copy): Updated to use test driver features.

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

	STDCXX-4
	* 21.string.substr.cpp: New test exercising lib.string.substr.

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

	* 21.strings.cpp (_rw_setvars): Added support for substr
	overloads.

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

	* 21.strings.h (MemberId): Added new element for substr.
	(OverloadId): Added new enum elements for substr overloads.

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

	* 21.string.append.cpp (test_append): Simplified the handling
	of the _RWSTD_NO_REPLACEABLE_NEW_DELETE config macro.
	* 21.string.assign.cpp (test_assign): Same.
	* 21.string.insert.cpp (test_insert): Same.
	* 21.string.plus_equal.cpp (test_op_plus_eq): Same.
	* 21.string.replace.cpp (test_replace): Same.

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

	* rw_new.h (operator new, operator delete): Guarded definitions
	of the replacement operators with _RWSTD_NO_REPLACEABLE_NEW_DELETE
	in order to allow the header to be included unconditionally, w/o
	regard to the setting of the macro, and with no adverse effects
	even when the macro is defined.

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

	* 21.string.append.cpp (test_append): Corrected compilation errors
	when _RWSTD_NO_EXCEPTIONS is #defined and verified with
	gcc -fno-exceptions.
	* 21.string.assign.cpp (test_assign): Same.
	* 21.string.copy.cpp (test_assign): Same.
	* 21.string.insert.cpp (test_insert): Same.
	* 21.string.plus_equal.cpp (test_op_plus_eq): Same.
	* 21.string.replace.cpp (test_replace): Same.

i2006-05-04  Martin Sebor  <sebor@roguewave.com>

	* find.cpp (test_find): Used StringState to simplify the detection
	ond reporting of exception safety violations.
	Renamed the cs formal function argument to tcase to make the name
	more descriptive.
	Removed length_error handler.
	Verified the return value for invalid arguments.

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

	* testdefs.h (try, catch, RW_CATCH_ALL): Defined based on whether
	the config macro _RWSTD_NO_EXCEPTIONS is or isn't #defined.

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

	* _config-gcc.h (_RWSTD_NO_EXCEPTIONS): #defined in response to
	the __EXCEPTIONS macro not being #defined by the compiler, e.g.,
	when the -fno-exceptions command line option is used.

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

	* 21.strings.h (StringState, rw_get_string_stat): New.
	* 21.strings.cpp (StringState::assert_equal): Defined.
	* 21.string.append.cpp (test_append): Used StringState to simplify
	the detection ond reporting of exception safety violations.
	* 21.string.assign.cpp (test_assign): Same.
	* 21.string.insert.cpp (test_insert): Same.
	* 21.string.plus_equal (test_op_plus_eq): Same.
	* 21.string.replace (test_replace): Same.

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

	* 21.string.find.cpp: Removed tests for length_error, added new
	test cases.

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

	STDCXX-176
	* string.cc (find): Optimized for a 50% speedup.

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

	* string.cc (replace): Renamed function arguments for clarity.

2006-05-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* rw_char.h (rw_get_call_counters): Removed _TEST_EXPORT as
	not needed.

2006-05-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.compare.cpp: New test exercising lib.string.comapre.

2006-05-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.strings.cpp (_rw_setvars): Added support for compare
	overloads.

2006-05-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.strings.h (MemberId): Added new element for compare.
	(OverloadId): Added new enum elements for compare overloads.

2006-05-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.append.cpp (get_calls): Moved to rw_char.h
	* 21.string.assign.cpp (test_assign): Added verification
	that Traits::length() is used.
	* 21.string.insert.cpp: Same
	* 21.string.op.plus.equal.cpp: Same
	* 21.string.replace.cpp: Same

2006-05-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* rw_char.h (rw_get_call_counters): New functions to retrieve 
	the pointer to n_calls array if it is defined for traits type.

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

	* 21.strings.cpp (_rw_opt_no_self_ref): New option handler.
	(_rw_run_test, run_test): Used _rw_opt_no_self_ref to disable
	tests of self-referential modifying member functions.

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.find.cpp (NPOS): New constant added
	for convenience.
	(ptr_test_cases, str_test_cases): Updated according 
	to changes in TestCase structure.
	(test_find): res_len renamed to nres according to
	changes in the TestCase structure.
	* 21.string.rfind.cpp: Same
	* 21.string.find.first.of.cpp: Same
	* 21.string.find.last.of.cpp: Same
	* 21.string.find.first.not.of.cpp: Same
	* 21.string.find.last.not.of.cpp: Same

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.find.first.not.of.cpp: New test exercising 
	lib.string.find.first.not.of.

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.find.last.not.of.cpp: New test exercising 
	lib.string.find.last.not.of.

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.find.last.of.cpp: New test exercising 
	lib.string.find.last.of.

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.find.first.of.cpp: New test exercising 
	lib.string.find.first.of.

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.rfind.cpp: New test exercising lib.string.rfind.

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.find.cpp: New test exercising lib.string.find.

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	*  21.string.erase.cpp (MemFun, EraseTags): Removed as 
	obsolete.
	(void_test_cases, size_test_cases, etc): New arrays of the
	test cases to exercise erase overloads.
	(test_erase): Rewrote to use test cases arrays, exception 
	handling updated.
	(main): Updated to use new test driver features.
	*  21.string.append.cpp (ptr_test_cases, str_test_cases, etc): 
	signature descriptions updated.
	(get_calls): New function returning pointer to n_calls array,
	if it presents in the traits type.
	(test_append): Removed obsolete declarations, added the
	traits::length() use verification.
	*  21.string.assign.cpp (ptr_test_cases, str_test_cases, etc): 
	signature descriptions updated.
	(test_assign): Removed obsolete declarations.
	*  21.string.insert.cpp: Same
	*  21.string.op.plus.equal.cpp: Same
	*  21.string.replace.cpp: Same

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	*  21.strings.cpp (_rw_memfun_names): Added names for
	find, rfind, find_first_of, etc methods. 
	(_rw_setvars): Added missed signatures to the signatures array,
	added cases for erase method and find methods overloads.
	(run_test): Added options for new signatures. 

2006-05-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	*  21.strings.h (SignatureId): Added missed signatures. 
	(MemberId): Added elements for erase, find, rfind, etc,
	set start of elements to 1 << 6 because there are more than
	32 signatures.
	(OverloadId): Added elements for find, rfind, etc overloads.
	(TestCase): res_len member renamed ot nres to be used as
	the expected result value than an integer is expected.

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

	* 21.strings.cpp (_rw_opt_memfun_enabled): New array of option
	flags analogous to _rw_opt_memfun_disabled.
	(_rw_run_test): Used _rw_opt_memfun_enabled to disable options
	when at least one element is non-zero.
	(run_test): Used _rw_opt_memfun_enabled.

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

	* printf.cpp (_rw_quotechar, _rw_fmtarray): Avoid instantiating
	on wchar_t when the type is not a fundamental type (since it's
	most likely not distinct from one of the types the templates
	have already been instantiated on at this point).

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

	* rw_char.h (UserTraits): Added the MemFun struct and the n_calls_
	array to the definition of the primary template for compatibility
	with the UserTraits<UserChar> specialization.

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

	* 21.strings.h (TEST_DISPATCH): Handled all enumerations
	in conditionals.
	* 21.strings.cpp (_rw_run_test): Corrected the use of indices
	in nested loops.
	Added file and line information to rw_note() invocations for
	context.
	Set _rw_no_exceptions and _rw_no_exception_safety in response
	to the _RWSTD_NO_EXCEPTIONS macro being #defined.
	Set _rw_opt_no_char_types [1] in response to _RWSTD_NO_WCHAR_T
	being #defined.

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

	* 21.strings.h (run_test): Added function arguments.
	(opt_memfun_disabled, opt_no_user_char, opt_no_char_traits,
	opt_no_user_traits, opt_no_exceptions, opt_no_exception_safety,
	setvars): Removed.
	* 21.strings.cpp (_rw_char_names, _rw_traits_names, _rw_alloc_names,
	_rw_memfun_names): Moved from run_test to file scope to make them
	accessible from other functions.
	(_rw_ilog2): New helper to compute an integral base-2 logarithm.
	(_rw_setvars): Renamed from setvars and gave it internal linkage.
	(_rw_run_test): New helper. Handled command line options common
	to all tests.
	(run_test): Invoked _rw_run_test via a call to rw_test after
	setting and processing command line options common to all tests.
	* 21.string.append.cpp (run_test): Moved body into main and removed.
	(main): Called StringMembers::run_test.
	* 21.string.assign.cpp: Same.
	* 21.string.op.plus.equal.cpp: Same.
	* 21.string.replace.cpp: Same.
	* 21.string.insert.cpp: Same.

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

	* 21.strings.h (long_string, long_string_len): New static members.
	* 21.strings.cpp (char_names, traits_names, alloc_names): Moved
	from file scope to run_test.
	(run_test): Initialized long_string.
	* 21.string.append.cpp (run_test): Removed initialization
	of long_string,	used the static member declared in 21.strings.h.
	(AppendOverload): Replaced/renamed macro with OverloadId typedef.
	* 21.string.assign.cpp: Same.
	* 21.string.insert.cpp: Same.
	* 21.string.plus_equal.cpp: Same.
	* 21.string.replace.cpp: Same.

2006-04-25 Anton Pevtsov <antonp@moscow.vdiweb.com>

	* 21.strings.h (SignatureId): Added missed signature sig_val.
	(MemberId): Added new element mem_op_plus_eq.
	(OverloadId): Added new elements for += overloads.
	* 21.strings.cpp (setvars): Updated to support operator+=
	overloads, minor formatting bugs fixed.

2006-04-25  Anton Pevtsov <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.plus_equal.cpp: Enhanced and ported to new test driver.

2006-04-25 Anton Pevtsov <antonp@moscow.vdiweb.com>

	* 21.string.append.cpp (range_test_cases): Bug in test case
	description fixed.
	(test_append_range): Typo bug fixed.
	* 21.string.assign.cpp (exceptions): Added elements and renamed
	from exp_exceptions for clarity.
	(test_exceptions): Merged the body of the function into the
	test_assign function and removed the declaration of the former.
	(test_assign): Exercised both the function exception safety and
	the behavior of the function under normal conditions.
	* 21.string.insert.cpp: Same.
	* 21.string.replace.cpp (exceptions): Added elements and renamed
	from exp_exceptions for clarity.
	(size_size_ptr_test_cases, size_size_str_test_cases, etc): Merged
	with equal iterator version arrays.
	(test_exceptions): Merged the body of the function into the
	test_assign function and removed the declaration of the former.
	(test_replace): Exercised both the function exception safety and
	the behavior of the function under normal conditions.

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

	* 21.string.append.cpp (exceptions): Added elements and renamed
	from exp_exceptions for clarity.
	(test_exceptions): Merged the body of the function into the
	test_append function and removed the declaration of the former.
	(test_append_range): Constified locals wherever appropriate
	and introduced new helper variables to simplify expressions.
	(test_append): Exercised both the function exception safety
	and the behavior of the function under normal conditions.

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

	* 21.strings.h (DEFINE_TEST_DISPATCH): New helper macro
	to define the same boilerplate "test dispatch" function
	in each test.
	* 21.string.append.cpp (DEFINE_TEST_DISPATCH): Used and
	simplified.
	Renamed the cs function argument to tcase (for test case)
	for clarity.
	(<memory>): Removed the inclusion of an unneeded header.
	* 21.string.assign.cpp: Same.
	* 21.string.insert.cpp: Same.
	* 21.string.replace.cpp: Same.

2006-04-24  Anton Pevtsov <antonp@moscow.vdiweb.com>

	* 21.strings.cpp (setvars): Added formatting of calls to overloads
	of insert.

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

	* 21.strings.cpp (setvars): Corrected an off-by-one error indexing
	into an array of signatures.

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

	* 21.strings.h (UnknownChar, UnknownTraits, UnknownAllocator): Added.
	(sig_void): Defined to 1 instead of 0 to distinguish an "unknown"
	value from a known one.
	(MemberId): New member indentifying a set of overloads of a given
	member function of basic_string.
	(SignatureId): Renamed from MemberFunction and defined partly in
	terms of MemberId constants.
	(Function): New struct uniquely identifying a specific overload of
	a given member function of a particular specialization of basic_string.
	(setvars): Renamed from format, changed signature and semantics and
	made private.
	(run_test): New function to run all test cases defined by a test.
	* 21.strings.cpp (setvars): Defined the environment variables CLASS,
	FUNC, FUNCSIG, and FUNCALL to the name of the specialization of the
	class template, the name of the member function, and the name of the
	overload of the member function, respectively, and optionally, the
	call to the member function with argument expanded.
	(run_test): Runs all test cases specified by each test.
	* 21.string.append.cpp: Simplified by using the above.
	(MemFun): Defined to StringMembers::Function.
	(tests): Made static local and removed function signatures obviated
	by the above changes.
	* 21.string.assign.cpp: Same.
	* 21.string.replace.cpp: Same.

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

	* 21.strings.h (append_last, assign_last, insert_last, replace_last):
	Made constants one greater than the last valid index for each member
	function.
	(append_overloads, assign_overloads, insert_overloads,
	replace_overloads, member_functions): Removed from the definition
	of the MemberFunction enumeration and moved them into an enum of
	their own.
	(append, assign, insert, replace): Removed.
	* 21.strings.cpp (format): Adjusted for the above, simplified the
	formatting of basic_string template arguments by leaving out the
	name of the default allocator for brevity. Implemented the formatting
	for replace.

2006-04-21  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>
	
	* 21.string.replace.cpp (<21.strings.h>, StringMembers): Included
	header and used class to simplify.
	(ReplaceTags, TestCase, rw_opt_no_replace_*): Removed, replaced with
	StringMembers equivalents.
	(test_exceptions, test_replace_range, test_replace): Made locals const
	wherever appropriate.

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

	* 21.strings.h (TestCase): Added new members.
	(Test): Removed the member which (moved to TestCase).
	(format): Removed last argument.
	(opt_no_user_char, opt_no_char_traits, opt_no_user_traits,
	opt_no_exceptions, opt_no_exception_safety): New static members.
	* 21.strings.cpp: Same as above as necessary.
	* 21.string.append.cpp: Reflected the above.
	* 21.string.assign.cpp: Ditto.

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

	* 21.string.append.cpp (test_append): Replaced get_append_format()
	with a direct call to StringMembers::format.
	* 21.string.assign.cpp (test_assign): Same for get_assign_format().

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

	STDCXX-174
	* bitset (_C_from_ulong, flip, set, operator<<=): Used ULONG_MAX
	instead of SIZE_MAX in bitwise operations involving unsigned long.

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-04-20  Martin Sebor  <sebor@roguewave.com>

	* 21.strings.cpp (_RWSTD_TEST_SRC): Defined.

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

	* 21.strings.assign.cpp (<21.strings.h>, StringMembers): Included
	header and used class to simplify.
	(AssignOverload, TestCase, FunctionTag, rw_opt_no_assign): Removed,
	replaced with StringMembers equivalents.
	(*_test_cases): Renamed from assign_*_test_cases for simplicity,
	reverting a previous rename in the opposite direction.
	* 21.strings.append.cpp: Same.

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

	* 21_strings.h: New header containing definitions of helpers
	used in clause 21 tests.
	* 21_strings.cpp: New implementation file of the same.

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

	* 21.string.assign.cpp (AssignOverload): Renamed from AssignTags.
	(TestCase): Renamed members to correspond to AssignOverload enums
	and to better indicate the purpose of each.
	(rw_opt_no_assign_*): Collapsed individual varaibles into an array
	indexed with AssignOverload enums.
	(*_test_cases): Renamed to assign_*_test_cases for consistency and
	to make it easy to refer to each array using just AssignOverload
	enums.
	(FunctionTag): Removed p_opt member (obviated by the addition
	of the rw_opt_no_assign array) and renamed other members for
	consistency with local variables used to refer to the same things
	elsewhere in the test.
	(TEST): Simplified the definition of the macro by relying on the
	changes above.
	(test_assign_exceptions, test_assign_range, test_assign): Introduced
	local helper variables, consitified others, and simplified.
	(get_assign_format): Removed first two arguments and changed to
	return pointer to the formatted string.
	(test_assign): Qualified a call to free() with std:: and simplified.
	(test_assign): Naming changes.
	(main): Used rw_opt_no_assign array.

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

	* fmt_defs.h (<testdefs.h>): Included.
	(i64_t): Defined to int when _RWSTD_INT32_T is not #defined.

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

	STDCXX-4
	* 20.auto.ptr.cpp: New test exercising lib.auto.ptr.

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

	* testdefs.h (_PTR_THROWS): New helper macro.

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

	STDCXX-172
	* _smartptr.h (__rw_nonvoid_ref): Moved from here...
	* _autoptr.h: ...to here and used to declare operator*().
	(operator->): Avoided using _RWSTD_OPERATOR_ARROW and instead spelled
	out the definition of the operator without relying on operator*() to
	avoid instantiating its (ill-formed) declaration when element_type is
	void.

2006-04-14  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.assign.cpp: New test exercising lib.string.assign.

2006-04-12  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.append.cpp: New test exercising lib.string.append.

2006-04-10  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.replace.cpp (ReplaceTags): Enum members renamed
	according to naming convention.
	(TestCase): num2, it_res, it_res_len fileds removed as obsolete,
	cnt field rename to count.
	(test_cases): array split to off_size_test_cases, 
	off_size_str_test_cases, etc to exercise each replace 
	overload separately.
	(FunctionTag): New strcture containing information about test
	options and test cases for each replace overload.
	(function_tags): New array of function tags.
	(rw_opt_no_replace_off_size_ptr, rw_opt_no_replace_off_size_str, ...): 
	Command line options renamed according naming convention.
	(test_replace_exceptions): New function to exrcise exception safety.
	(test_replace_range): New functions to exercise 
	replace range version.
	(test_replace): Modified to exercise replace versions independently,
	included exception safety tests, added exc_safety_test parameter 
	to indicate the test case type.
	(get_replace_format): New function to prepare test output 
	formatted string.
	(run_test): Modified to iterate through function_tags array.
	(main): Changed to operate with renamed command line options.

2006-04-10  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.insert.cpp (get_insert_format): Added missed 
	function name "insert".

2006-04-07  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.insert.cpp (rw_opt_no_exception_safety): New option to
	disable the exception safety tests.
	(off_test_cases, off_str_test_cases, ...): New test cases were 
	added include cases for exception safety tests.
	(test_insert_exceptions): New function to exrcise exception safety.
	(test_insert): Modified to include exception safety tests, added
	exc_safety_test parameter to indicate the test case type.
	(main): added support for new option  no-exception-safety.

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

	STDCXX-168
	* generate.wsf (readAndCheckArguments): Conversion to absolute
	path added.
	(createBuildDirs): Added mechanism to create all BUILDDIR
	subfolders.

2006-04-04  Martin Sebor  <sebor@qvdx018242>

	* fmt_bits.cpp (<ctype.h>): Added a missing #include directive.

2006-04-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.insert.cpp: New test exercising lib.string.insert.

2006-04-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 0.char.cpp (rw_widen): Exercised r391042
	(rw_narrow): The same.

2006-04-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* char.cpp (rw_widen): Added '\0' symbol to the end of string.

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

	* fmt_defs.h: New header.
	* printf.cpp (Buffer, FmtSpec): Moved definitions to fmt_defs.h.
	(_rw_fmterrno, _rw_fmtlc, _rw_fmtmask, _rw_fmtiostate, _rw_fmtflags,
	_rw_fmtopenmode, _rw_fmtseekdir, _rw_fmtevent, _rw_fmtmonpat,
	_rw_fmtsignal): Moved definitions to fmt_bits.cpp.
	(_rw_quotechar, _rw_fmtarray): Prepended underscore according
	to the naming convention.
	(_rw_fmtspec): Corrected the handling of $<expression> syntax.
	(_rw_fmtexpr): New function to format expressions involving
	environment variables.
	(_rw_vasnprintf_ext): Called _rw_fmtexpr(). Avoided aborting on
	malformed directives.
	* fmt_bits.cpp (_rw_fmterrno, _rw_fmtlc, ...): Moved definitions
	from printf.cpp.
	* test/printf.cpp (test_envvar): Exercised $<expressions>.
	(test_malformed_directives): Exercised malformed directives.
	(test_tm): Used a power of 2 (sizeof(int)) to create a bad
	(misaligned) address.

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

	* environ.cpp (rw_putenv): Removed the variable from the environment
	when it doesn't contain the equals sign.

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

	* cwchar (mbrlen, mbrtowc, ...): Used _RWSTD_MBSTATE_T instead
	of mbstate_t.
	* _mbstate.h (_RWSTD_NO_STD_MBSTATE_T): Undefined when not using
	HP aCC on HP-UX (i.e., for gcc).

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-28  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.copy.cpp: New test exercising lib.string.copy.

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

	* GNUmakefile.cfg (compile, link, compile_then_link, prelink, archive):
	New helper functions to invoke the compiler, linker, and archiver and
	log the results.
	(arch): Used the function(s) defined above and simplified. Exited with
	an error when unable to determine the system architecture.
	(sane, %.o: %.cpp, %: %.o, library rule): Used the function(s) defined
	above and simplified.

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

	STDCXX-159
	* _config-xlc.h: Disabled explicit instantiation for XLC++ 8.0 when
	extern template isn't correctly implemented to work around an XLC++
	8.0 optimizer bug.

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

	* merge.cpp: Used '\n' instead of endl.
	* merge.out: Added terminating newline.

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

	* char.cpp (_rw_fmtstringv): Used _RWSTD_VA_COPY() instead of direct
	assignment to va_list (which may have array type) .

2006-03-27  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.replace.cpp (test_replace): Strings format in
	rw_assert calls changed to generic strings, workaround 
	for UserChars strings output removed as obsolete.

2006-03-27  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.erase.cpp (EraseTags): New enum determining which
	erase version to test.
	(test_erase): Changed "which" parameter type to use new enum,
	changed strings output in rw_assert calls to use generic
	strings.
	(note_test_disabled): Changed "which" parameter type to
	EraseTags enum.
	(run_test): Updated to use new enum EraseTags instead of
	integer.

2006-03-27  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.capacity.cpp (MemFun): Add UChar member to charT
	enum.
	(test_resize): Updated to be able operate with UserChar's,
	strings output format in rw_assert calls changed to generic 
	strings.
	(test_capacity): The same.
	(rw_opt_no_user_chars): New cmd line option --no-user_chars.
	(run_test): UserChar's tests added.
	(main): New command line option added.

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>

	* printf.cpp (UChar, UShrt, UInt, ULong, ULLong): Introduced and
	used global convenience typedefs.
	(WEOF): Defined if not defined in libc headers.
	(rw_quotechar, rw_fmtarray): Explicitly instantiated for compilers
	such as Compaq C++ that do not do so implicitly.

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-25  Martin Sebor  <sebor@roguewave.com>

	STDCXX-167
	* vacpp.config (WIDE_ARFLAGS): Used -X64 only on AIX (and not,
	for example, on Linux).

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

	STDCXX-140
	* LOCALE_NAME_FMAT.cpp (lc_vars): Added LC_ALL.
	(print_lc_constants): Avoided the assumption that the name of each
	constant contains the equals sign.
	(print_categories): Iterated through all lc_vars but the element
	that refers to LC_ALL.

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

        STDCXX-140
	* LOCALE_NAME_FMAT.cpp (setlocale): Added a definition for debugging
	(to emulate platforms with no locales installed) and disabled it.
	(test_locale_names, nlocales): Renamed from loc and and nloc, and
	made const.
	(print_lc_constants, print_categories, print_locale_name_format):
	New helper functions for better readability.
	(cat_seps): Renamed from cats and moved from main() to file scope.
	(lc_consts): Merged with lc_vars.
	(lc_vars): Moved to file scope.
	(print_locale_name_format): Hardcoded locale format for a bunch
	of platforms in case there are no locales installed on the system.
	(test_locale_names): Added more locales.

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-22  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.replace.cpp (LPAR): Macro definition changed
	(long_parity_len): Removed as obsolete.
	(ReplaceTags): New enum containing the descriptive "which"
	arguments.
	(test_cases): Strings alignment changed.
	(test_replace): Changed to use ReplaceTags members, type of
	"which" variable changed to ReplaceTags.
	(note_test_disabled): The same.
	(run_test): The same.

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

	* char.cpp (test_rw_match): Cast character string macro argument
	to the correct type.

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

	* rw_char.h (UserCharFmatInit, _rw_user_char_fmat_init): Initializer
	type and object to install a "user-defined" formatting callback for
	arrays of generic characters including UserChar.
	* src/char.cpp (_rw_fmtstring, _rw_fmtstringv): "User-defined"
	formatting callback for arrays of generic characters including
	UserChar.
	* test/0.char.cpp (test_formatting): Exercised the above.

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

	* 21.string.capacity.cpp (LSTR, LLEN): New macros for convenience.
	(test_resize): Changed type of cparam argument to int and simplified.
	(test_capacity): Avoided returning the result of a call to a fuction
	returning void to prevent an HP aCC 3.63 error. Eliminated pstr local
	variable and used the same string object instead.
	(test_resize): Added test cases.

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

	* rw_char.h (rw_match): Declared and documented new helpers.
	* src/char.cpp (rw_match): Implemented new helpers.
	* test/char.cpp (test_rw_match): Exercised new helpers.

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

	* 21.string.replace.cpp (LSTR, LLEN, LPAR): New convenience macros.
	(TestCase::str, src, res, it_res): Added const-qualification to avoid
	gcc warnings.
	(test_replace): Added const-qualification wherever appropriate.

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

	* rw_char.h (rw_narrow): Declared new testsuite helper(s).
	* char.cpp (rw_narrow): Implemented new testsuite helper(s).
	* 0.char.cpp (test_narrow): Exercised new testsuite helper(s).

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

	* 0.char.cpp (test_widen): Exercised r387377.

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

	* char.cpp (rw_widen): Zeroed out the destination array when the
	source pointer is null and length is less than SIZE_MAX (i.e.,
	implemented the equivalent of memset(dst, 0, len * sizeof *dst)).
	* rw_char.h (rw_widen): Updated comments to reflect the above.

2006-03-20  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.replace.cpp (ReplaceData): Removed as obsolete
	(TestCase): New structure to store a test case
	(test_cases): Static array of the test cases
	(test_replace): Functions updated to use TestCase and test_cases[] 
	instead of ReplaceData.

2006-03-20  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.capacity.cpp (run_test): Fixed bug in options processing
	(main): Fixed bug with missed '#' sign in options.

2006-03-20  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.erase.cpp (main): Fixed bug with missed '#' sign.

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

	STDCXX-4
	* 27.istream.unformatted.get.cpp: New test exercising the overloads
	of the get() member functions specified in lib.istream.unformatted.

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

	STDCXX-3
	* rw_streambuf.h: New header. Defines a test streambuf class template.

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

	* printf.cpp (bad_address, format_bad_address): Helpers to generate
	and format an invalid or misaligned address.
	(test_string, test_chararray, test_basic_string, test_tm): Used
	bad_address and format_bad_address to exercise the detection and
	formatting of invalid and misaligned addresses.
	(test_ios_bitmasks): Verified that the directive doesn't insert NULs.

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

	* printf.cpp (_rw_fmtbadaddr): Added a size argument to distinguish
	an invalid address from a misaligned one.
	(_rw_vasnprintf_c99, rw_vasnprintf, _rw_fmtpointer, _rw_fmtarray,
	_rw_vfprintf): Explicitly cast integer values to the target type
	to silence HP aCC's truncation and or sign-extension warnings.
	(_rw_fmttm, rw_fmtarray, _rw_fmtwstr, _rw_vasnprintf_ext): Detected
	and properly formatted both invalid and mislaigned addresses.
	(rw_bmpfmt): Avoided NUL-terminating buffer.

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

	* 22.locale.num.get.cpp (<cstddef>): Removed an unnecessary #include
	directive.
	(PunctData): New base class of the Punct<charT> template to reduce
	code bloat.
	(Punct): Derived from PunctData and simplified.
	(Streambuf): New class template.
	(Ios, NumGet): Added a template parameter.
	(do_test): Exercised std::num_get specializations on istreambuf_iterator
	and user-defined InputIterator type in addition to character pointer.
	(do_test): New helper to dispatch to the appropriate specialization of
	the main do_test function.
	(test_errno, test_bool, test_shrt, ...): Removed the charT template
	parameter to reduce code bloat.
	(test_llong, test_ullong): Guarded with _RWSTD_NO_LONG_LONG.
	(run_tests): New dispatch function on iterator type.

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

	* 22.locale.num.get.cpp [_MSC_VER] (ULL): Corrected typo in macro name.
	(test_llong) Moved sign out of the macro argument to prevent undefined
	behavior due to the concatenation of more than two tokens during
	preprocessing.

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

	* 22.time.put.cpp: Renamed...
	* 22.locale.time.put.cpp: ...to this for consistency.

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

	* 22.time.put.cpp (<rw_locale.h>): Included instead of <localedef.h>.

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-18  Martin Sebor  <sebor@roguewave.com>

	* localedef.h: Renamed...
	* rw_locale.h: ...to this to prevent clashing with the HP-UX
	system header with the same name.
	* localedef.cpp: Renamed...
	* locale.cpp: ...to this to (pretty closely) match header name.

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

	STDCXX-164
	* FLOAT.cpp (strtold): 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-18  Martin Sebor  <sebor@roguewave.com>

	STDCXX-166
	* GNUmakefile (SHARED_SUFFIX, STATIC_SUFFIX): Defined variables
	only if they are not already defined (in the .config file).

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

	* gcc.config (LDSOFLAGS): Removed -lsupc++ from the defintion
	of the variable (libraries go in the LDIBS variable and only
	position independent options in LDSOFLAGS and similar).

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

	* GNUmakefile.lib: Generalized the handling of shared archives
	so as not to depend on the name of the compiler (which, while
	unique to VisualAge/XLC++, is specific to AIX); Used BUILDMODE
	instead.
	Moved LDFLAGS before OBJS on the link line since the former
	should not contain any libraries (that's what LDLIBS is for).

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

	* vacpp.config: Used xlc with a whole bunch of obscure libraries
	on the link line instead of xlC on Linux in order to prevent the
	compiler driver from linking with gcc's libstdc++.

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

	* _tree.h (_C_make_iter): Removed an unnecessary const qualification.

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-17  Martin Sebor  <sebor@roguewave.com>

	* 25.equal.range.cpp (Y ctor): Changed argument to char.
	(test_equal_range): Removed a cast to prevent gcc 3.2 from
	confusing an object definition with that of a function.

2006-03-17  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.replace.cpp: Svn properties were set.

2006-03-17  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 21.string.replace.cpp: New test exercising lib.string.replace.

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

	* 25.adjacent.find.cpp (test_adjacent_find): Corrected paramno values
	to account for the change in the handling of conditionals in r371638.

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

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

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

	* driver.cpp (RLIM_SAVED_CUR, RLIM_SAVED_MAX): Defined to RLIM_INFINITY
	when not #defined.
	(rw_vtest): Explicitly cast an int to long to silence HP aCC's integer
	widening warning 887.

2006-03-15  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 21.string.erase.cpp (rw_opt_no_exceptions, rw_opt_no_erase, 
	rw_opt_no_erase_pos, rw_opt_no_erase_count,
	rw_opt_no_erase_iterator, 
	rw_opt_no_erase_range): New command line options.
	(test_erase): Added check for the --no-exceptions option.
	(note_test_disabled): New function to display the disable note.
	(run_test): Changed to support new command line options.
	(main): Added new command line options.

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

	* driver.cpp (<ctype.h>): Included for islower() and isupper().
	(<sys/resource.h>): Conditionally included for setrlimit().
	(_rw_check_init): Enhanced diagnostics.
	(_rw_setopt_output_file): Correctly handled spaces between the short
	option and its argument (i.e., allowd -o <filename> in addition to
	-o<filename>).
	(_rw_setopt_ulimit): New function to set one or more resource (soft
	and/or hard) limits.
	(_rw_setopt_compat_error, _rw_setopt_compat_warn): New helpers to
	print out diagnostics for compatibility-mode options used when not
	in that mode.
	(_rw_setopt_compat_append): -A compatibility option handler.
	(_rw_setopt_compat_compiler): -C compatibility option handler.
	(_rw_setopt_compat_dir): -D compatibility option handler.
	(rw_setopt_compat_debug_file): -G compatibility option handler.
	(_rw_setopt_compat_alarm): -L compatibility option handler.
	(_rw_setopt_compat_machine): -M compatibility option handler.
	(_rw_setopt_compat_output_file): -O compatibility option handler.
	(_rw_setopts_compat): New function to install compatibility option
	handlers.
	(rw_vtest): Installed --ulimit handler and called _rw_setopts_compat.

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

	* 25.find.cpp (test_find): Avoided binding a reference to an unnamed
	temporary to prevent a code generation issue with Intel C++ 9.0.
	Simplified by removing unnecessary template argument(s).

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

	STDCXX-4
	* 21.string.erase.cpp: New test exercising lib.string.erase.

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

	* rw_char.h (rw_widen): Documented behavior.

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

	* char.cpp (copy, move, rw_widen): Corrected logic errors.

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

	* 0.char.cpp: New test exercising the UserTraits class template
	and the rw_widen() set of overloaded helper functions.

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

	* 21.string.capacity.cpp (test_capacity): Changed Traits argument from
	by-value to a pointer to avoid making assumptions about Traits object
	being constructible.

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

	* rw_char.h (UserTraits<UserChar>): Declared ctor, dtor and assignment
	private to detect unwarranted assumptions.
	(MemFun, n_calls_): New member class and array of counters to keep
	track of member function calls.
	(assign, eq, lt, not_eof, to_char_type, to_int_type, eq_int_type,
	eof): Outlined UserTraits members.
	* char.cpp (assign, eq, lt, not_eof, to_char_type, to_int_type,
	eq_int_type, eof): Defined out of line.
	(copy, move): Corrected logic errors.

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-09  Martin Sebor  <sebor@roguewave.com>

	* README: Corrected the location of the etc/nls/ subdirectory.

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

	* rw_char.h (UserTraits<UserChar>): Moved _TEST_EXPORT where MSVC
	wants to see it.
	* char.cpp (assign): Added a missing definition.

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

	* STD_BAD_TYPEID.cpp (type_info): Defined class when the header
	<typeinfo> (or <typeinfo.h> is not available to avoid false
	negatives (such as with Intel C++ on Linux).

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

	* _defs.h (_RWSTD_NO_IMPLICIT_INSTANTIATION): Handled in a conditional.
	Added comments.

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

	* fstream (_C_pbacksize): Changed type from streamsize to size_t
	since negative values don't make sense and aren't permitted.
	* streambuf (_C_write_avail, _C_putback_avail): Returned size_t
	instead of streamsize since the returned value is guaranteed to
	be non-negative.

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

	* 21.string.capacity.cpp  (CharTraits, widen): Replaced with UserTraits
	and rw_widen() from <rw_char.h>.
	(test_resize): Renamed locals.
	(test_string_capacity): Renamed...
	(test_capacity): ...to this.
	(rw_opt_no_exceptions): New option to disable exceptions.
	(test_resize): Handled rw_opt_no_exceptions.
	(main): Same.

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

	* rw_char.h (compare, length, find, copy, move, assign): Outlined
	UserTraits<UserChar> members.
	(rw_widen): New functions for the wideining of narrow characters
	to the three character types used in the test suite (char, wchar_t,
	and UserChar).
	* char.cpp (compare, length, find, copy, move, assign, rw_widen):
	Defined.

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

	* 21.string.capacity.cpp (test_resize): Printed the (narrow)
	string before modifying it (as opposed to after) in diagnostics.

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

	* printf.cpp (_rw_vasnprintf_ext): Handled width in %{s} and %{ls}.
	* snprintfa.cpp (test_string): Exercised the above.

2006-03-07  Anton Pevstov  <antonp@moscow.vdiweb.com>

	* 21.string.capacity.cpp: Handled embedded NUL characters correctly.
	Added test cases and comments.

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

	* b_search.cpp: Uncomplicated tricky expression to deconfuse
	the XLC++ 8.0 optimizitor. Introduced convenience typedefs
	for better readability. Renamed...
	* binary_search.cpp: ...to this.
	* b_search.out: Renamed...
	* binary_search.out: ...to this.

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

	* FUNC.cpp (__func__): Moved to function scope to avoid
	an XLC++ 8.0 ICE (PMR 02238).

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

	* ATOMIC_OPS.cpp: Added/changed comments.

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-04  Martin Sebor  <sebor@roguewave.com>

	* istream.cc (_C_ipfx, _C_unsafe_get, _C_get, read, getline,
	operator>>): Used direct initialization instead of copy
	initialization for int_type objects.
	(read): Eliminated an assumption about the return type of
	int_type's assignment operator.

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

	STDCXX-3
	* rw_char.h: New header with definitions of a user-defined character
	type, a user-defined traits type, and a user-defined int_type.

2006-03-04  Anton Pevstov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	* 21_capacity.cpp: New test exercising lib.vector.capacity.

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

	STDCXX-4
	* 23.vector.modifiers.cpp: New test exercising lib.vector.modifiers.

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

	STDCXX-4
	* 23.vector.capacity.cpp: New test exercising lib.vector.capacity.

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

	STDCXX-161
	* fstream.cc (sync): Called __rw_fflush() in stdio mode.

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

	* fstream.cc (sync): Fixed typos inadvertently s introduced
	in a previous change. Changed the type of a local to avoid
	signed/unsigned comparison warnings.

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

	* fstream (__GNUC__MINOR__): Corrected spelling.

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

	STDCXX-160
	* fstream.cc: Avoided using operator+ on pos_type (which need
	not be defined) and used the required operator+= instead.

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

	* wcodecvt.cpp (wcrtomb): Corrected declaration.

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

	* libc_decl.sh: Used < instead of == when comparing HP aCC version
	to determine whether it's an IPF (i.e., 5 and 6) or PA (i.e., 3 or
	1) compiler.
	Corrected a typo in shell quoting.

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

	* _config.h: Moved each compiler-specific section to its own header.
	* _config-acc.h: HP aC++ configuration definitions and overrides.
	* _config-deccxx.h: Same for DEC/Compaq/HP C++.
	* _config-eccp.h: Same for the EDG eccp demo.
	* _config-gcc.h: Same for GCC.
	* _config-icc.h: Same for Intel C++.
	* _config-mipspro.h: Same for SGI MIPSpro.
	* _config-msvc.h: Same for MSVC.
	* _config-sunpro.h: Same for Sun C++ aka SunPro.
	* _config-xlc.h: Same for IBM XLC++ aka VisualAge C++.

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

	STDCXX-4
	* 21.string.access.cpp: New test exercising lib.string.access.

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

	* README: Documented the _RWSTD_NO_COLLAPSE_STATIC_LOCALS,
	_RWSTD_NO_COLLAPSE_TEMPLATE_LOCALS, and
	_RWSTD_NO_COLLAPSE_TEMPLATE_STATICS configuration macros.
	Renamed SunPro to Sun C++.

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

	* 0.printf.cpp (test_bufsize): Exercised %{N}, the fixed-width
	buffer extension (implemented in r381880).
	(_RWSTD_NO_SPRINTFA_FUNNAME): Corrected spelling.

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

	* printf.cpp (Buffer): New class for dynamic buffer management, to
	replace the char**, size_t arguments and allow to specify the max
	buffer size (to avoid reallocation of statically allocated buffers
	in the spirit of snprintf).
	(_rw_bufcat): Prevented exceeding the maximum size of the buffer.
	(rw_vasnprintf, rw_fmtarray, _rw_fmtstr, _rw_fmtwstr, _rw_fmtflags):
	Removed gratuitous insertion of the terminating NUL.
	(_rw_vasnprintf_ext): Advanced the end offset after calling a user
	defined formatting function.

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

	* 27.stringbuf.virtuals.cpp: Enhanced to exercise xsputn, including
	STDCXX-142.

2006-02-27  Martin Sebor  <sebor@roguewave.com>

	* 25.unique.cpp (run_test): Used BinaryPredicate::op_equals.
	(test_unique): Removed case sensitive tests.
	(test_unique): Used X::mismatch() instead of comparing the resulting
	sequence manually one element at a time, and used %{X=*.@} instead
	of %{X=*.*} for simplicity.

2006-02-27  Martin Sebor  <sebor@roguewave.com>

	* alg_test.h (mismatch): New helper function.
	(BinaryPredicate): Modified ctor to take an argument describing
	the operation performed by the member operator(), removed copy
	ctor and assignment operator.
	(X::Less): New class.
	* alg_test.cpp (mismatch): Defined.
	(compare): Implemented in terms of mismatch.
	(BinaryPredicate): Removed copy ctor and assignment operator.
	(_rw_fmtxarrayv): Recognized '@' in addition to '*' as a way
	to specify the position of the cursor (as the pointer rather
	than the index of the element designated by the cursor).

2006-02-27  Martin Sebor  <sebor@roguewave.com>

	* 26.adjacent.diff.cpp: Replaced class Y with class X and enhanced
	diagnostic output to take advantage of the %{X=+*} directive to
	format sequences of objects of type X as strictly numeric arrays.
	* 26.inner.product.cpp: Same.
	* 26.partial.sum.cpp: Same.

2006-02-27  Martin Sebor  <sebor@roguewave.com>

	* alg_test.h: Added support for arithmetic self-assignment operators
	to allow class X to be used in tests for numeric algorithms.
	* alg_test.cpp: Definitions of the above.
	(_rw_fmtxarrayv): Recognized and handled the '+' flag to force only
	numeric formatting.

2006-02-27  Martin Sebor  <sebor@roguewave.com>

	* sstream.cc (overflow): Removed an unused variable.

2006-02-27  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 26.partial.sum.cpp: New test exercising lib.partial.sum.

2006-02-27  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 26.inner.product.cpp: New test exercising lib.inner.product.

2006-02-27  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 26.adjacent.diff.cpp: New test exercising lib.adjacent.diff.

2006-02-25  Martin Sebor  <sebor@roguewave.com>

	STDCXX-142
	* _defs.h (_RWSTD_MINIMUM_STRINGBUF_CAPACITY): New macro.
	* sstream (xsputn): Added a declaration.
	(_C_grow): Removed an unnecessary function argument, used the
	new _RWSTD_MINIMUM_STRINGBUF_CAPACITY macro, and simplified.
	* sstream.cc (str): Extended to allow to be called with own
	buffer as an argument to grow it.
	(xsputn): Defined for better efficiency than the base class
	function.
	(overflow): Called str() for code reuse.
	(setbuf): Set the "high mark" in out mode.
	Updated copyrights.

2006-02-25  Martin Sebor  <sebor@roguewave.com>

	* _defs.h (_M_IA64): Used instead of the generic MSVC _WIN64 macro
	to distinguish between the IA64 SDK and ordinary WIN64 environments
	such as EM64T.

2006-02-24  Martin Sebor  <sebor@roguewave.com>

	* _traits.h (_RWSTD_MEMCPY, et al): Qualified name(s) with the
	_RWSTD_C:: prefix. Updated copyright.

2006-02-24  Martin Sebor  <sebor@roguewave.com>

	* UNISTD_DECL.cpp (LONG_LONG): Corrected a typo in conditionally
	compiled and conditionally used code.

2006-02-24  Martin Sebor  <sebor@roguewave.com>

	STDCXX-153
	* _punct.cc (__rw_match_name): Parenthesized toupper to prevent
	macro expansion.

2006-02-23  Martin Sebor  <sebor@roguewave.com>

	* libc_decl.sh (memchr, wmemchr): Eliminated the use of spaces
	to prevent false negatives.
	(memchr): Made the type of the first argument a void* instead
	of char* to prevent ambiguity in the presence of C++ overloads.
	(f): Quoted a variable.

2006-02-21  Martin Sebor  <sebor@roguewave.com>

	* libc_decl.sh (memchr): Cast first argument to const to avoid
	possible ambiguity.

2006-02-21  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (rw_vasnprintf): Increased the size of the backtrack
	array, increased the size of the cvtspec buffer after a successful
	allocation, and asserted preconditions.

2006-02-21  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	* 26.accumulate.cpp: New test exercising lib.accumulate.

2006-02-20  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 25.libc.cpp: New test exercising lib.alg.c.library.

2006-02-20  Martin Sebor  <sebor@roguewave.com>

	* 27.stringbuf.virtuals.cpp: Reduced the use of templates for better
	compilation efficiency and less code bloat.

2006-02-20  Liviu Nicoara  <nicoara@roguewave.com>

	* 23.vector.cons.cpp: New test exercising lib.vector.cons.

2006-02-20  Martin Sebor  <sebor@roguewave.com>

	STDCXX-151
	* 18.limits.cvqual.cpp: New test exercising the proposed resolution
	of LWG issue 559.

2006-02-20  Martin Sebor  <sebor@roguewave.com>

	STDCXX-151
	* limits: Implemented the proposed resolution of LWG issue 559 and
	guarded it with _RWSTD_NO_EXT_CV_QUALIFIED_LIMITS until it has been
	accepted.

2006-02-19  Martin Sebor  <sebor@roguewave.com>

	* streambuf.cc (xsputn): Asserted a precondition and simplified
	no-op detection.

2006-02-19  Martin Sebor  <sebor@roguewave.com>

	* streambuf (_C_is_out, _C_is_inout): Simplified bitwise expressions.

2006-02-19  Martin Sebor  <sebor@roguewave.com>

	* 27.stringbuf.virtuals.cpp: New test for lib.stringbuf.virtuals,
	including STDCXX-149.

2006-02-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-149
	* sstream (str): Simplified.
	(showmanyc): Outlined a virtual function.
	(_C_strlen): Returned (pptr - pbase) in out mode instead of
	(epptr - pbase) as per DR 432.
	(_C_catchup): New inline function called to let egptr catch up
	with pptr.
	* sstream.cc (str): Set egptr (et al) to point to the end of the
	controlling sequence even when not in "in" mode as an efficient
	way of implementing the "high mark" referred to in DR 432.
	(showmanyc): Outlined and called _C_catchup.
	(overflow): Called _C_catchup to allow the function to succeed
	even when (gptr < egptr) initially. Handled epptr pointing prior
	to the very end of the buffer. After reallocation set epptr to
	oint to the very end of the buffer and not just one past pptr
	(as per DR 169 and DR 432). Called _C_Catchip to let egptr get
	caught up with pptr.
	(underflow): Returned successfully if argument is eof regardless
	of openmode to strictly conform to the requirements.
	(seekoff): Simplified, called _C_catchup, and handled offsets
	pointing to uninitialized storage as required in DR 432.
	(seekpos): Implemented completely in terms of seekoff.

2006-02-18  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (A_ARRAY): New bit.
	(rw_fmtarray, _rw_fmtwstr): Changed character array formatting
	so as to prepend the 'L' prefix only to generic character arrays
	parametrized on the width of the character type.
	(_rw_fmtarray): Set the A_ARRAY bit.
	(_rw_fmtwchr): Formatted -1 as EOF (no quotes).
	* 0.printf.cpp: Exercised the above changes, specifically that
	the 'L' prefix is only prepended to quoted generic characters
	and arrays of such things parametrized on the width of the
	character type.

2006-02-17  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp: Exercised %{S}, %{lS}, %{#*S}, %{Io}, and %{Iw},
	(std::string, std::wstring, std::basic_string for generic charT,
	std::ios::openmode, and std::ios::seekdir). See r378675.
	Guarded a test for %{8Ao} for platforms without 64-bit integers.

2006-02-17  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (_rw_fmtseekdir): New function for the formatting
	of ios::seekdir values.
	(_rw_fmtwstr): Implemented consistently with _rw_fmtstr.
	(rw_bmpfmt): Handled the pound flag in the formatting of named
	constants: expanded the scope in such names (i.e., to all of
	"std::ios::in" as opposed to just "in").
	(_rw_vasnprintf_ext): Implemented the handling of %{#*S} analogous
	to %{*Ac}, i.e., for the formatting of generic specializations of
	basic_string. Implemented the handling of the %{Iw} directive for
	the formatting of ios::seekdir values.

2006-02-17  Martin Sebor  <sebor@roguewave.com>

	STDCXX-147
	* 18.limits.traps.cpp: Enhanced and worked around:
	http://sources.redhat.com/bugzilla/show_bug.cgi?id=2351

2006-02-17  Martin Sebor  <sebor@roguewave.com>

	* 25.set.difference.cpp (<cstddef>): Replaced calls to strlen() on
	string literals with the use of the sizeof operator for better
	efficiency and eliminated the dependency on <cstring> (replacing
	it with one on <cstddef> instead).
	* 25.set.intersection.cpp: Same.
	* 25.set.union.cpp: Same.

2006-02-17  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.set.sym.difference.cpp: New test for lib.set.symmetric.difference.

2006-02-17  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.set.difference.cpp: New test exercising lib.set.difference.

2006-02-17  Martin Sebor  <sebor@roguewave.com>

	* alg_test.h (first_less): New helper function declaration.
	(from_char): Added a third argument to check that the source array
	is sorted in non-descending order.
	(ilog2, ilog10): Outlined for better compilation efficiency.
	(is_sorted): New helper function template.
	* alg_test.cpp (first_less): Defined.
	(from_char): Verified that the source array is sorted and returned
	0 when it's not.

2006-02-17  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.set.intersection.cpp: New test exercising lib.set.intersection.

2006-02-16  Martin Sebor  <sebor@roguewave.com>

	* 25.merge.cpp (MergeBase, Merge, InplaceMerge): Abbreviated
	by dropping the word "Test" from the original names.

2006-02-16  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.set.union.cpp: Brand spankin' new test exercising lib.set.union.

2006-02-16  Martin Sebor  <sebor@roguewave.com>

	STDCXX-146
	* sstream (stringbuf, istringstream, ostringstream, stringstream):
	Added ctor and str() overloads for const char_type* for improved
	efficiency (gives a 20% speedup).
	(_RWSTD_NO_EXT_STRINGBUF_STR): New macro guarding the extended
	str() overloads.
	(stringbuf dtor, underflow): Outlined virtual functions.
	* sstream.cc (stringuf ctor, str): Implemented in terms
	of the new str(const char_type*) overload for simplicity.

2006-02-15  Martin Sebor  <sebor@roguewave.com>

	* collate.cpp (<cstring>): #included for strchr().

2006-02-14  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 25.permutation.cpp: New test for lib.alg.permutation.generators.

2006-02-14  Martin Sebor  <sebor@roguewave.com>

	* 25.merge.cpp: Limited the use of templates to a bare minimum
	to reduce compilation times and prevent unnecessary code bloat.
	With gcc 4.0.2 on Solaris the test compiles more than twice as
	fast (in both user and system time) yielding an object file
	less than 1/2 the size of the original and a 20% smaller
	executable.

2006-02-13  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 25.lex.comparison.cpp: New test exercising lib.lex.comparison.

2006-02-13  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.min.max.cpp: New test exercising lib.alg.min.max.

2006-02-13  Liviu Nicoara  <nicoara@roguewave.com>

	* tests/src/new.cpp: removed trailing newlines

2006-02-12  Martin Sebor  <sebor@roguewave.com>

	* stringstream.cpp: Renamed...
	* wstringstream.cpp: ...to this.

2006-02-09  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 27.objects.cpp: New test exercising lib.iostream.objects.

2006-02-09  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 27.forward.cpp: New test exercising lib.iostream.forward.

2006-02-09  Anton Pevtsov  <antonp@moscow.vdiweb.com>
            Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.heap.cpp: New test exercising lib.alg.heap.operations.

2006-02-09  Martin Sebor  <sebor@roguewave.com>

	* 25.includes.cpp: Corercted a logic error preventing the predicate
	form of the algorithm from being exercised.

2006-02-08  Martin Sebor  <sebor@roguewave.com>

	* 2.smartptr.shared.cpp (<cassert>): Removed.

2006-02-08  Martin Sebor  <sebor@roguewave.com>

	* new.cpp (operator_new): Corrected the formatting directive for size_t.

i2006-02-08  Martin Sebor  <sebor@roguewave.com>

	* _mbstate.h [_RWSTD_OS_SUNOS] (_RWSTD_NO_STD_MBSTATE_T): Defined to
	let <cwchar> et al know that mbstate_t is not declared in namespace
	std (and should be introduced there via a using declaration).

2006-02-08  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.includes.cpp: New test exercising lib.includes.

2006-02-07  Martin Sebor  <sebor@roguewave.com>

	STDCXX-132
	* def.cpp (<cstring>): Added a missing #include directive.
	* time.cpp: Same.
	* aliases.cpp: Same.
	* ctype.cpp: Same.

2006-02-07  Anton Pevtsov <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 25.sort.cpp: New test exercising lib.sort and lib.stable.sort.
	* 25.partial.sort.cpp: New test exercising lib.partial.sort and
	lib.partial.sort.copy.

2006-02-07  Liviu Nicoara  <nicoara@roguewave.com>

	STDCXX-4
	* 23.deque.iterators.cpp: New test exercising lib.deque.iterators.

2006-02-06  Anton Pevtsov <antonp@moscow.vdiweb.com>

	* 25.partitions.cpp (test_partitions): Enhanced to keep track of leaked
	objects.

2006-02-06  Martin Sebor  <sebor@roguewave.com>

	* 25.merge.cpp (Less): Corrected a typo.

2006-02-06  Anton Pevtsov <antonp@moscow.vdiweb.com>

	* 25.merge.cpp: New test exercising lib.alg.merge.

2006-02-06  Martin Sebor  <sebor@roguewave.com>

	* 25.unique.cpp: Added/removed/corrected comments.

2006-02-06  Martin Sebor  <sebor@roguewave.com>

	* include/printf.h: Renamed...
	* include/rw_printf.h: ...to this.
	* src/alg_test.cpp (<rw_printf.h>): Included instead of <printf.h>.
	* containers/23.deque.modifiers.cpp: Same.
	* src/any.cpp: Same.
	* strings/21.cwchar.cpp: Same.
	* self/0.printf.cpp: Same.
	* src/printf.cpp: Same.
	(_rw_fmtlong, _rw_fmtllong): Used _RWSTD_INTERNAL to conditionally
	declared the helper functions to have internal linkage in order to
	work around a Sun C++ bug.
	* src/system.cpp (<rw_printf.h>): Included instead of <printf.h>.
	(_rw_vsystem): Avoided declaring const a variable used as an argument
	to the WIFXXX() macros in order to prevent bogus gcc warning on Linux:
	cast from `const int*' to `int*' discards qualifiers from pointer
	target type: see http://sourceware.org/bugzilla/show_bug.cgi?id=1392
	* src/driver.cpp (<rw_printf.h>): Included instead of <printf.h>.
	Used rw_fprintf(rw_stderr) instead of fprintf to make sure all output
	is flushed even when the program abends.

2006-02-06  Martin Sebor  <sebor@roguewave.com>

	STDCXX-3
	* alarm.h: New. Declaration of the rw_alarm() helper.
	* alarm.cpp: New. Definition of the same.

2006-02-05  Anton Pevtsov <antonp@moscow.vdiweb.com>

	* 25.binary.search.cpp: New test exercising lib.binary.search.

2006-02-05  Anton Pevtsov <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	* 25.equal.range.cpp: New test exercising lib.equal.range.

2006-02-04  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.nth.element.cpp (test_nth_element): Updated the upper bound value
	to a more strict one.

2006-02-04  Martin Sebor  <sebor@roguewave.com>

	* 25.lower.bound.cpp (test_lower_bound): Corrected the nparam argument
	in the formatting string to account for a change in rw_snprintfa()
	behavior introduced in r371638.
	* 25.upper.bound.cpp (test_upper_bound): Same.

2006-02-04  Anton Pevtsov <antonp@moscow.vdiweb.com>

	* 25.lower.bound.cpp (test_lower_bound): Fixed assertion condition to
	verify the complexity, updated the expected complexity values to meet
	the standard requirements.
	* 25.upper.bound.cpp (test_upper_bound): Same.

2006-02-02  Martin Sebor  <sebor@roguewave.com>

	* _defs.h: Removed the macros _RWSTD_WCRTOMB() and _RWSTD_MBRTOWC()
	obviated by change in r374235.

2006-02-02  Martin Sebor  <sebor@roguewave.com>

	* alg_test.cpp (<printf.h>): Corercted the spelling of header name.

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.

2006-02-02  Martin Sebor  <sebor@roguewave.com>

	* any.h: Added declarations for const and volatile overloads
	of ctors taking a pointer argument.
	* any.cpp: Added definitions of the same.

2006-02-02  Martin Sebor  <sebor@roguewave.com>

	STDCXX-129
	* cwchar: Consistently introduced all function declarations into
	the global scope first, before injecting each into namespace std
	via a using declaration.

2006-02-02  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 21.cwchar.cpp: New test exercising lib.string.c.strings, header
	<cwchar>, including STDCXX-129.

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-02-01  Anton Pevtsov <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 25.partitions.cpp: New test exercising lib.alg.partitions.
	Test currently fails due to STDCXX-131.

2006-02-01  Martin Sebor  <sebor@roguewave.com>

	* _algobase.h: Renamed file #include guards to include the name	of
	the directory. Guarded #include directives of files in include/_rw
	for compilation efficiency. Removed the inclusion of from headers
	that also #include other implementation-specific headers.
	* iosfwd: Same.
	* _algobase.h: Same.
	* _allocator.h: Same.
	* _array.h: Same.
	* _autoptr.h: Same.
	* _basic_ios.h: Same.
	* _bitmask.h: Same.
	* _config.h: Same.
	* _defs.h: Same.
	* _error.h: Same.
	* _exception.h: Same.
	* _file.h: Same.
	* _funcbase.h: Same.
	* _heap.h: Same.
	* _ioinsert.h: Same.
	* _ioiter.h: Same.
	* _iosbase.h: Same.
	* _iosfailure.h: Same.
	* _iosfwd.h: Same.
	* _iterator.h: Same.
	* _iterbase.h: Same.
	* _math.h: Same.
	* _mbstate.h: Same.
	* _mutex.h: Same.
	* _new.h: Same.
	* _pair.h: Same.
	* _rawiter.h: Same.
	* _relops.h: Same.
	* _select.h: Same.
	* _specialized.h: Same.
	* _streamiter.h: Same.
	* _strref.h: Same.
	* _traits.h: Same.
	* _tree.h: Same.
	* _typetraits.h: Same.

2006-01-31  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 25.nth.element.cpp: New test exercising lib.alg.nth.element.

2006-01-31  Martin Sebor  <sebor@roguewave.com>

	STDCXX-130
	* GNUmakefile (LIBBASE): Avoided expanding BUILDTYPE when writing out
	the value of the variable to makefile.in.

2006-01-30  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.unique.cpp: Enabled predicate tests inadvertently disabled
	in a previous commit.

2006-01-30  Martin Sebor  <sebor@roguewave.com>

	STDCXX-34
	* cstdint: Simplified.
	* 8.cstdint.cpp: New test exercising tr.c99.cstdint.

2006-01-30  Martin Sebor  <sebor@roguewave.com>

	* LIMITS.cpp (type_name): Factored out the helper functions into
	a file of their own (types.h). Moved code computing the properties
	of floating point types to a separate config test (FLOAT.cpp).
	(_RWSTD_PTRDIFF_MIN, _RWSTD_PTRDIFF_MAX, _RWSTD_SIZE_MAX): Moved
	to SIZE_T.cpp.
	(_RWSTD_WINT_MIN, _RWSTD_WINT_MAX): Moved to WINT_T.cpp.
	(_RWSTD_INT8_T, _RWSTD_INT_LEAST8_T, ...): Computed and defined.
	* types.h: New file with the definitions of the type_name() helper
	overloads.
	* FLOAT.cpp: New config test computing the properties of floating
	point types.
	* SIG_ATOMIC_T.cpp (types.h): Included instead of defining own helpers.
	(_RWSTD_SIG_ATOMIC_MIN, _RWSTD_SIG_ATOMIC_MAX): Defined here terms
	of the underlying arithmetic type instead of in LIMITS.cpp.
	* SIZE_T.cpp (types.h): Included instead of defining own helpers.
	(_RWSTD_SIZE_MAX): Defined here terms of the underlying arithmetic
	type instead of in LIMITS.cpp.
	* WINT_T.cpp (types.h): Included instead of defining own helpers.
	(_RWSTD_WINT_MIN, _RWSTD_WINT_MAX): Defined here in terms of the
	underlying arithmetic type instead of LIMITS.cpp.

2006-01-27  Martin Sebor  <sebor@roguewave.com>

	* LIMITS.cpp: Determined whether the architecture uses one's or two's
	complement integer representation and adjusted the values of integral
	limits correspondingly. Lined up output for better readability.

2006-01-27  Martin Sebor  <sebor@roguewave.com>

	STDCXX-34
	* cstdint: Implementation of tr.c99.cstdint.
	* stdint.h: Implementation of tr.c99.stdinth.

2006-01-26  Martin Sebor  <sebor@roguewave.com>

	STDCXX-32
	* array: New. Implementation of tr.array.

2006-01-26  Martin Sebor  <sebor@roguewave.com>

	* array: Deleted.

2006-01-26  Martin Sebor  <sebor@roguewave.com>

	* array: New. Implementation of tr.array.

2006-01-26  Martin Sebor  <sebor@roguewave.com>

	* _config.h (_RWSTD_SSIZE_TYPE): Removed conditional definition
	of the unused macro.

2006-01-26  Martin Sebor  <sebor@roguewave.com>

	* _num_get.cc: Replaced hardcoded magic numbers representing special
	characters with constants obtained from __rw_digit_map. Used UCHAR_MAX
	instead of (unsigned char)-1.

2006-01-26  Martin Sebor  <sebor@roguewave.com>

	* alg_test.h (UnaryPredicate, BinaryPredicate): Changed the return
	type of operator() from bool to conv_to_bool for extra strictness.
	Removed dead declarations of tempstr and to_string().
	* alg_test.cpp (UnaryPredicate, BinaryPredicate): Same.

2006-01-26  Anton Pevtsov  <antonp@moscow.vdiweb.com>
            Martin Sebor  <sebor@roguewave.com>

        STDCXX-4

	* 25.unique.cpp: New test to exercise lib.alg.unique.

2006-01-26  Liviu Nicoara  <nicoara@roguewave.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 23.deque.modifiers.cpp: New test exercising lib.deque.modifiers.
	* 23.deque.special.cpp: New test exercising lib.deque.special.

2006-01-26  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	* 25.transform.cpp: New test exercising lib.alg.transform.

2006-01-25  Martin Sebor  <sebor@roguewave.com>

	* 25.random.shuffle.cpp: Corrected subtle logic errors and simplified.

2006-01-25  Martin Sebor  <sebor@roguewave.com>

	* algorithm.cc (random_shuffle): Asserted a precondition.

2006-01-25  Martin Sebor  <sebor@roguewave.com>

	STDCXX-126
	* algorithm.cc (random_shuffle): Removed assumptions about the random
	number generator object's operator() taking an argument or returning
	a value convertible from or to anything other than the iterator's
	difference_type as required by 25.2.11, p3.

2006-01-25  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.random.shuffle.cpp: New test exercising lib.alg.random.shuffle
	including STDCXX-126.

2006-01-25  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (_rw_fmtchr, _rw_fmwtchr): Added a noesc argument
	for callers to control whether to escape non-printable characters
	independently of quoting.
	(_rw_vasnprintf_c99, _rw_vasnprintf_ext): Disabled and enabled,
	respectively, the use of escape sequences when formatting narrow
	and wide characters using the %c, %{c}, %lc, and %{lc} directives.
	* 0.printf.cpp: Exercised the above.

2006-01-24  Martin Sebor  <sebor@roguewave.com>

	* 25.replace.cpp (<cstdarg>, <cstdlib>, <printf.h>): Removed needless
	#include directives.
	(ToString): Removed.
	(test_remove): Made sure the xsrc pointer is always dereferenceable
	by allocating one more element than necessary under all circumstances.
	Replaced %p formatting with the more descriptive offset from the
	beginning of the sequence.
	Removed the uses of the ToString template and used the %{X=...}
	directive to directly format arrays of objects of type X.
	Used the %#c extension to format characters to avoid producing
	non-printable output (and format such characters using traditional
	C escape sequences).
	* 25.reverse.cpp: Same.
	* 25.remove.cpp: Same.
	* 25.rotate.cpp: Same.

2006-01-24  Martin Sebor  <sebor@roguewave.com>

	* alg_test.cpp (_rw_fmtxarray): New callback function implementing
	the formatting of arrays of object of type X, invoked in response
	to extended formatting directives from rw_printf() at al.
	(X::X): Pushed _rw_fmtxarray on top of the stack of user-defined
	formatting callbacks.
	(RW_ASSERT): Used instead of redefining the assert macro to do so.

2006-01-24  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (_rw_vfprintf): Allowed rw_file* argument to be null
	to permit executing special directives that generate no characters,
	and avoided attempting to produce output.

2006-01-24  Liviu Nicoara <nicoara@roguewave.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 0.new.cpp: New test exercising the testsuite's replacement operators
	new and delete.

2006-01-24  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp (<float.h>, <limits.h>, <wchar.h>, <ios>, <iostream>,
        <locale>, <string>): Removed unnecessary #include directives.
	(test_user_defined_formatting): New function exercising directives
	involving user-defined callback functions introduced in rev 372001.
	(main): Called it.

2006-01-24  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (_rw_vasnprintf_cxx): Renamed to...
	(_rw_vasnprintf_ext): ...this.
	(_rw_usr_cb_t, _rw_usr_fun, _rw_usr_inx): New type of a user-defined
	formatting callback function, an array of pointers to such things,
	and their number.
	(rw_vasnprintf): Added the handling for the special %{+} directive
	to append to the end of (rather than overwrite) the destination buffer.
	Stored all arguments extracted from the variable argument list rather
	than just their C99 subset.
	(_rw_vasnprintf_ext): Allowed each of the user-defined formatting
	callback functions on the stack to process a formatting directive
	before handling it here.
	Implemented the special %{!}, %{+!}, and %{-!} directives to set,
	push on top of the stack, and pop off the top of the stack, a user
	defined formatting callback function.
	Replaced an assertion for an unknown directive with a more descriptive
	and recoverable formatting error.

2006-01-23  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp (test_conditional): Exercised the ability to use the
	value of conditional expression in subsequent paramno specifiers.

2006-01-23  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (FmtSpec): Changed modifiers from a bitfield to an emum
	as at most one modifier may be specified. Introduced convenience member
	types and renamed members of the param union for consistency with the
	corresponding types.
	(libstd_vasnprintf): Renamed...
	(_rw_vasnprintf_cxx): ...to this for consistency.
	(_rw_fmtspec, _rw_vasnprintf_c99, _rw_fmtinteger, _rw_fmtfloating,
	_rw_fmtfunptr, _rw_fmtmask, rw_fmtarray, _rw_vasnprintf_cxx): Naming
	changes.
	(rw_vasnprintf): Stored the value of conditional expressions extracted
	from the argument list (to allow it to be referenced in subsequent
	paramno specifiers).
	(PARAM): Simplified (made possible by naming changes above).
	(_rw_fmtlong): Allowed for the possibility of the formatting producing
	no output (when both the value the precision are 0).

2006-01-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-3
	* rw_new.h: New header with definitions of replacement operator new.
	* new.cpp: Implementation of replacement operator new with error and
	memory corruption detection.

2006-01-19  Liviu Nicoara <nicoara@roguewave.com>
	    Martin Sebor <sebor@roguewave.com>

	STDCXX-4
	* 21.string.cons.cpp: New test exercising lib.string.cons.

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>

	STDCXX-123
	* libc_decl.sh (funptri): Avoided using a type with no linkage
	to declare a variable with linkage to prevent an EDG eccp 3.7
	error #961-D: use of a type with no linkage to declare a variable
	with linkage.

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-18  Martin Sebor  <sebor@roguewave.com>

	* doc/stdlibug/*.html: Changed name to Apache C++ Standard Library.
	* doc/stdlibref/*.html: Same. Removed references to "Module."

2006-01-18  Anton Pevtsov <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.swap.cpp: New test exercising lib.alg.swap.

2006-01-18  Martin Sebor  <sebor@roguewave.com>

	* index.html: Corrected typos.

2006-01-17  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.search.cpp: New test exercising lib.alg.search, including
	STDCXX-121.

2006-01-17  Martin Sebor  <sebor@roguewave.com>

	STDCXX-121
	* algorithm.cc (__search_n): Converted the Size argument
        to ptrdiff_t before doing any math on it.

2006-01-17  Martin Sebor  <sebor@roguewave.com>

	STDCXX-12
	* index.html: Added a meta tag to see if it gets browsers to render
	the file as HTML instead of plain text.

2006-01-17  Martin Sebor  <sebor@roguewave.com>
	
	* 21.cwctype.cpp (iswalnum, etc.): Undefined macros.
	(bit_xxx): Added more bits for missing functions and removed 
	the corresponding isxxx_declared variables.
	(iswalnum<T>, etc): Set bit to indicate a function is missing (not
	declared) in <cwctype>. Returned -1 intead of 0 to distinguish the
	return value from the real functions.
	(wctrans<T>): Added a definition.   
	(run_test): Used bit_xxx instead of isxxx_declared. 

2006-01-17  Martin Sebor  <sebor@roguewave.com>

	* src/printf.cpp (<ctype.h>): Included for isalpha, et al.
	(<wchar.h>, <wctype.h>): Guarded header include directives.
	(_rw_fmtmask): New (yet unused) function for the formatting
	of character classification bits/masks.
	(_rw_fmtlong, _rw_fmtllong): Avoided unnecessarily NUL-terminating
	buffer (done later in _rw_fmtstr).     
	(rw_fmtinteger): New template function for the generic formatting
	of arbitrary integral types.
	(_rw_fmtinteger): Simplified by calling rw_fmtinteger.  
	(_rw_fmtbadaddr): Handled the formatting of null pointers.
	(_rw_fmttm): Simplified the formatting of invalid pointers.
	(rw_quotestr): Renamed to...
	(rw_fmtarray): ...this and implemented the formatting of arrays 
	of arbitrary integral types (in addition to characters).
	(_rw_fmtarray): New function for the formatting of arrays 
	of arbitrary integral types.
	(_rw_fmtwstr): Called rw_fmtarray instead of rw_quotestr.
	(libstd_vasnprintf): Called the higher-level _rw_fmtstr instead
	of the rw_quotestr helper. Factored out the handling of character
	arrays into _rw_fmtarray. Implemented the handling of %{Ad}, %{Ai},
	%{Ao}, %{Au}, and %{Ax} (arrays of integral values).
	* self/0.printf.cpp (test_array): Renamed to...
	(test_chararray): ...this function.
	(test_intarray): New function exercising the formatting of arrays
	of integral values.
	(main): Called test_chararray and test_intarray.

2006-01-16  Martin Sebor  <sebor@roguewave.com>

	* 21.cwctype.cpp: Detected and gracefully handled (i.e., without
	compilation errors) the absence of any exercised type or function.

2006-01-16  Martin Sebor  <sebor@roguewave.com>

	* _algobase.h (__rw_lt::operator()): Declared arguments const to allow
	them to bind to rvalues and cast away their constness before invoking
	operator< in case it takes a non-const argument.

2006-01-16  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 20.operators.cpp: New test exercising lib.operators, including
	STDCXX-120.

2006-01-16  Martin Sebor  <sebor@roguewave.com>

	STDCXX-120
	* deque.cc (erase, _C_assign_n, _C_assign_range, _C_insert_range):
	Avoided using operator!= with iterators and used the negated result
	of operator== instead, to avoid ambiguity when both namespace std
	and namespace rel_ops are in the same scope.
	* _tree.cc (erase): Same.

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-15  Martin Sebor  <sebor@roguewave.com>

	* generate.wsf: Added an SGML file-type comment for Emacs.
	(Usage): Added msvc-8.0 to the set of values accepted by
	the /CONFIG option.

2006-01-12  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* config.js (Solution): Added version and formatVersion fields.
	* configure.wsf (checkHeadres): Updated the header name for log
	forming mechanism, added include symbol output for "no" cases.
	(runExeTests): Removed include symbol output for "ok" cases.
	* data.js (vc80SolutionName): New global variable.
	* generate.js (defineRWBUILD): Removed as obsolete.
	(fillProjectsFromFolders): Added implementation of the /COPYDLL
	option in the postBuild tool processing.
	(fillSolutionTemplate): Added copiyng of new Solution fields, added
	implementation of the /COPYDLL option into the projectRunExamples
	projectRunTests configuring.
	(fillSolutionTemplateLight): Added copiyng of new Solution fields.
	(generateVCPROJ): New parameter "version."
	(generateSolutionVCImpl): Updated implementation to use new Solution
	fileds, updated call to generateVCPROJ function.
	(readSolutionGUIDs): updated to be able to read .sln files generated
	by MSVC 8.0.
	(solutionVC80): New global variable.
	* generate.wsf (<package>): Added /COPYDLL option description.
	(copyDll): New global variable.
	(readAndCheckArguments): Implemented the /COPYDLL option reading
	* makelog.wsf (buildLogUnicode): New variable.
	(makelog): Added check for Unicode, calls to functions updated.
	(readAndCheckArguments): added buildLogUnicode variable initialization.
	(getLibraryBuildInfo, getTestDriverBuildInfo): updated the call to
	OpenTextFile to work with Unicode files properly.
	* runall.wsf (<package>): Added descriptions for the /COPYDLL and
	/LIBDIR options.
	(currentCfg, copyDll, libdllFolder, libFileName): New variables.
	(readAndCheckArguments): Implemented the reading of the /COPYDLL
	and /LIBDIR options.
	(runAllExamples): Implemented the /COPYDLL option - added command
	for temporary dll copying, calls to readBuildLog function updated
	to support Unicode files.
	* summary.js (readBuildLog): New parameter useUnicode, calls to
	OpenTextFile updated correspondingly.
	(checkForFailures): Mew parameter useUnicode, calls to OpenTextFile
	updated correspondingly.
	* update.wsf (update): Updated error processing.
	(saveModifiedProjecs): New parameter "version", callers updated
	correspondingly, updated to use new Solution fields.
	* msvc-config.js (solutionVC80): New variable.
	(configureToolsVC80): New function.
	(configureToolsConfigure, configureToolsExamples, configureToolsTests,
	configureToolsRwTest): An obsolete comment removed.
	(configureToolsRunExamples, configureToolsRunTests): postBuildTools
	configuration changed as a part of the COPYDLL option implementation.
	* msvc-config_classes.js (CompilerVC80): New class.
	(writeSolutionSettingsCompilerVC80, getCommandLineCompilerVC80): New
	functions.

2006-01-15  Martin Sebor  <sebor@roguewave.com>

	* cwctype.cpp (test_types): New function testing the presence
	of wint_t, wctrans_t, and wctype_t in namespace std.

2006-01-15  Martin Sebor  <sebor@roguewave.com>

	* testdefs.h (std) [_RWSTD_NO_NAMESPACE]: #defined to be empty to
	allow std:: qualifications even when namespace support is disabled.

2006-01-14  Martin Sebor  <sebor@roguewave.com>

	* 21.cctype.cpp: New test exercising lib.c.strings, the contents
	of the header <cctype>.
	* 21.cwctype.cpp: New test exercising lib.c.strings, the contents
	of the header <cwctype>.

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-14  Martin Sebor  <sebor@roguewave.com>

	* codecvte.h (<algorithm>): Removed include directive and rewrote
	the facet without the use of the std::min() function.

2006-01-14  Martin Sebor  <sebor@roguewave.com>

	* 25.rotate.cpp (<printf.h>): Corrected a typo.

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>

	* 22.time.put.cpp (<cwchar>): Included for wcslen etc.
	(do_test): Used %{Ac} to correctly format "generic" character
	arrays in diagnostic output.
	(test_POSIX): Exercised facet behavior with the TZ environment
	variable not set.

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-12  Martin Sebor  <sebor@roguewave.com>
	
	* _mbstate.h (__rw_mbstate_t) [_RWSTD_OS_AIX]: Introduced typedef
	to avoid problems due to const qualification on _RWSTD_MBSTATE_T.
	(<machine/_types.h>) [_RWSTD_OS_DARWIN]: Included for __mbstate_t.
	(_RWSTD_MBSTATE_T): Defined to std::mbstate_t for the generic OS.
	* _cwchar.h (mbstate_t): Defined in terms of _RWSTD_MBSTATE_T.

2006-01-12  Martin Sebor  <sebor@roguewave.com>

	* README: Merged from branches/4.1.3/ at r368452.

2006-01-12  Martin Sebor  <sebor@roguewave.com>

	STDCXX-113
	* gcc.config (LDLIBS) [Darwin]: Added -lgcc_eh.

2006-01-12  Martin Sebor  <sebor@roguewave.com>

	* printf.h (%Ac, %K): Documented.

2006-01-12  Anton Pevtsov  <antonp@moscow.vdiweb.com>

        STDCXX-4
        * 25.rotate.cpp: New test exercising lib.alg.rotate.

2006-01-12  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* 25.generate.cpp (test_generate, test_generate_n): call to
	delete was updated.

2006-01-11  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 25.reverse.cpp: New test exercising lib.alg.reverse.

2006-01-11  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 21.string.append.cpp: New test exercising lib.string.append.
	* 21.string.plus.equal.cpp: New test exercising lib.string.op+=.

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-11  Martin Sebor  <sebor@roguewave.com>

	* _traits.h [_RWSTD_NO_WMEMCMP] (_RWSTD_WMEMCMP): Fixed a typo
	in conditionally compiled code.

2006-01-10  Martin Sebor  <sebor@roguewave.com>

	* cwchar (_RWSTD_NO_STD_MBSTATE_T): Used instead of
	_RWSTD_NO_MBSTATE_T_IN_STD to guard the using declaration
	of mbstate_t in namespace std.

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>

	* codecvt1.cpp (<cwchar>): Included header for mbstate_t.

2006-01-10  Martin Sebor  <sebor@roguewave.com>

	* codecvte.h (<cwchar>): Included header for mbstate_t.
        (<strstream>, <functional>): Removed #include directives.

2006-01-10  Martin Sebor  <sebor@roguewave.com>

	* string.cpp [_RWSTD_NO_WMEMCHR] (wmemchr): Corrected a typo
	in function name.

i2006-01-10  Martin Sebor  <sebor@roguewave.com>

	* STD_MBSTATE_T.cpp: New config test.
	* MBSTATE_T.cpp: Guarded the inclusion of "config.h"

2006-01-10  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp (test_array): New function exercising the formatting
	of variable-width character arrays.

2006-01-10  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (libstd_vasnprintf): Handled precision in the formatting
	of variable-width character arrays and treated it as the number of
	characters to format, including any NULs.

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>

	* gcc.config (-Wextra): Removed (thus partially reverting r366347). The
	option is the same as -W except not portable to earlier versions of the
	compiler.

2006-01-09  Martin Sebor  <sebor@roguewave.com>

	STDCXX-107
	* MUNMAP.cpp (<sys/types.h>): Included to prevent compilation errors
	in <sys/mman.h> on BSD.

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-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-102
	* vacpp.config (AS_EXT): Set to .s for Linux.

2006-01-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-101
	* instantiation_before_definition.h: Avoided using the extern template
	extension to declare an explicit instantiation of a function template
	when _RWSTD_NO_EXTERN_FUNCTION_TEMPLATE is #defined.
	* EXTERN_TEMPLATE_BEFORE_DEFINITION.cpp: Established a dependency on
	the EXTERN_FUNCTION_TEMPLATE.cpp test.
	* EXPLICIT_INSTANTIATION_BEFORE_DEFINITION.cpp: Same.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* fstream.cc (underflow): Used char_traits::move() instead of memmove.
	* _messages.cc (do_get): Used char_traits::length() instead of strlen.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* bitset (reset, set): Used the _RWSTD_MEMSET() macro instead
	of calling memset directly.
	* bitset.cc (__rw_bitset): Same.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* _traits.h: Used string helpers instead of the corresponding libc
	functions in debug mode or with the vanilla EDG eccp demo to avoid
	namespace pollution and for better compile time and runtime error
	detection.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* codecvt1.cpp: Added a missing #include directive.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* valcmp.cpp (rw_dblcm): Silenced a SunPro 5.7 Warning: Conversion
	of 64 bit type value to "int" causes truncation.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* localedef.cpp (rw_set_locale_root): Removed a gratuitous std::
	qualification from strcat.
	* Avoided accidentally including /usr/include/localedef.h on HP-UX.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* _mbstate.h (<cwchar>): Avoided #including on Solaris and instead
	defined struct __mbstate_t and mbstate_t directly in this header.

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>

	STDCXX-72
	* 25.adjacent.find.cpp (EqualityPredicate): New class template.
	(do_test): Used it instead of std::equal_to.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	STDCXX-95
	* SIZE_T.cpp: Defined _RWSTD_EOF and _RWSTD_WEOF to -1 even when
	the corresponding libc macros are not #defined.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* 18.limits.traps.cpp (<rw_any.h>): #included for rw_any_t.
	(test_traps): Used rw_any_t in informational output and used
	the "%b" specifier to format Boolean values.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp (test_bool): New function to exercise the 'b' format
	specifier.
	(test_integer): Called test_bool.

2006-01-07  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (_rw_vasnprintf_c99): Added a case for the 'b' format
	specifier as an extension for the formatting of Boolean values.
	(_rw_fmtinteger): Added handling of the 'b' format specifier.

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-06  Martin Sebor  <sebor@roguewave.com>

	* README: Updated version information.

2006-01-06  Martin Sebor  <sebor@roguewave.com>

	* GNUmakefile.bin (SRCDIRS): Removed a stray subdirectory inadvertently
	introduced in rev 292348.

2006-01-05  Martin Sebor  <sebor@roguewave.com>

	* wctype.cpp (wchar.h): Included for wctomb().

2006-01-05  Martin Sebor  <sebor@roguewave.com>

	* 21.string.push_back.mt.cpp: Removed an unnecessary #include directive.
	(to_append): Removed the size of the array and relied on its initializer
	instead.
	(ehread_func): Asserted that array index is in bounds and replaced uses
	of the assert() macro with RW_ASSERT().
	(thread_func): Parenthesized a call to putc in order to thwart macro
	expansion and qualified size_t with the name of the declaring namespace.

2006-01-05  Martin Sebor  <sebor@roguewave.com>

	* atomic_add.cpp [!_RWSTD_REENTRANT] (run_test): Eliminated gcc errors
	and -Wunused warnings in conditionally compiled code.
	* atomic_xchg.cpp: Same.

2006-01-05  Martin Sebor  <sebor@roguewave.com>

	* gcc.config: Used := instead of plain assignment when invoking
	the $(shell) make function, for efficiency.
	Added -Wextra to the set of compiler options for gcc 3 and beyond.

2006-01-05  Martin Sebor  <sebor@roguewave.com>

	* _mutex.h (_RWSTD_CSTRING): Removed an unnecessary #include directive.

2006-01-02  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 22.time.put.cpp: New test exercising lib.locale.time.put.

2006-01-02  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp (make_tm): New helper function.
	(test_tm): Called it and exercised the "%{t}" format
	string for the formatting of struct tm values.

2006-01-02  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (_rw_fmtbadaddr): New function.
	(rw_quotestr): Called _rw_fmtbadaddr.
	(_rw_fmtstr): Same.
	(_rw_fmttm): New function for the formatting of tm values.
	(_rw_fmtspec): Avoided misinterpreting a formatting specifier
	as a modifier when there would otherwise be no specifier and
	when extensions are enabled.
	Replaced the assert() macro with RW_ASSERT().

2006-01-01  Martin Sebor  <sebor@roguewave.com>

	* 25.lower.bound.cpp (conv_to_bool): Used instead of ConvertibleToBool.
	(test_lower_bound): Silenced bogus EDG eccp 3.6 remark #550-D: variable
	was set but never used.

2006-01-01  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.upper.bound.cpp: New test exercising lib.upper.bound.

2006-01-01  Martin Sebor  <sebor@roguewave.com>

	* alg_test.h (conv_to_bool): Enhanced to prevent default construction
	and assignment and replaced conversion to bool with one to a unique
	pointer type testable in the controlling expression of the if statement
	as required in 25, p7.

2005-12-30  Martin Sebor  <sebor@roguewave.com>

	STDCXX-89
	* _algobase.h [!_RWSTD_NO_INLINE_MEMBER_TEMPLATES] (__rw_lt): Changed
	from a template class with an ordinary member operator() to an ordinary
	class with a template member operator() to permit the comparison of
	arguments of heterogeneous types.

2005-12-30  Martin Sebor  <sebor@roguewave.com>

	* 25.lower.bound.cpp (Y): Replaced derivation by containment to really
	exercise STDCXX-89.

2005-12-30  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.lower.bound.cpp: New test exercising lib.lower.bound, including
	STDCXX-89.

2005-12-22  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* config.js (Linker): Added library directories collection.
	* configure.wsf: Corrected helper xml comments, updated error hadling
	- the script tells the user where to look for the log file. Added
	option for the icc-9.0 Defines to avoid problems with '*' symbol
	in 19 package version of the Intel 9.0 C++ compiler, function tests
	updated correspondingly.
	* data.js: The solution names were moved to this file to be used
	in all other script files.
	* fun_present_check.cpp (FUN_PARAMS): New helper define to avoid
	problem with Compilation for Intel 9.0 C++ 19 package '*' problem
	workaround.
	* generate.js: Added icc-specific functions for the solution
	generation.
	(checkEnvironment): New function for all configurations (it checks
	that all utilities required for the solution generation are available).
	(generateSolution): Implemented for icc (msvc implementation updated),
	added helper functions for the source files filters.
	* generate.wsf: corrected helper xml comments, updated builddir
	variable to use config in the directory name.
	(checkEnvironment): New step to the solution generation workflow,
	modified the final output.
	(generateBuildBatch): Updated to be config-independent and accept
	the config as first parameter.
	(generateUpdateBatch): Same.
	* makelog.wsf: Corrected helper xml comments, updated the log file
	name generation mechanism to use the configrutation in the file name.
	(CONFIG): Added script parameter.
	* runall.wsf: Fixed typo.
	* summary.js: Added mechanism to read compilation output from
	BuildLog.html in non-table data form, updated the BuildLog.html
	reading workflow, changed the log file name generation function
	to use the configuration in the log file name.
	* update.wsf: Corrected helper xml comments.
	(checkEnvironment): Added step to the solution update workflow.
	Added several icc-90 specific steps (i.e converting from icc projects
	structure to msvc and vice versa).
	* utilities.js (converSolutionImpl): New function for the solution
	conversion from Intel projects structure, added special processing
	for the solutions which has cpecific configurations for the configure
	project (icc).
	* msvc-config.js: Added the icc-9.0 solution creation as a copy of
	msvc-7.1 solution. It is here to be sure that icc solution will be
	created after msvc-7.1 creation and configuration. All configure
	tools functions made configuration independent (they receive all
	necessary information via parameters).
	(configureToolsVC71): Changed correspondingly.
	* msvc-config_classes.js: Added processing for the additional
	libraries in linker.
	* icc-config.js: New. Contains "classes" for the icc-9.0 compiler,
	linker, librarian, etc.
	* icc-config_classes.js: New. Contains the icc9.0_config solution
	tools configuration. This special solution is used for configure
	project compilation instead of icc-9.0. Should be included in
	configure.wsf script only.

2005-12-23  Martin Sebor  <sebor@roguewave.com>

	* 25.remove.cpp (ToString): Simplified the invocation of rw_asnprintf().

2005-12-23  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.replace.cpp: New test exercising lib.alg.replace.

2005-12-21  Martin Sebor  <sebor@roguewave.com>

	* atomic_add.cpp: Passed the upper bound of the restricted numeric
	option specification as an argument instead of hardcoding it in the
	string.
	* atomic_xchg.cpp: Same.

i2005-12-21  Martin Sebor  <sebor@roguewave.com>

	* 19.exceptions.mt.cpp: Passed the upper bound of the restricted numeric
	option specification as an argument instead of hardcoding it in the
	string.
	* 21.string.push_back.mt.cpp: Same.

2005-12-21  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 20.temp.buffer.mt.cpp: New test exercising the thread safety
	of lib.temporary.buffer.

2005-12-21  Martin Sebor  <sebor@roguewave.com>

	* 0.cmdopts.cpp: Exercised restricted numeric options implemented
	in rev 358445.

2005-12-21  Martin Sebor  <sebor@roguewave.com>

	* cmdopt.cpp (rw_vsetopts): Factored out the processing of the numeric
	argument(s) of restricted command line arguments from here...
	(_rw_getbounds): ...to here. Added the ability to specify arguments
	in the option specification (denoted by a '*') instead of hardcoding
	their numeric value in the option string.
	(_rw_getarg): New function to parse and validate the argument of
	a restricted numeric command line option.
	(rw_runopts): Factored out single command line option processing code
	from here...
	(_rw_runopt): ...to this function. Implemented restricted numeric
	arguments for all types of options (i.e., with or without callbacks
	and optional or required).
	(_rw_set_ignenv): Renamed to follow the naming convention for symbols
	with internal linkage.
	(_rw_print_help): Same. Added informational output for restricted
	numeric arguments to command line options.
	(_RWSTD_NO_VA_LIST_ARRAY): Used the new config macro.

2005-12-20  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.remove.cpp: New test exercising lib.alg.remove.

2005-12-19  Martin Sebor  <sebor@roguewave.com>

	* SIZE_T.cpp (_RWSTD_VA_LIST): Moved the definition of the macro
	from here...
	* VA_LIST.cpp: ...to here. New config test to determine the underlying
	type of va_list and whether it is an array type or object type.

2005-12-19  Martin Sebor  <sebor@roguewave.com>

	* 25.adjacent.find.cpp (<cstring>): Replaced the #inclusion
	of <cstddef> to bring the declaration of std::strlen() into scope.
	* find.cpp: Same.
	* find_end.cpp: Same.

2005-12-18  Martin Sebor  <sebor@roguewave.com>

	* 19.exceptions.mt.cpp (--nloops=N, --nthreads=N): Restricted the set of
	valid values of N accepted by the test driver and eliminated validation
	done by the test (obviated by rev 357416).
	* 21.string.push_back.mt.cpp: Same.
	* 25.for.each.cpp (--nloops=N): Same.
	* atomic_add.cpp (--nloops=N, --nthreads=N): Same.
	* atomic_xchg.cpp: Same.

2005-12-17  Martin Sebor  <sebor@roguewave.com>

	* 25.generate.cpp: Eliminated the checking of the value of the numeric
        argument, N, passed to the --nloops=N command line option, obviated by
	the implementation of restricted numeric arguments in the test driver
	in rev 357416.

2005-12-17  Martin Sebor  <sebor@roguewave.com>

	* cmdopt.cpp (cmdopts_t): Added minval_ and maxval_ for the lower
	and upper bound, respectively, of restricted numeric arguments.
	(rw_vsetopts): Enhanced to allow restricted numeric arguments
	to be specified.
	(rw_runopts): Handled restricted numeric argumments.

2005-12-17  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 0.cmdopts.cpp: New test exercising the rw_runopts() and rw_setopts()
	utility functions.

2005-12-17  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 0.inputiter.cpp: New test exercising the class template InputIter.

2005-12-17  Martin Sebor  <sebor@roguewave.com>

	* alg_test.h (RW_ASSERT): Used instead of the assert macro and removed
        the dependency on the <cassert> header.

2005-12-17  Martin Sebor  <sebor@roguewave.com>

	* testdefs.h (RW_ASSERT): New macro. Same as assert() but active
        regardless of NDEBUG.

2005-12-16  Martin Sebor  <sebor@roguewave.com>

	* 25.generate.cpp (rw_opt_no_generate, rw_opt_no_generate_n): Added new
	command line options to disable tests exercising the corresponding
	algorithms.

2005-12-16  Martin Sebor  <sebor@roguewave.com>

	* 25.generate.cpp (Size): Removed the definition of the class
	and replaced it with the template defined in alg_test.h (see
	rev 357263).

2005-12-16  Martin Sebor  <sebor@roguewave.com>

	* 25.fill.cpp: Simplified and exercised the fill_n() template
	specialized on user-defined Size argument. Re-introduced explicit
	instantiation directives to better exercise both templates.

2005-12-16  Martin Sebor  <sebor@roguewave.com>

	* alg_test.h (rw/_iterbase.h>: Included implementation header instead
	of the bloated <iterator> to reduce namespace pollution.
	(Size<T>): New class template used to exercise the fill_n, generate_n,
	and search_n algorithms.
	(RW_ALG_TEST_H_INCLUDED): Renamed include guard	to conform to the naming
	convention used in the test suite.
	(<rw/defs.h>): Removed an unnecessary/inappropriate include directive
	subsumed by <testdefs.h>.

2005-12-16  Martin Sebor  <sebor@roguewave.com>

	STDCXX-70
	* 21.string.push_back.mt.cpp: New test exercising the thread safety
	of the push_back() member function of basic_string (and indirectly,
	the thread safety of the member operator+=(value_type)).

2005-12-16  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 19.exceptions.mt.cpp: New test exercising the thread safety
	of the C++ Standard Library exception classes.

2005-12-16  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* atomic_add.cpp: New test exercising the __rw_atomic_preincrement
	and __rw_atomic_predecrement overloaded functions.
	* atomic_xchg.cpp: New test exercising the __rw_atomic_exchange
	overloaded functions.

i2005-12-16  Martin Sebor  <sebor@roguewave.com>

	STDCXX-3
	* rwthread.h: New header containing declarations of the test suite
	thread helpers.
	* rwthread.cpp: New source with definitions of the thread helpers.

2005-12-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 0.strncmp.cpp: New test exercising the rw_strncmp() overloads.
	* 0.valcmp.cpp: New test exercising the rw_valcmp() family of utility
	overloads.

2005-12-14  Martin Sebor  <sebor@roguewave.com>

	* valcmp.cpp (_RWSTD_SIZE_T): Replaced with size_t.
	(_rw_cmp1): Changed the type of the local index from int to size_t
	to avoid casts and corrected the handling of the CMP_RETOFF bit.
	(_rw_cmp2): Same.
	(_rw_cmp4): Same.
	(_rw_cmp8): Same.

2005-12-09  Martin Sebor  <sebor@roguewave.com>

	* list.cpp (operator<<): Added comments.
	(main): Replaced endl with '\n' for efficiency.

2005-12-08  Martin Sebor  <sebor@roguewave.com>

	* vector (swap): Optimized for unequal allocators.

2005-12-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-86
	* numeric (__adjacent_difference): Renamed __value to __val in order
	to avoid MSVC 8.0 error C4980: '__value': use of this keyword requires
	/clr:oldSyntax command line option.
	* _algobase.h (fill, fill_n): Ditto.
	* vector (_C_fill): Ditto. While there, also replaced const references
	to bool in function arguments with ordinary values.

2005-12-07  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.generate.cpp: New test exercising lib.alg.generate. Also
	exercises STDCXX-83.

2005-12-07  Martin Sebor  <sebor@roguewave.com>

	STDCXX-84
	* _algobase.h (fill_n): Removed the assumption that the Size argument
	is modifiable and can be predecremented and instead converted it to
	ptrdiff_t and manipulated the converted object.

2005-12-07  Martin Sebor  <sebor@roguewave.com>

	STDCXX-83
	* algorithm (generate_n): Removed the assumption that the Size argument
	is modifiable and can be predecremented, and instead converted it to
	ptrdiff_t and manipulated the converted object.

2005-12-06  Anton Pevtsov  <antonp@moscow.vdiweb.com>
            Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.find.first.cpp: New test exercising lib.alg.find.first.of.

2005-12-06  Martin Sebor  <sebor@roguewave.com>

	* mapfile.gcc: Exported additional symbols.

2005-12-05  Martin Sebor  <sebor@roguewave.com>

	* 2.smartptr.shared.cpp: New test exercising tr.util.smartptr.shared.
	* 2.smartptr.weak.cpp: New test exercising tr.util.smartptr.weak.

2005-12-05  Martin Sebor  <sebor@roguewave.com>

	STDCXX-28
	* _smartptr.h: An icomplete implementation of tr.util.smartptr.

2005-12-05  Martin Sebor  <sebor@roguewave.com>

	* typeinfo.cpp: Corrected preprocessor guards around definitions
	of class bad_typeid member functions.

2005-12-05  Anton Pevtsov <antonp@moscow.vdiweb.com>

	* 25.find.end.cpp (do_test): Eliminated memory leaks.

2005-12-05  Martin Sebor  <sebor@roguewave.com>

	* 25.find.end.cpp (run_tests): Corrected a typo introduced in r352022.

2005-12-05  Martin Sebor  <sebor@roguewave.com>

	* 25.find.cpp: Exercised the algorithm's ability to return an iterator
	pointing to the first (rather than the second or any other) in a series
	of duplicate elements in the subject sequence.

2005-12-03  Martin Sebor  <sebor@roguewave.com>

	* 25.find.end.cpp: Changed copyright notice over to Apache.

2005-12-03  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-4
	* 25.find.end.cpp: New test exercising lib.alg.fin.end.

2005-12-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.find.cpp: New test exercising lib.alg.find.

2005-12-02  Martin Sebor  <sebor@roguewave.com>

	* GLOBAL_BAD_TYPEID.cpp: Eliminated a conflicting definition of
	the class in the global scope (<typeinfo> might define it there
	and introduce it into namespace via a using declaration, as, for
	instance, MSVC 7 does).

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-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	STDCXX-72
	* 25.adjacent.find.cpp: Enhanced to exercise the predicate form
	of the algorithm.

2005-12-02  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	* 25.copy.cpp: New test exercising lib.alg.copy.

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>

	* STD_BAD_TYPEID.cpp: Guarded the conditional definition
	of std::terminate against compiling with anything other
	than gcc 2.x.

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-12-01  Martin Sebor  <sebor@roguewave.com>

	* NEW_THROWS.cpp: Corrected a printf statement in conditionally
	compiled code.
	Simplified/corrected loop allocating large amounts of memory
	and explicitly #defined the config macro on test failure instead
	of relying on the infrastructure to do it.

2005-12-01  Martin Sebor  <sebor@roguewave.com>

	* BAD_ALLOC_ASSIGNMENT.cpp: Avoided defining std::terminate() unless
	compiling with gcc 2, the only compiler that might need it (when using
	the -fhonor-std option with a compiler and its runtime libraries that
	were compiled without the option).

2005-12-01  Martin Sebor  <sebor@roguewave.com>

	* RUNTIME_IN_STD.cpp: In preparation for fixing STDCXX-73 enhanced
	to #undef configuration macros (presumably) #defined due to the
	false negative results of the respective configuration tests.
	Printed out comments with the number of runtime library symbols
	examined, the number of symbols found to be defined in namespace
	std, in the global namespace, in both, and in neither (likely as
	a result of a false negative test result).

2005-12-01  Martin Sebor  <sebor@roguewave.com>

	* UNAME.cpp: Corrected a typo in conditionally compiled code.

2005-12-01  Martin Sebor  <sebor@roguewave.com>

	* valcmp.h: Added comments for rw_strncmp() overloads.

2005-12-01  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (_rw_bufcat): Increased the size of the buffer and added
	a trailing guard to detect writes past the end (and other types of
	memory corruption).
	(_rw_vfprintf): Avoided using a statically allocated buffer (might
	be freed by _rw_bufcat).

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-29  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.fill.cpp: New test exercising lib.alg.fill.

2005-11-28  Anton Pevtsov  <antonp@moscow.vdiweb.com>

	* runexamples.wsf: Renamed to...
	* runall.wsf: ...this.
	* generate.js: Invoked runall.wsf instead of runexamples.wsf.
	* makelog.wsf: Included runall.wsf instead of runexamples.wsf.

2005-11-28  Martin Sebor  <sebor@roguewave.com>

	* generate.bat: Set the svn:eol-style property to native.
	* config.js: Same.
	* configure.wsf: Same.
	* data.js: Same.
	* generate.js: Same.
	* generate.wsf: Same.
	* makelog.wsf: Same.
	* msvc-config.js: Same.
	* msvc-config_classes.js: Same.
	* runexamples.wsf: Same.
	* runexe.wsf: Same.
	* summary.js: Same.
	* update.wsf: Same.
	* utilities.js: Same.

2005-11-25  Martin Sebor  <sebor@roguewave.com>

	STDCXX-70
	* string (basic_string): Took into account the fact that the value
	of the reference count when read unguarded may be negative (-1) on
	SPARC V8 when it's being manipulated (incremented or decremented)
	by another thread, and cast it to an unsigned type in expressions
	involving relational operators such as < and <=.
	(begin): Same.
	(append): Same.
	* string.cc (operator=): Same.
	(replace): Same.
	(__replace_aux): Same.

2005-11-25  Martin Sebor  <sebor@roguewave.com>

	* makefile.rules: Disabled the %: %.h pattern rule and added
	the .h suffix to the list of .SUFFIXES.

2005-11-25  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp: (test_signal): Exercised width and justification.

2005-11-25  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp: (_rw_vfprintf): Flushed out stream in case it isn't
	line-buffered (e.g., when stderr is determined not to refer to a
	terminal device, for example after it has been redirected to a file).
	(_rw_fmtsignal): Used _rw_fmtstr() to format the signal name to take
	advantage of the string justification capabilities of the function.

2005-11-25  Martin Sebor  <sebor@roguewave.com>

	STDCXX-3
	* alg_test.cpp: New file containing the definitions of class X members.

2005-11-25  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-5
	* generate.bat: New Windows batch file to invoke the Windows build
	infrastructure. Invoke like so:
	> generate /BUILDDIR:<build-dir> /CONFIG:VC71
	* configure.wsf: New Windows Script Host (WSH) file implementing
	the Windows configuration infrastructure.
	* generate.wsf: New WSH file implementing the part of the Windows
	infrastructure responsible for generating Visual Studio projects
	and solution(s).
	* generate.js: New JScript file invoked from the WSH file above.
	* runexamples.wsf: New helper WSH file for the batch invocation
	of example programs.
	* runexe.wsf: New helper WSH file used by the above to invoke
	a single example or test program.
	* update.js: New JScript file to update an already generated
	Visual Studio solution and add new projects to it.
	* config.js: New helper JScript file.
	* msvc-config_classes.js: New MSVC-specific JScript helper file
	containing definitions of classes and their members.
	* data.js: New helper JScript file containing definitions of data.
	* msvc-config.js: New MSVC-specific JScript helper file.
	* utilities.js: New helper JScript file containing definitions
	of non-member functions.
	* summary.js: New helper JScript file to generate a summary build
	log in HTML format.
	* makelog.wsf: New helper WSH file invoked to generate a summary
	build log.
	* fun_present_check.cpp: New helper C++ source file used by 
	the configuration infrastructure to check for the presence
	of library functions in dependent libraries.

2005-11-25  Martin Sebor  <sebor@roguewave.com>

	* adjacent_find.cpp: Improved names and added comments for clarity.
	Added a warning pointing out that the predicate overload is not being
	exercised by the test (see stdcxx-72).
	Removed explicit instantiation obviated by implicitly instantiating
	the algorithm on iterator types of all supported categories.

2005-11-25  Martin Sebor  <sebor@roguewave.com>

	* alg_test.h (ConstRandomAccessIter): Added the correct operator[],
	replacing the one inherited from the base class (which returns
	a non-const reference).

2005-11-25  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX_4
	* 25.mismatch.cpp: New test exercising lib.mismatch.

2005-11-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-71
	* cerrno: Avoided #undefining errno.
	* errno.h: Same.
	* _defs.h: Used quotes instead of pointy brackets in the defintion
	of the _RWSTD_ANSI_C_ERRNO_H and _RWSTD_CERRNO macros to prevent
	the errno macro from expanding.

2005-11-23  Martin Sebor  <sebor@roguewave.com>

	* 19.cerrno.cpp: New test exercising lib.errno, the contents
	of the header <cerrno>.

2005-11-22  Martin Sebor  <sebor@roguewave.com>

	* cmdopt.cpp (rw_runopts): Enhanced options specified using the "#"
	character (such as "|-foo#") and allowed them to be followed by the
	quals sign and a numeric argument, such as --foo=123.

2005-11-22  Martin Sebor  <sebor@roguewave.com>

	* 25.for.each.cpp: Corrected the name of the file in a comment.

2005-11-22  Martin Sebor  <sebor@roguewave.com>

	* alg_test.h (ConstFwdIter): Passed the expected number of arguments
	to the base class ctor.
	* for_each.cpp: Enhanced to exercise InputIterators and other
	non-mutable iterators.

2005-11-19  Martin Sebor  <sebor@roguewave.com>

	* GNUmakefile.tst: Removed the path component from the names of sections
	of the C++ standard (e.g., algorithms) to allow them to be used as the
	names of targets representing the tests residing in such directories.

2005-11-19  Martin Sebor  <sebor@roguewave.com>

	* makefile.rules: Disabled implicit rules for .c and .cc files in order
	to prevent such files under the include/ directory (e.g., istream.c and
	istream) form being compiled due to being listed as dependencies of .cpp
	files.

2005-11-18  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp: (do_test): Tightened up and detected error cases.
        (test_paramno): Added a couple of test cases.

2005-11-18  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	* 25.equal.cpp: New test exercising lib.alg.equal.

2005-11-18  Martin Sebor  <sebor@roguewave.com>

	* _list (C_get_node): Renamed a function argument to eliminate
	an MSVC 8.0 compilation error. __is_empty is apparently an MSVC
	reserved symbol new in 8.0 even though it's not documented here:
	http://msdn2.microsoft.com/en-us/library/2e6a4at9.aspx.
	(_C_init): Same.

2005-11-18  Martin Sebor  <sebor@roguewave.com>

	* any.cpp (rw_any_t): Used memset instead of default-initialization
	in the ctor initializer list in all ctors to work around a SunPro
	5.{3,4} bug.
	(type_name): Removed the redundant "signed" from type names.
	Added a missing _RWSTD_NO_LONG_DOUBLE guard.
	(tostr): Handled all enumerators in the switch to silence
	the gcc warning: enumeration value not handled in switch.

2005-11-18  Martin Sebor  <sebor@roguewave.com>

	* BAD_ALLOC_ASSIGNMENT.cpp: Factored code duplicated in all
	the other tests into this one and simply #included this file.
	* BAD_ALLOC_COPY_CTOR.cpp: Moved all code from this file to
	BAD_ALLOC_ASSIGNMENT.cpp and #included the latter after
	#defining the necessary macros.
	* BAD_ALLOC_DEFAULT_CTOR.cpp: Same.
	* BAD_ALLOC_DTOR.cpp: Same.
	* BAD_ALLOC_WHAT.cpp: Same.
	* BAD_CAST_ASSIGNMENT.cpp: Same.
	* BAD_CAST_COPY_CTOR.cpp: Same.
	* BAD_CAST_DEFAULT_CTOR.cpp: Same.
	* BAD_CAST_DTOR.cpp: Same.
	* BAD_CAST_WHAT.cpp: Same.
	* BAD_EXCEPTION_ASSIGNMENT.cpp: Same.
	* BAD_EXCEPTION_COPY_CTOR.cpp: Same.
	* BAD_EXCEPTION_DEFAULT_CTOR.cpp: Same.
	* BAD_EXCEPTION_DTOR.cpp: Same.
	* BAD_EXCEPTION_WHAT.cpp: Same.
	* BAD_TYPEID_ASSIGNMENT.cpp: Same.
	* BAD_TYPEID_COPY_CTOR.cpp: Same.
	* BAD_TYPEID_DEFAULT_CTOR.cpp: Same.
	* BAD_TYPEID_DTOR.cpp: Same.
	* BAD_TYPEID_WHAT.cpp: Same.
	* EXCEPTION_ASSIGNMENT.cpp: Same.
	* EXCEPTION_COPY_CTOR.cpp: Same.
	* EXCEPTION_DEFAULT_CTOR.cpp: Same.
	* EXCEPTION_DTOR.cpp: Same.
	* EXCEPTION_WHAT.cpp: Same.

2005-11-17  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp (test_signal): New function exercising
	the "%{K}" format specifier for the formatting of signal names.

2005-11-17  Martin Sebor  <sebor@roguewave.com>

	* FOR_LOCAL_SCOPE.cpp: Deleted an unreliable test (some compilers,
	such as gcc 2 or Intel C++ 8 on Windows) only issue a warning but
	do not actually reject the test.
	* NO_FOR_LOCAL_SCOPE.cpp: Implemented the same functionality as
	above but as a negative test, i.e., one which is considered passing
	on failure to compile.

2005-11-17  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.for.each.cpp: New test exercising lib.alg.foreach.

2005-11-17  Martin Sebor  <sebor@roguewave.com>

	STDCXX-3
	* alg_test.h: New header with definitions of helpers used
	by algorithm tests.

2005-11-17  Anton Pevtsov  <antonp@moscow.vdiweb.com>
	    Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 25.adjacent.find.cpp: New test exercising lib.alg.adjacent.find.

2005-11-17  Martin Sebor  <sebor@roguewave.com>

	* strstream.cpp: Output line numbers and the numbers of extracted
	characters to make example more interesting.
	* strstream.out: Changed to match the existing output.

2005-11-16  Martin Sebor  <sebor@roguewave.com>

	* istream.cc: Removed HP copyright notice (HP had nothing to do with
	this file).

2005-11-16  Martin Sebor  <sebor@roguewave.com>

	STDCXX-59
	STDCXX-67
	* istream.cc (getline): Renamed function formal arguments for clarity.
	Prevented the function from writing past the end of a zero-size buffer
	(thus reverting a partial regression introduced in revision 328966).

2005-11-14  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp (do_test): Removed the formatting of arguments from
	diagnostic messages to avoid having to deal with ill-formed conversions
	such as from member pointers to integers.
	(test_memptr): Exercised the formatting of pointers to members.
	(test_width_specific_int): Conditionalized for the absence of long long
	support.
	(test_errno): Exercised the "%{#*m}" format specification.
	Changed the text of warning messages.

2005-11-14  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp: (_rw_fmtpointer): Implemented the formatting of all
	pointer types (ordinary, function, and member) in a consistent way
	and without relying on _rw_fmtllong.
	(_rw_fmtptr): Called _rw_fmtpointer.
	(_rw_fmtfunptr): Same.
	(_rw_fmtmemptr): Same.
	(_rw_vfprintf): New implementation function for rw_fprintf and
	rw_printf. Called OutputDebugString() on Windows to write the string
	to the debugger window.
	(rw_fprintf): Called _rw_vfprintf.
	(rw_printf): Same.
	(rw_vasnprintf): Used __builtin_va_copy only with gcc 3.x and better
	(prior versions	do not implement the built-in).
	Renamed all static functions according to the naming convention,
	i.e., so that each name starts with an underscore.

2005-11-11  Martin Sebor  <sebor@roguewave.com>

	* valcmp.cpp (rw_dblcmp): Hacked around a missing 64-bit integer
	type (e.g., when long long support has been disabled).

2005-11-11  Martin Sebor  <sebor@roguewave.com>

	* 18.limits.traps.cpp: Set the svn:keywords property to Id.

2005-11-11  Martin Sebor  <sebor@roguewave.com>

	* Avoided the use of the #ifdef/#ifndef syntax with non-config
	macros to prevent the configuration infrastructure from treating
	them as potential dependencies.

2005-11-11  Martin Sebor  <sebor@roguewave.com>

	* 18.limits.traps.cpp: Used Structured Exception Handling on Windows.
	Removed the unnecessary SIGTRAP handler (integer division by zero
	typically causes SIGFPE).

2005-11-11  Martin Sebor  <sebor@roguewave.com>

	STDCXX-57
	* extern_template_before_definition_imp.cpp: New test (a dependency
	of EXTERN_TEMPLATE_BEFORE_DEFINITION.cpp), missed in rev 331866.

2005-11-11  Martin Sebor  <sebor@roguewave.com>

	* stringstream.cpp: Replaced uses of std::endl with '\n' for efficiency.

2005-11-11  Martin Sebor  <sebor@roguewave.com>

	* NO_INT_TRAPS.cpp: Used Structured Exception Handling on Windows
	to prevent it from popping up a dialog box for the arithmetic
	exception triggered as a result of dividing by zero.

2005-11-10  Martin Sebor  <sebor@roguewave.com>

	STDCXX-65
	* limits: Used _RWSTD_NO_INT_TRAPS to define numeric_limits::traps
	for all integral T.
	* NO_INT_TRAPS.cpp: Used division by zero to trigger an arithmetic
	trap on platforms where integer trapping is implemented and enabled.

2005-11-09  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 18.limits.traps.cpp: New test exercising numeric_limits::traps.

2005-11-09  Martin Sebor  <sebor@roguewave.com>

	* SIZE_T.cpp: Initialized all local variables before copying them
	to function arguments to prevent MSVC 8.0 debugging assertions
	when the /RTC1 option (Run-Time Error Checks) is used.

2005-11-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-57
	* _defs.h: Defined _RWSTD_NO_EXPLICIT_INSTANTIATION_BEFORE_DEFINITION
	whenever _RWSTD_NO_EXTERN_TEMPLATE_BEFORE_DEFINITION is #defined.

2005-11-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-57
	* instantiation_before_definition.h: Added a declaration of an
	unreferenced member function to prevent the instantiation of the
	(former) refererrent from implicitly instantiating it and causing
	a false positive.
	* instantiation_before_definition.cc: Added a definition of the member.
	* EXTERN_TEMPLATE_BEFORE_DEFINITION.cpp: New test to detect whether
	an extern template declaration corresponding to the explicit
	instantiation directive for the same template can appear lexically
	before the definition of the template (or members of class template).

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-11-04  Martin Sebor  <sebor@roguewave.com>

	STDCXX-63
	* ostream1.cpp (main): Conditionalized so as not to assume
	that the long long extension is implemented or enabled.

2005-11-04  Martin Sebor  <sebor@roguewave.com>

	* _money_put.cc (_C_put): Eliminated gcc -O warning: variable
	might be used uninitialized in this function.

2005-11-03  Martin Sebor  <sebor@roguewave.com>

	* Set the svn:eol-style property to native.

2005-11-01  Martin Sebor  <sebor@roguewave.com>

	STDCXX-61
	* _mutex.h (__rw_atomic_preincrement): Fixed an egregious typo
	in a reinterpet_cast from a reference to pointer not caught by
	MSVC.
	(__rw_atomic_predecrement): Same.
	(__rw_atomic_exchange): Same.

2005-10-28  Martin Sebor  <sebor@roguewave.com>

	* UNISTD_DECL.cpp: Hardcoded the definition of ssize_t for Windows which
	doesn't define the type (the SDK defines the equivalent type as SSIZE_T
	but the header may not be available in the base kit).

2005-10-27  Martin Sebor  <sebor@roguewave.com>

	STDCXX-59
	* istream.cc (getline): On failure, stored the NUL character
	in the first location of the array as required by DR 243.
	Prevented the function from overwriting extracted data or storing
	the NUL character past the end of buffer.

2005-10-27  Martin Sebor  <sebor@roguewave.com>

	STDCXX-60
	* istream.cc (get): On failure, stored the NUL character in the first
	location of the array as required by DR 243.

2005-10-27  Martin Sebor  <sebor@roguewave.com>

	STDCXX-58
	* EXPORT.cpp: Linked with EXPORT_KEYWORD.o, renamed templates to prevent
	compilers such as Compaq C++ from finding symbols defined in other tests
	when looking through a template repository.
	* EXPORT_KEYWORD.cpp: Renamed template.

2005-10-27  Martin Sebor  <sebor@roguewave.com>

	* GNUmakefile.cfg: Used the wildcard function instead of invoking
	ls via $(shell) for efficiency and alphabetically sorted source
	files. Used the := operator instead of the ordinay = for efficiency.

2005-10-27  Martin Sebor  <sebor@roguewave.com>

	* BAD_ALLOC_DTOR.cpp: Introduced additional class and virtual
	inheritance to thwart aggressive optimizers' efforts to eliminate
	the tested class' dtor.
	* BAD_CAST_DTOR.cpp: Implemented in terms of BAD_ALLOC_DTOR.cpp
	to eliminate code duplication and reduce the maintenance effort.
	* BAD_TYPEID_DTOR.cpp: Same.
	* EXCEPTION_DTOR.cpp: Same.
	* TYPE_INFO_DTOR.cpp: Same as BAD_ALLOC_DTOR.cpp.

2005-10-26  Martin Sebor  <sebor@roguewave.com>

	* DIV_OVERLOADS.cpp (main): Avoided invoking div() with the argument
	of 0 to prevent division by zero errors at runtime (doh!)

2005-10-24  Martin Sebor  <sebor@roguewave.com>

	STDCXX-15
	* BAD_ALLOC_ASSIGNMENT.cpp: Consistently and in a uniform way avoided
	executing the body of main unless explicitly requested by specifying
	at least one command line argument. Done to foil aggressive optimizers
	and to prevent them from eliminating the code.
	* BAD_ALLOC_COPY_CTOR: Same.
	* BAD_ALLOC_DEFAULT_CTOR: Same.
	* BAD_ALLOC_DTOR: Same.
	* BAD_ALLOC_WHAT: Same.
	* BAD_CAST_ASSIGNMENT: Same.
	* BAD_CAST_COPY_CTOR: Same.
	* BAD_CAST_DEFAULT_CTOR: Same.
	* BAD_CAST_DTOR: Same.
	* BAD_CAST_WHAT: Same.
	* BAD_EXCEPTION_ASSIGNMENT: Same.
	* BAD_EXCEPTION_COPY_CTOR: Same.
	* BAD_EXCEPTION_DEFAULT_CTOR: Same.
	* BAD_EXCEPTION_DTOR: Same.
	* BAD_TYPEID_ASSIGNMENT: Same.
	* BAD_TYPEID_COPY_CTOR: Same.
	* BAD_TYPEID_DEFAULT_CTOR: Same.
	* BAD_TYPEID_DTOR: Same.
	* BAD_TYPEID_WHAT: Same.
	* EXCEPTION_ASSIGNMENT: Same.
	* EXCEPTION_COPY_CTOR: Same.
	* EXCEPTION_DEFAULT_CTOR: Same.
	* EXCEPTION_DTOR: Same.
	* EXCEPTION_WHAT: Same.
	* TYPE_INFO_DTOR: Same.

2005-10-19  Martin Sebor  <sebor@roguewave.com>

	* _mutex.h: Replaced copyright notices inadvertently ovewritten
	in a previous commit.

2005-10-19  Martin Sebor  <sebor@roguewave.com>

	* typeinfo: Corrected a preprocessor conditional guarding an EDG
	specific #pragma recognized by the vanilla EDG front end, Compaq
	C++, and SGI MIPSpro but not HP aCC 6.x or Intel C++ (which also
	use the same front end).

2005-10-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-56
	* deque.cc (_C_assign_n): Renamed a local variable from __it to __ix
	to silence gcc -Wshadow warnings.
	(_C_assign_range): Same.
	* vector.cc (_C_assign_range): Renamed a local to silence gcc -Wshadow
	warnings.
	(_C_insert_range): Same.

2005-10-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-55
	* _specialized.h (__rw_new_capacity): Silenced a gcc -Wshadow warning
	on IRIX.
	* string (__rw_new_capacity): Same.

2005-10-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-54
	* _mutex.h: Cast -1 to unsigned in order to silence gcc warnings
	on IRIX: argument passing of negative value `-1' to `unsigned int'.

2005-10-19  Martin Sebor  <sebor@roguewave.com>

	* _config.h: Disabled the extern template extension for gcc 2.x which
	doesn't implement it but doesn't fail the config test and only issues
	a warning: ANSI C++ forbids the use of `extern' on explicit
	instantiations.
	Defined the  _RWSTD_SGI_MIPSPRO macro when SGI MIPSpro is detected
	as the compiler.

2005-10-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-49
	* gcc.config: Removed -fsquangle for gcc > 2 as the option is not
	supported there.
	Removed the -pthread option on IRIX since it's not recognized there.

	STDCXX-50
	* gcc.config: Added -Wl,-woff,84 to LDFLAGS on IRIX to silence
	ld warnings about libraries not used to resolve any symbol.

2005-10-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-53
	* rwstdmessages.msg: Added a final newline to prevent a gencat error
	on IRIX: set 2 msg 3: Unexpected quote ().

2005-10-18  Martin Sebor  <sebor@roguewave.com>

	* makefile.common: Added *.msg files back to ALL_FILES (regression
	introduced in rev 292348).
	Streamlined and made consitent the computation of ALL_FILES.
	Replaced vestiges of hardwired .s and .S suffixes with $(AS_EXT).

2005-10-18  Martin Sebor  <sebor@roguewave.com>

	* makefile.rules: Removed logging.
	Simplified the rule for the %.out target.
	Corrected the $(DEPENDDIR)/%.d target and its dependencies
	(broken in rev 292586).

2005-10-14  Martin Sebor  <sebor@roguewave.com>

	* _config.h: Replaced an unreliable preprocessor conditional
	with a simpler one using the _RWSTD_EDG_ECCP macro.
	Introduced a new convenience macro: _RWSTD_REVERSE_ITERATOR().

2005-10-14  Martin Sebor  <sebor@roguewave.com>

	* _config.h: Introduced the _RWSTD_EDG_ECCP macro to unambiguously
	identify the vanilla EDG eccp front end demo and to distinguish it
	from compilers such as Compaq C++, Intel C++, or SGI MIPSpro that
	use the front-end and (sometimes) also #define __EDG__.
	Removed the hardcoded _RWSTD_CRLF_CONVENTION macro (superseded
	by the new _RWSTD_NEWLINE_... set of autoconfigured macros).
	* fstream (_C_crlf_extern_count): Replaced the _RWSTD_CRLF_CONVENTION
	macro with the new _RWSTD_NEWLINE_... set of macros. Replaced a loop
	with the potentially more efficient call to traits::find().
	(_C_crlf_intern_count): Same.

2005-10-14  Martin Sebor  <sebor@roguewave.com>

	* NEWLINE.cpp: New test to determine the newline character sequence,
	or one of <CR>, <CR><LF>, or <LF>.

2005-10-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-47
	* cstdlib (abs): Moved the definition of the int overload from
	namespace std to the global scope and introduced it into std
	via a using declaration for consistency with the rest of the
	C functions declared in the same block. Guarded said definition
	with the _RWSTD_NO_ABS_INT config macro to avoid colliding with
	the same function in <cmath>.

2005-10-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-46
	* cstdlib (div): Guarded definitions of the div(long,long) overload
	with the _RWSTD_NO_DIV_LONG config macro to prevent errors due to
	multiple definitions of the function when it's also defined in
	the system <stdlib.h> header.

2005-10-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-46
	* DIV_OVERLOADS.cpp: New config test to determine the presence
	of the C++ overloads of the div() function in <stdlib.h> and
	the rest of the C standard library headers.

2005-10-13  Martin Sebor  <sebor@roguewave.com>

	STDCXX-48
	* cwchar (wmemcpy): Incremented the source pointer in every
	iteration of the loop.

2005-10-13  Martin Sebor  <sebor@roguewave.com>

	STDCXX-46
	* 26.c.math.cpp: New test exercising lib.c.math.

2005-10-13  Martin Sebor  <sebor@roguewave.com>

	* time_manip.cpp (time_get_manip): Made ctor explicit.
	(time_put_manip): Same.
	(get_time): Explicitly invoked the time_get_manip ctor instead
	of relying on implicit user-defined conversion.
	(put_time): Same.
	(main): Added a missing std:: qualification.
	Improved error message and exited with a non-zero status
	on error.

2005-10-13  Martin Sebor  <sebor@roguewave.com>

        * money_manip.cpp: New example program demonstrating the implementation
        of user-defined manipulators (using the std::__rw_smanip template) for
        the convenient extraction and insertion of monetary values.

2005-10-13  Martin Sebor  <sebor@roguewave.com>

	* _money_put.cc (do_put): Eliminated the assumption that non-virtual
	member functions of both the local and international specializations
	of the moneypunct facet have identical behavior and are interchangeable
	(i.e., that the static types of the facets do not cache any data).
	(_C_put): Same.

2005-10-12  Martin Sebor  <sebor@roguewave.com>

	* time_manip.cpp (put_time): Added a missing template declaration.

2005-10-12  Martin Sebor  <sebor@roguewave.com>

	* time_manip.cpp: New example program demonstrating the implementation
	of user-defined manipulators (using the std::__rw_smanip template) for
	the convenient extraction and insertion of std::tm values.

2005-09-30  Martin Sebor  <sebor@roguewave.com>

	STDCXX-45
	* mipspro.config: Added the -64 option for wide configurations.
	Also replaced the = operator with := for better efficiency.

2005-09-30  Martin Sebor  <sebor@roguewave.com>

	STDCXX-44
	* mipspro.config (LDFLAGS): Used the undocumented -LANG:std=off option
	(presumably the correct spelling of -LANG:non-std) to prevent linking
	with the native implementation of the C++ Standard Library.

2005-09-29  Martin Sebor  <sebor@roguewave.com>

	STDCXX-43
	* _mutex.h (__rw_atomic_preincrement): Eliminated a typo introduced
	in revision #292352 into code conditionally compiled on AIX with VAC++.

2005-09-29  Martin Sebor  <sebor@roguewave.com>

	* makefile.rules: Optimized the inclusion of dependencies to just
	those needed (rather than all of them) when MAKECMDGOALS is non-empty
	(i.e., when at least one goal has been specified on the command line).
	Removed .c from .SUFFIXES.

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-29  Martin Sebor  <sebor@roguewave.com>

	STDCXX-43
	* _mutex.h (__rw_atomic_preincrement): Removed the definition of
	the duplicate overload for long in code conditionally compiled
	for i386 inadvertently left in by rev 292352.
	(__rw_atomic_predecrement): Same.
	(__rw_atomic_exchange): Same.

2005-09-28  Martin Sebor  <sebor@roguewave.com>

	STDCXX-41
	* README: Documented new target names introduced in revsion 292372.

2005-09-28  Martin Sebor  <sebor@roguewave.com>

	STDCXX-41
	* GNUmakefile: Renamed targets for clarity and consistency.
	Removed dependencies from targets (they are handled in the
	recursively processed makefiles).

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>

	* GNUmakefile: Used the := operator instead of = in expensive
	assignments (such as those involving the $(shell) function for
	efficiency.
	* GNUmakefile.exm (SRCDIRS): Explicitly listed source directories.
	Adjusted indentation in conditionals and removed redundant spaces.
	* GNUmakefile.tst (SUBDIRS): Replaced with SRCDIRS and simplified
	the definition of the variable to avoid the expensive $(shell)
	function.
	(OMIT_SRCS): Simplified and avoided using the $(shell) function.
	(VPATH): Avoided unnecessarily appending to the variable.
	* makefile.common: Used the := operator instead of =.
	(ALL_FILES): Avoided using the expensive $(shell) function.
	(VPATH): Defined to $(SRCDIRS) instead of using	$(shell) to do
	the same thing.

2005-09-28  Martin Sebor  <sebor@roguewave.com>

	* GNUmakefile.cfg: Used printf instead of echo to append test output
	to the config header in case the output contains embedded escape
	sequences such as "\n" etc.

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-27  Martin Sebor  <sebor@roguewave.com>

	STDCXX-42
	* bitset (to_string): Corrected the preprocessor conditional guarding
	the definition of the member function to be the same as the one used
	to guard its declaration in the body of the template.

2005-09-21  Martin Sebor  <sebor@roguewave.com>

	STDCXX-39
	* gcc.config: Replaced -pthreads with -mthreads on Cygwin.
	Defined AS_EXT to .s on the same platform.

2005-09-21  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* 22.locale.num.get.cpp: New test exercising the num_get facet.

2005-09-21  Martin Sebor  <sebor@roguewave.com>

	* valcmp.cpp (rw_ldblcmp): Implemented in terms of absolute
	and relative errors instead of naively using memcmp().

2005-09-21  Martin Sebor  <sebor@roguewave.com>

	* GNUmakefile.rwt: Set SRCDIRS correctly and let makefile.common
	find all source files instead of doing it here.
	Removed an unnecessary -I option from INCLUDES.
	Replaced RWTESTSRCS and RWTESTOBJS with SRCS and OBJS (defined
	in makefile.common).
	Removed libstd from the all target since the librwtest archive
	doesn't	depend on it.
	Removed the unused RUNFLAGS.

2005-09-21  Martin Sebor  <sebor@roguewave.com>

	* makefile.common: Replaced a couple of invocations of the $(shell
	echo dirs/*.suffix) function with $(foreach d,dirs,$(wildcard
	d/*.suffix) for efficiency and correctness (when dirs is a list
	of two or more directories).

2005-09-21  Martin Sebor  <sebor@roguewave.com>

	STDCXX-38
	* INFINITY.cpp: Moved declarations of locals above the point of their
	use (doh!) thus fixing a regression introduced into conditionally
	compiled code in the previous commit (rev 290491).

2005-09-20  Martin Sebor  <sebor@roguewave.com>

	* testdefs.h: Added #definitions of _RWSTD_PRI* macros (mirroring
	a subset of the C99 PRI* macros).

2005-09-20  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (libstd_vasnprintf): Extended the %{m} specifier to handle
	width as the errno value (instead of using the errno variable value).

2005-09-20  Martin Sebor  <sebor@roguewave.com>

	STDCXX-38
	* INFINITY.cpp: Avoided floating point arithmetic on denormalized
	numbers when trapping is enabled (i.e., _RWSTD_NO_DBL_TRAPS is not
	#defined).

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 3)
	* extern_function_template.cpp: Renamed...
	* extern_function_template_imp.cpp: ...to this.
	* EXTERN_FUNCTION_TEMPLATE.cpp: Changed dependency on the above.

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-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-25
	* string (insert): Added overloads for string::const_pointer
	to detect insertion of (substrings of) self.

2005-09-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-26
	* libc_decl.sh: On Solaris, used the POSIX basename in /usr/xpg4/bin/
	rather than the one in /usr/bin to avoid interpreting the suffix in
	a special way. 

2005-09-18  Martin Sebor  <sebor@roguewave.com>

	* 22.locale.num.put.cpp: New test exercising the num_put facet.

2005-09-18  Martin Sebor  <sebor@roguewave.com>

        * snprintfa.cpp (rw_vasnprintf): Unconditionally cleared the supplied
        character buffer by inserting '\0' into the first position to make
        sure the output is always NUL-terminated.
        (rw_ansprintf): Renamed to rw_asnprintf (typo).
        (rw_fmtsignal): New function to format a signal name.
        (libstd_vasnprintf): Called rw_fmtsignal in response to the %{K}
        format specifier.

2005-09-18  Martin Sebor  <sebor@roguewave.com>

	* valcmp.h (rw_equal): New function template and overloads thereof
	for the three floating point types.
	* valcmp.cpp: Renamed file scope statics according to the naming
        convention for such things (i.e., _rw_xxx).

2005-09-18  Martin Sebor  <sebor@roguewave.com>

	STDCXX-3
	* any.h: New. Definition of the rw_any_t helper class.
	* any.cpp: New. Definitions of the rw_any_t class member functions.

2005-09-18  Martin Sebor  <sebor@roguewave.com>

	* opt_lines.h: Set the svn:keywords Id property and changed
	the copyright notice.
	* opt_lines.cpp: Same.
	* opt_trace.h: Same.
	* opt_trace.cpp: Same.
	* opt_types.h: Same.
	* opt_types.cpp: Same.

2005-09-18  Martin Sebor  <sebor@roguewave.com>

        STDCXX-3
        * localedef.h: New. Declarations of helper functions to invoke
        the stdcxx localedef and locale utilities.
        * localedef.cpp: New. Implementation of the above.

2005-09-18  Martin Sebor  <sebor@roguewave.com>

	* file.h: New. Declarations of testsuite file I/O helper functions.
	* file.cpp: New. Implementation of the same.

2005-09-18  Martin Sebor  <sebor@roguewave.com>

	STDCXX-3
	* environ.h: New. Declaration of the rw_putenv() helper function
	for seeting one or more environment variables in a portable way.
	* environ.cpp: New. Implementation of the same.

2005-09-18  Martin Sebor  <sebor@roguewave.com>

	STDCXX-3
	* system.h: New. Declaration of the rw_system() convenience function
	taking a variable number of arguments and invoking system().
	* system.cpp. New. Implementation of the above.

2005-09-18  Martin Sebor  <sebor@roguewave.com>

	* driver.cpp: Removed _rw_opt_no_stdout, _rw_opt_verbose, and
	_rw_opt_compat and replaced each with calls to the respective command
	line option handler with the special arguments 1, and 0.
	(_rw_setopt_verbose): Renamed to _rw_opt_verbose and allowed the handler
	to be called in "query mode" to retrieve the state of the option.
	(_rw_setopt_compat): Renamed to _rw_opt_compat and implemented query
	mode.
	(_rw_setopt_stdout): Renamed to _rw_opt_no_stdout and implemented
	query mode.
	(_rw_use_color): New function. Returns 1 when colorized output can
	and should be used.
	(_rw_opt_quiet): New handler for the -q|--quiet command line options.
	(_rw_vissue_diag): New function called to unconditionally issue
	a diagnostic.
	(_rw_vdiag): Factored out code into _rw_vissue_diag for readability
	and called the function to issue a diagnostic.
	(rw_vtest): Used color in the summary table.

2005-09-18  Martin Sebor  <sebor@roguewave.com>

	* opt_diags.h: Set the svn keywords Id property.
	Increased the size of the buffer for escape sequences.
	* opt_diags.cpp: Set the svn keywords Id property.
	Initialized previously uninitialized data members.
	(_rw_setopt_diags): Checked for negative (unused) indices and avoided
	using them to dereference array elements.

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-4
	* 0.printf.cpp: New test exercising the rw_printf family of functions.

2005-09-15  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (rw_vasnprintf_c99): Corrected a typo in conditionally
	compiled code.
	(rw_quotechar): Silenced gcc warnings: comparison is always false
	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-09-15  Martin Sebor  <sebor@roguewave.com>

	* _config.h: Bumped up version number to 4.1.3.
	Enabled long long for Cygwin.

2005-09-14  Martin Sebor  <sebor@roguewave.com>

	STDCXX-3
	* opt_diags.h: New.
	* opt_diags.cpp: New. Definitions of functions for the processing
	of the --diags command line option.
	* opt_lines.h: New.
	* opt_lines.cpp: New. Definitions of functions for the processing
	of the --enable-line and --no-line command line options.
	* opt_trace.h: New.
	* opt_trace.cpp: New. Definitions of functions for the processing
	of the --trace and --severity command line options.
	* opt_types.h: New.
	* opt_types.cpp: New. Definitions of functions for the processing
	of the --enable-type and --no-type command line options.
	* cmdopt.cpp: Refactored. Moved the processing of specific command
	line options to separate files for better encapsulation.
	Eliminated memory corruption when the cmdopts array is reallocated.
	Replaced bool with int for better portability.
	* driver.h: Removed declarations and adjusted severities (see below).
	* driver.cpp: Refactored (see above).
	Introduced the concept of expected diagnostics (i.e., those expected
	to be active, such as expected assertion failures) and added a command
	line option (--expect=, see opt_lines.cpp) to make it possible to
	easily mark them as such. Reassigned severities to diagnostics.
	Introduced a new naming convention for symbols internal to the driver
	(regardless of linkage) to more easily distinguish them from public
	names with external linkage: _rw_xxx.
	(rw_trace): Removed.
	(rw_debug): Removed.
	(_rw_vdiag): Enabled verbose mode as the default formatting mode.

2005-09-14  Martin Sebor  <sebor@roguewave.com>

	* GNUmakefile: Silenced the error output from the $(shell) function
	when it fails to execute a command. See for details on how and why:
	http://lists.gnu.org/archive/html/help-make/2005-09/msg00070.html
	Checked BUILDTYPE and BUILDMODE only when TOPDIR is not defined,
	i.e., only during the initial invocation of make, and avoided doing
	so during recursive invocations since both variables are defined in
	makefile.in.

2005-09-14  Martin Sebor  <sebor@roguewave.com>

	* 21.string.assign.cpp: Set svn:keywords Id.
	* 21.string.insert.cpp: Same.

2005-09-14  Martin Sebor  <sebor@roguewave.com>
	STDCXX-4
	* 21.string.assign.cpp: New test exercising lib.string.assign.
	* 21.string.insert.cpp: New test exercising lib.string.insert.

2005-09-14  Martin Sebor  <sebor@roguewave.com>

	* printf.cpp (rw_fmtspec): Added the handling of Fmtspec::mod_A.
	(rw_fmtfloating): Handled Fmtspec::mod_A and hijacked the width	field
	as the size of the floating point value in bytes when set.
	(rw_quotechar): Returned the number of characters appended to the
	buffer by the fuction instead of the entire length.
	(rw_quotestr): Computed array length the "hard way" instead of relying
	on char_traits since the template is instantiated on types other than
	char and wchar_t.
	(rw_quotestr): Disabled width handling and hijacked width for array
	size when Fmtspec::mod_A is set.
	(libstd_vasnprintf): Handled %{Ac} and %{Ae}, %{Af}, and %{Ag}, and
	used width to determine array element size in bytes.

2005-09-13  Martin Sebor  <sebor@roguewave.com>

	* GNUmakefile: Silenced the stderr output from the $(shell) function
	when it fails to execute a command (e.g., because the command doesn't
	exist).
        Checked BUILDTYPE and BUILDMODE only when TOPDIR is not defined,
        i.e., only during the initial invocation of make, and avoided doing
	so during recursive invocations since both variables are defined in
	makefile.in.
	Moved initial processing into a guarded block to avoid re-evaluating
	it multiple times during recursive invocation.
	Implemented compiler detection for all known platforms and allowed
        CONFIG to be omitted, defined to be a relative path (wrt TOPDIR) or
	an absolute path.
	Corrected the .DEFAULT target to pass both $(MAKEFLAGS) and
	$(MAKECMDGOALS) to the recursive invocation of make to make it
	possible to just create BUILDDIR (target builddir), or to also
	configure the library w/o actually building it, etc.
	Documented targets.
	* etc/config/GNUmakefile.cfg: Silenced the echo of the make clean
	command.

2005-09-12  Martin Sebor  <sebor@roguewave.com>

	STDCXX-18
	* GNUmakefile: Allowed making the library without specifying BUILDDIR
	(will use $(TOPDIR)/build by default). Also allowed relative paths in
	BUILDDIR.

2005-09-06  Martin Sebor  <sebor@roguewave.com>

	* driver.h: Added Doxygen-style documentation.

2005-09-06  Martin Sebor  <sebor@roguewave.com>

	* 22.locale.money.put.cpp: New (initially committed in r278837
	by accident.) Test exercising the money_put facet.

2005-09-06  Martin Sebor  <sebor@roguewave.com>

	* 22.locale.money.get.cpp: New (initially committed in r279127
	by accident.) Test exercising the money_get facet.

2005-09-06  Martin Sebor  <sebor@roguewave.com>

	* valcmp.h (rw_fltcmp, rw_dblcmp, rw_ldblcmp): New. Declarations of
	utility functions for reliable comparison of floating point values.
	* valcmp.cpp (rw_fltcmp, rw_dblcmp, rw_ldblcmp): New. Definitions
	of the above based on
	http://www.cygnus-software.com/papers/comparingfloats/comparingfloats.htm.

2005-09-05  Martin Sebor  <sebor@roguewave.com>

	* cmdopt.h: Added documentation.

2005-09-05  Martin Sebor  <sebor@roguewave.com>
	
        STDCXX-3
	* tests/include/driver.h: New. Declarations of test suite driver
	functions.
	* tests/include/testdefs.h: New. Definitions of test suite macros.
	* tests/include/printf.h: New. Declarations of the rw_sprintf()
	family of testsuite helper functions for formatted output.
	* tests/include/valcmp.h: New. Declarations of the rw_valcmp()
	family of testsuite helper functions for comparing arrays of
	heterogeneous integral objects.
	* tests/include/cmdopt.h: New. Declarations of the rw_runopts()
	and rw_setopts() helper functions for the processing of command
	line options.
	* tests/src/valcmp.cpp: New. Implementation of the above.
	* tests/src/printf.cpp: Ditto.
	* tests/src/cmdopt.cpp: Ditto.
	* tests/src/driver.cpp: Ditto.
	* etc/config/GNUmakefile.tst: Partially reverted r225375
	and renamed the test/ subdirectory back to tests/.
	* etc/config/GNUmakefile.rwt: Ditto.

2005-08-28  Martin Sebor  <sebor@roguewave.com>

	STDCXX-15
	* EXCEPTION_DTOR.cpp: Prevented the exception object from being
	constructed and its dtor from actually being called (unless the
	test is invoked with more than one command line arguments during
	manual testing).

2005-08-26  Martin Sebor  <sebor@roguewave.com>

	* GNUmakefile.tst: used the echo shell builtin instead
	of ls as an optimization. Corrected a typo in a comment.

2005-08-26  Martin Sebor  <sebor@roguewave.com>

	* makefile.common (ALL_FILES): Used the -prune option to
	avoid finding files in hidden subdirectories such as .svn/.

2005-08-25  Martin Sebor  <sebor@roguewave.com>

	* README: Added the string incubating to the name of the tarball,
	clarified the meaning of TOPDIR, and corrected a typo in the path
	name of the charmaps/ subdirectory.

2005-08-25  Martin Sebor  <sebor@roguewave.com>

	* README: Corrected information identifying the project sponsor
	according to http://mail-archives.apache.org/mod_mbox/incubator-stdcxx-dev/200508.mbox/%3c20050818075418.GN21279@scotch.ics.uci.edu%3e.

2005-08-25  Martin Sebor  <sebor@roguewave.com>

	* _config.h: Bumped up version number to 4.1.2.

2005-08-25  Martin Sebor  <sebor@roguewave.com>

	* README: Corrected version number.

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-08-04  Martin Sebor  <sebor@roguewave.com>

	* README: Added the required incubation disclaimer and changed
	the name of the project from Rogue Wave C++ Standard Library
	to Apache C++ Standard Library.

Issue STDCXX-8:

2005-07-30  Nick Gunn  <gunn@roguewave.com>

        * include/ansi/cfloat (LDBL_MAX, LDBL_MIN): Avoided re-defining
	macros when using the EDG-based Intel C++ on Linux.
        * include/ansi/float.h: Same; also keyed in on __linux__ instead
        of __GLIBC__.
        * etc/config/src/LIMITS.cpp (LDBL_EPSILON, LDBL_MAX, LDBL_MIN):
	Same.

2005-07-26  Martin Sebor  <sebor@roguewave.com>

	* trunk/: Set the svn:keywords property and enabled the expansion
	of the Id keyword.
	*  Implemented for Win32.
	*  Added _RWSTD_OS_WINDOWS_XXX where XXX is the flavor of Windows
	(i.e., one of 95, 98, ME, NT, 2000, 2003, and XP).

2005-07-26  Martin Sebor  <sebor@roguewave.com>

	Set the executable property.

2005-07-20  Martin Sebor  <sebor@roguewave.com>

	* runall.sh: Set the executable property.

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.
