2008-04-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-775
	* test/localization/22.locale.time.get.cpp (make_LC_TIME): Asserted
	postconditions to silence HP aCC 6/cadvise warning #20200: Potential
	null pointer dereference.


2008-04-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-771
	* test/localization/22.locale.money.put.cpp (run_test): Used volatile
	to conceal division by zero from optimizers and to silence HP aCC 6
	warning #20010-D: Floating-point DIVIDE BY ZERO exception generated.
	* test/localization/22.locale.moneypunct.cpp (lconvdup): Used
	operator new instead of the new expression to allocate a type-less
	block of memory.
	(check_moneypunct): Deallocated the block of memory allocated in
	lconvdup() using the matching operator delete() to silence HP aCC
	warning #20210-D: Mismatch in allocation and deallocation.


2008-04-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-757
	* tests/src/value.cpp (UserClass::assign): Added a (redundant) default
	label to switch statement to shut up bogus HP aCC warning #20200-D:
	Potential null pointer dereference.
	(__rw_from_char): Asserted a trivially true precondition to silence
	the same warning.
	(_rw_fmtxarrayv): Removed an unused local variable.


2008-04-23  Martin Sebor  <sebor@roguewave.com>

	Merged revs 650902 and 650933 from trunk.

	* src/num_put.cpp (__rw_isqnan, __rw_issnan, __rw_fmat_infinite):
	Silence HP aCC remark #2826-D: parameter was never referenced.

	2008-04-23 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-880	
	* src/num_put.cpp: Added simple overloads of the __rw_isfinite(),
	__rw_signbit(), __rw_isinf(), __rw_isnan(), __rw_isqnan(), __rw_issnan()
	for float and long double types.

	2008-04-23 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-880
	* src/num_put.cpp [_RWSTD_DBL_SIZE == _RWSTD_LDBL_SIZE]: Call double
	type overload from long double type overload when sizeof (double) ==
	sizeof (long double).


2008-04-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-745
	STDCXX-746
	STDCXX-747
	* src/locale_body.cpp [6 <= HP aCC <= 6.16]: Silenced bogus HP aCC
	6.16/cadvise warning #20200-D: Potential null pointer dereference.
	* src/locale_name.cpp: Same.
	* locale_combine.cpp: Same.

	STDCXX-879
	* src/locale_combine.cpp (_C_get_body): Used a previously computed
	value of the expected type to	silence HP aCC remark #4271 type
	conversion may lose sign.


2008-04-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-729
	* include/loc/_money_put.cc [__GNUG__] (_C_put): Silenced bogus
	gcc -Wuninitialized warning: object may be used uninitialized in
	this function while avoiding bogus HP aCC/cadvise warning 20200:
	potential null pointer dereference.


2008-04-23  Martin Sebor  <sebor@roguewave.com>

	STDCXX-879
	* tests/algorithms/25.random.shuffle.cpp: Changed the type used
	to explicitly instantiate the algorithm to avoid HP aCC remark
	4271: type conversion may lose sign.


2008-04-22  Martin Sebor  <sebor@roguewave.com>

	* tests/src/opt_diags.cpp (_rw_match_name): Asserted (obviously
	holding) preconditions to shut up bogus HP aCC 6 warning 20200:
	Potential null pointer dereference.


2008-04-22  Martin Sebor  <sebor@roguewave.com>

	STDCXX-890
	* include/rw/_defs.h (_RWSTD_ATTRIBUTE_NORETURN): Defined macro
	to be empty when not yet #defined.
	(__rw_assert_fail): Replaced _RWSTD_GNUC_ATTRIBUTE ((noreturn))
	with _RWSTD_ATTRIBUTE_NORETURN.
	* include/rw/_config-acc.h [aCC 6] (_RWSTD_ATTRIBUTE_NORETURN):
	Defined macro to __attribute__((noreturn)) for HP aCC 6 and
	better.
	* include/rw/_config-gcc.h (_RWSTD_ATTRIBUTE_NORETURN): Defined
	macro to __attribute__((noreturn)) for all versions of gcc.	


2008-04-22  Martin Sebor  <sebor@roguewave.com>

	STDCXX-756
	* tests/src/printf.cpp (_rw_fmtexpr): Handled malloc(() failure to
	silence HP aCC 6 warning 20200: Potential null pointer dereference.

	(_rw_pvasnprintf, rw_sprintf, rw_snprintf): Cast operand to a wider
	type before adding to it to silence HP aCC remark 4298: addition
	result could be truncated before cast to bigger sized type.
	(_rw_fmtstr): Commented out redundant extern keyword to silence
	the annoying HP aCC 6 remark 4244: extern storage class used with
	a function definition.
	(_rw_quotechar): Made use of the new _RWSTD_UWCHAR_INT_T type to
	silence HP aCC 6 remark 4248: comparison of unsigned integer with
	a signed integer.
	(_rw_fmtfloating): Replaced a for loop with an equivalent call to
	strlen() to silence another useless HP aCC remark, 4315: for loop
	without body, did you insert an extra ';'?


2008-04-22  Martin Sebor  <sebor@roguewave.com>

	* 26.valarray.cassign.cpp (run_test): Disabled tests exercising
        valarray specializations on a user-defined type for 4.2.1 and
        prior since they are known to fail to compile due to STDCXX-512.


2008-04-22  Martin Sebor  <sebor@roguewave.com>

	STDCXX-754
	* tests/src/cmdopt.cpp (rw_vsetopts): Handled malloc() failure.
	Added an assertion to silence a bogus HP aCC 6/cadvise warning
	#20200-D: Potential null pointer dereference. Unfortunately,
	with the one gone another bogus one pops up...


2008-04-22  Martin Sebor  <sebor@roguewave.com>

	STDCXX-753
	* util/charmap.cpp (Charmap::convert_to_ucs): Unconditionally
	allocated (8 + 1) bytes for the longest UTF-8 character rather
	than assuming that MB_LEN_MAX is large enough.


2008-04-21  Martin Sebor  <sebor@roguewave.com>

	* Merged revs 649223, 649311, 649363, 649562, 649563, 649564, 649565,
	649620, 649646, and 649673 from trunk:

	2008-04-17  Martin Sebor  <sebor@roguewave.com>

	* tests/localization/22.locale.ctype.narrow.cpp: Corrected comments.
	(test_narrow_widen): Used rw_info() to write out the name of each
	tested locale.
	(test_libstd): New function/placeholder to exercise our standalone
	implementation of locale (independent of libc).
	(run_test<charT>): Called test_libstd().	
	(run_test): Used the set of locales specified on the command line
	instead of the hardcoded pattern.
	Added an _RWSTD_NO_WCHAR_T guard.
	(main): Used the rw_opt_setlocales handler.

	2008-04-17  Martin Sebor  <sebor@roguewave.com>

	STDCXX-700
	* tests/utilities/20.temp.buffer.mt.cpp (thr_func): Used the right
	formatting directive.

	2008-04-17  Martin Sebor  <sebor@roguewave.com>

	STDCXX-879
	* src/facet.cpp (_C_get_data): Explicitly converted pointer difference
	to size_t to avoid HP aCC remark #4271-D: type conversion may lose
	sign.
	* src/collate.cpp (do_transform): Same.
	* src/locale_name.cpp (name): Same.
	* src/locale_core.cpp (_C_get_std_facet): Same.
	* src/num_put.cpp (__rw_itoa): Changed the type of a local to match
	the the type of the expression it's initialized with to silence the
	same remark.
	(__rw_itoa): Silenced gcc (but not aCC) warning: comparison between
	signed and unsigned integer expressions in an assertion.

	2008-04-18  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-870
	* tests/strings/21.string.exceptions.cpp: Migrated new test from
	old Perforce repository.

	2008-04-18  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-867
	* tests/numerics/26.valarray.transcend.cpp: Migrated new test
	from old Perforce repository.

	2008-04-18  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-866
	* tests/localization/22.locale.ctype.widen.cpp: Migrated new
	test from old Perforce repository.

	2008-04-18  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-865
	* tests/intro/17.extensions.cpp: Migrated new test from old
	Perforce repository.

	2008-04-18  Martin Sebor  <sebor@roguewave.com>

	* tests/regress/22.locale.money.get.stdcxx-62.cpp: Added regression
	test for STDCXX-62.

	2008-04-18  Farid Zaripov  <farid_zaripov@epam.com>

	* include/rw/_defs.h: #define new general purpose config macro
	_RWSTD_UWCHAR_INT_T.
	* include/loc/_ctype.h (narrow): Cast __c to _RWSTD_UWCHAR_INT_T
	to avoid warnings about signed/unsigned comparisons.

	2008-04-18  Martin Sebor  <sebor@roguewave.com>

	STDCXX-812
	* tests/localization/22.locale.num.get.mt.cpp [_RWSTD_OS_HP_UX
	|| _ILP32] (rw_opt_nlocales): Decreased from the default to 10
	in order to work around an HP-UX inefficiency, and renamed to
	opt_nlocales to avoid inappropriately using rwtest convention.

	STDCXX-886
	* tests/localization/22.locale.num.get.mt.cpp (thread_func):
	Avoided appending NUL characters to the input sequence to
	prevent failures in locales where the C++ thoudsands_sep is
	the NUL character.
	(test_get_data): Renamed function argument to match its type.


2008-04-18  Travis Vitek  <vitek@roguewave.com>

	* include/rw/_config.h: Update _RWSTD_VER macro
	to correctly reflect the library version.


2008-04-18 Farid Zaripov <farid_zaripov@epam.com>

	Merged changes from trunk.

	2008-04-18 Farid Zaripov <farid_zaripov@epam.com>
	* etc/config/windows/configure.wsf (linkFiles): Link with libraries,
	specified in LIBS config variable.
	(makeLibrary): Ditto.

	2008-04-18 Farid Zaripov <farid_zaripov@epam.com>
	* include/rw/_defs.h: #define new general purpose config macro
	_RWSTD_UWCHAR_INT_T.
	* include/loc/_ctype.h (narrow): Cast __c to _RWSTD_UWCHAR_INT_T
	to avoid warnings about signed/unsigned comparisons.


2008-04-16 Farid Zaripov <farid_zaripov@epam.com>

	Merged from trunk the changes for 4.2.1 release.

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

	STDCXX-770
	* doc/stdlibref/basic-ios.html (copyfmt): Added Table 40: copyfmt()
	Postconditions.
	(init): Added Table 41: init() Postconditions.
	* doc/stdlibref/lists.html: Added references to Tables 40 and 41.


	2008-01-12  William A. Rowe, Jr.  <wrowe@apache.com>

	* doc/stdlibref/codecvt.html: repos/asf/incubator/stdcxx ->
	repos/asf/stdcxx for migration to top level project.


	2008-03-27  Scott Zhong  <scottz@roguewave.com>

	STDCXX-401
	* etc/config/makefile.rules (run): Used the POSIX TMPDIR
	environment variable instead of TMP.
	* etc/config/run_locale_utils.sh: Same.


	2008-04-01  Andrew Black  <ablack@roguewave.com>

	* build/bin/run_utils: Update result footer format to match format
	expected by exec utility. Footer search logic changed in r643120.


	2008-03-27  Farid Zaripov  <farid_zaripov@epam.com>

	* etc/config/src/EMPTY_MEM_INITIALIZER.cpp: Replace tab character
	to spaces.
	* etc/config/src/UNAME.cpp: Ditto.
	* examples/manual/bitset.cpp: Ditto.
	* examples/manual/codecvt.cpp: Ditto.
	* examples/manual/codecvt1.cpp: Ditto.
	* examples/manual/generate.cpp: Ditto.
	* examples/manual/ifstream.cpp: Ditto.
	* examples/manual/istringstream.cpp: Ditto.
	* examples/manual/lex_compare.cpp: Ditto.
	* examples/manual/max_elem.cpp: Ditto.
	* examples/manual/memfunref.cpp: Ditto.
	* examples/manual/merge.cpp: Ditto.
	* examples/manual/mismatch.cpp: Ditto.
	* examples/manual/partition.cpp: Ditto.
	* examples/manual/remove.cpp: Ditto.
	* examples/tutorial/spell.cpp: Ditto.
	* include/loc/_moneypunct.h: Ditto.
	* include/loc/_num_get.h: Ditto.
	* include/rw/_exception.h: Ditto.
	* include/rw/_tree.cc: Ditto.
	* include/rw/_tree.h: Ditto.
	* include/set: Ditto.
	* include/sstream.cc: Ditto.
	* src/exception.cpp: Ditto.
	* src/ia64/atomic.s: Ditto.
	* src/iostream.cpp: Ditto.
	* src/iso2022.h: Ditto.
	* src/messages.cpp: Ditto.
	* src/valarray.cpp: Ditto.
	* tests/localization/22.locale.ctype.tolower.cpp: Ditto.
	* tests/localization/22.locale.ctype.toupper.cpp: Ditto.
	* tests/localization/22.locale.messages.cpp: Ditto.
	* tests/numerics/26.class.gslice.cpp: Ditto.
	* tests/src/23.containers.cpp: Ditto.
	* tests/src/ctype.cpp: Ditto.
	* tests/src/locale.cpp: Ditto.
	* tests/src/opt_lines.cpp: Ditto.
	* util/aliases.cpp: Ditto.
	* util/def.h: Ditto.
	* util/scanner.cpp: Ditto.
	* util/scanner.h: Ditto.


	2008-04-04  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-660
	*  etc/config/src/EQUAL_CTYPE_MASK.cpp: New file to check that ctype
	mask's for char and wchar_t are equal.
	* src/wctype.cpp [_RWSTD_NO_EQUAL_CTYPE_MASK] (__rw_classic_wide_tab):
	Static array with ctype mask's for wide characters.
	[_RWSTD_NO_EQUAL_CTYPE_MASK] (__rw_init_classic_wide_tab): New function
	to initialize __rw_classic_wide_tab array.
	[_RWSTD_NO_EQUAL_CTYPE_MASK] (ctype<wchar_t>::ctype): Initialize
	__rw_classic_wide_tab array exactly once using __rw_once().


	2008-04-01 Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-708
	* etc/config/src/float_defs.h: Corrected two #if directives per
	suggestions in issue comments.


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

	* etc/config/src/headers.inc: Added checking the <time.h> functions.


	2008-04-02  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-740
	* etc/config/src/INFINITY.cpp (flt_bits): Fill with zero values
	the bits array.
	(dbl_bits): Same.
	(ldbl_bits): Same.


	2008-04-15  Martin Sebor  <sebor@roguewave.com>

	STDCXX-873
	* etc/config/src/libc_decl.sh [vanilla EDG eccp]: Suppressed EDG eccp
	error #450-D: the type "long long" is nonstandard before #including
	libc headers.


	2008-04-01  Andrew Black  <ablack@roguewave.com>

	* etc/config/windows/run_locale_utils.wsf (run_locale_utils):
	Replication of r643435 for Windows. (Update result footer format to
	match format expected by exec utility. Footer search logic changed
	in r643120.)


	2008-03-26  Travis Vitek  <vitek@roguewave.com>

	STDCXX-715
	* etc/nls/countries: New file to map country names and aliases to
	the ISO-3166 country code.
	* etc/nls/encodings: New file to map codeset names and aliases to
	the IANA preferred name.
	* etc/nls/languages: New file to map language names and aliases to
	the ISO-639-1 language code.


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

	STDCXX-715
	* etc/nls/countries: Fix error in countries list.
	* etc/nls/languages: Ditto.


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

	STDCXX-831
	* exmaples/manual/fmtflags_manip.cpp (fmtflags_manip, saveflags): Avoid
	converting -1 to fmtflags due to the unspecified result of the operation
	and to silence HP aCC 6 warnings.


	2008-03-20  Martin Sebor  <sebor@roguewave.com>

	STDCXX-789
	* examples/manual/random_shuffle.cpp (main): Set fixed floating
	point format to suppress the decimal point in iostream output.


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

	STDCXX-768
	* include/ansi/climits: Used gcc's #include_next to include
	the compiler's <limits.h> header and to prevent the gcc 4.3
	error: no include path in which to search for limits.h.


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

	STDCXX-768
	* include/ansi/limits.h: Used the gcc extension #include_next to
	include the compiler's <limits.h> header and to prevent a gcc 4.3
	error: no include path in which to search for limits.h.


	2008-03-26  Martin Sebor  <sebor@roguewave.com>

	* include/ansi/climits [__GNUC__ >= 3]: Silenced gcc warnings
	issued for uses of the #include_next extension introduced in
	the process of resolving STDCXX-768.


	2008-03-16 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-635
	* include/deque (operator-): If one of the iterators is the iterator
	of the empty deque, return difference between _C_cur data members.


	2008-03-16 Farid Zaripov <farid_zaripov@epam.com>

	* include/deque (operator-): Privatized names of pointer types.


	2008-03-27  Farid Zaripov  <farid_zaripov@epam.com>

	* include/deque (operator-): Return difference between _C_cur only
	if both of iterators are the end-iterators of the empty deque's.


	2008-03-31  Martin Sebor  <sebor@roguewave.com>

	STDCXX-814
	* include/iomanip (__rw_setbase): Cast first argument of a shift
	expression to unsigned int to avoid benign arithmetic overflow
	and silence HP aCC 6 remark #4300: Overflow while computing
	constant in left shift operation.
	* include/loc/_num_get.cc (num_get::_C_get): Same.
	* src/ios.cpp (ios_base::flags): Same.


	2008-04-14 Farid Zaripov <farid_zaripov@epam.com>

	STDXX-854
	* include/loc/_ctype.h (narrow): Don't cast __c to unsigned char,
	use __c as index in _C_narrow_tab.


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

	STDCXX-830
	* include/loc/_localedef.h [6 <= _RWSTD_HP_aCC_MAJOR]: Suppressed
	HP aCC remarks 4298 and 4299 for most of the header since they
	don't indicate a problem.


	2008-02-13  Martin Sebor  <sebor@roguewave.com>

	STDCXX-729
	* _money_put.cc (_C_put): Worked around an HP aCC 6.15/cadvise
	bug causing warning #20200-D: potential null pointer dereference.


	2008-02-26  Travis Vitek  <vitek@roguewave.com>

	* include/loc/_money_put.cc: Eliminate uninitialized variable
	warning.


	2008-03-31  Martin Sebor  <sebor@roguewave.com>

	STDCXX-804
	* include/ostream (ostream::_C_opfx): Detect and avoid flushing
	streams that are tied together or that share the same buffer to
	prevent deadlock or infinite recursion.


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

	* include/loc/_num_get.h [LONG_MAX <= SHRT_MAX]
	(__rw_check_overflow_short): Silenced unused parameter warnings/remarks.
	[LONG_MAX <= INT_MAX] (__rw_check_overflow_int): Same.


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

	* include/loc/_num_get.h: Bumped up year in copyright notice.


	2008-03-24  Martin Sebor  <sebor@roguewave.com>

	STDCXX-748
	* include/rw/_array.h (__rw_array::__rw_array): Initialized _C_size
	after initializing _C_data to silence a bogus HP aCC 6.16/cadvise
	warning #20200-D: Potential null pointer dereference is detected.


	2008-03-26  Farid Zaripov  <farid_zaripov@epam.com>

	* include/rw/_config-gcc.h [__CYGWIN__ && _RWSHARED]: #define
	_RWSTD_NO_REPLACEABLE_NEW_DELETE macro to disable using of the
	replacement new/delete operators.


	2008-04-08  Martin Sebor  <sebor@roguewave.com>

	STDCXX-843
	* include/rw/_mbstate.h [_RWSTD_OS_SUNOS] (__mbstate_t): Used
	_RWSTD_LONG_SIZE instead of testing the _LP64 system macro
	which may or may not be #defined, depending on the already
	#included headers.


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

	STDCXX-595
	* include/rw/_mutex.h [_RWSTD_POSIX_THREADS && _RWSTD_EDG_ECCP
	&& _RWSTD_OS_LINUX && _RWSTD_NO_LONG_LONG]:  Disabled EDG eccp
	error #450-D: the type "long long" is nonstandard when using the
	vanilla EDG eccp in strict mode (i.e., w/o long long support).


	2008-04-15 Farid Zaripov <farid_zaripov@epam.com>

	* include/rw/_mutex.h (__rw_atomic_exchange): New overload for bool
	type to avoid using of template overload with mutex to atomically
	swap two bool's (used in std::ios_base::sync_with_stdio()).


	2008-02-05  Martin Sebor  <sebor@roguewave.com>

	STDCXX-645
	* _streamiter.h (operator++): Tested associated stream for eofbit
	rather than (badbit|failbit) as (admittedly somewhat ambiguously)
	specifiedn [istream.iterator].
	(operator==): Simplified and corrected to compare stream pointers
	only without taking the states of the stream objects into account.


	2008-02-06  Martin Sebor  <sebor@roguewave.com>

	STDCXX-645
	* include/rw/_streamiter.h (operator*): Checked fail() instead
	of eof() on the associated stream before turning the object into
	the end-of-stream iterator, as per LWG issue 788.
	* tests/iterators/24.istream.iterator.cpp (test_ctors): Inserted
	a valid number instead of NUL into test stream.
	(test_ops): Changed the expected result of equality comparison
	with the end-of-stream iterator according to LWG issue 788.
	(opt_char, opt_wchar_t, opt_UserTraits, opt_short, opt_int,
	opt_long, opt_double): Added "tri-state" options.
	(do_test, run_test, main): Handled said options.


	2008-02-05  Martin Sebor  <sebor@roguewave.com>

	* 24.istream.iterator.cpp: New test exercising [istream.iterator],
	including STDCXX-645.


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

	* tests/iterators/24.istream.iterator.cpp (test_ops): Parenthesized
	subexpression to shut up the annoying HP aCC warning #4259-D: suggest
	parentheses around the operands of "!=" and similarly for gcc 4.3.


	2008-02-11  Martin Sebor  <sebor@roguewave.com>

	STDCXX-687
	* include/rw/_traits.h [__GNUG__](_RWSTD_MEMCPY, _RWSTD_MEMCMP,
	_RWSTD_MEMMOVE,	_RWSTD_MEMSET, _RWSTD_STRLEN): #defined macros
	to the corresponding gcc __builtins.
	[4 < __GNUG__ || 3 <= __GNUC_MINOR__](_RWSTD_MEMCHR): #defined
	to __builtin_memchr starting with this version of the compiler.


	2008-03-04 Farid Zaripov <farid_zaripov@epam.com>

	* include/rw/_traits.h [4 = __GNUG__ && 3 > __GNUC_MINOR__]
	(_RWSTD_MEMCHR): #defined to memchr (added missing definition).


	2008-04-02  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-799
	* include/rw/_traits.h: Don't use gcc string builtins on icc.


	2008-03-25  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-795
	* include/sstream.cc (str): Save pptr and restore it at the end if
	str() is called with internal buffer to increase the capacity of
	buffer (i.e. from xsputn() or overflow()).
	(xsputn): Remove fix for STDCXX-515 because the pptr now is
	preserved in str().


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

	STDCXX-832
	* include/string (_C_pref): Used two static_casts in favor of
	reinterpret_cast to prevent HP aCC warning #4232: conversion
	from "wchar_t*" to a more strictly aligned type.


	2008-04-09  Martin Sebor  <sebor@roguewave.com>

	STDCXX-849
	* src/file.cpp [_RWSTD_EDG_ECCP] (stderr, stdin, stdout): Undefined
	macros #defined to __rw_stderr, __rw_stdin, and __rw_stdout in our
	<stdio.h> to prevent self-initialization to 0 and defined them as
	appropriate for Linux and Solaris instead.


	2008-04-11  Martin Sebor  <sebor@roguewave.com>

	* src/file.cpp [_RWSTD_EDG_ECCP]: Fixed a typo in a preprocessing
	directive that snuck in with a fix for STDCXX-849 in rev 646568.


	2008-03-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-766
	* src/iostore.cpp (_C_copyfmt): Copied the tied stream and locale.


	2008-02-13  Martin Sebor  <sebor@roguewave.com>

	STDCXX-730
	* src/iso2022.cpp (__rw_iso2022jp_designate): Asserted preconditions
	to silence HP aCC  warning #20200-D: Potential null pointer dereference.
	(__rw_ucs4_to_interm): Corrected a bad conditional pointed out by HP
	aCC warning #20206-D: Out of bound access.


	2008-03-25  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-792
	* src/locale_body.cpp (_C_manage): Cast ginit to non-volatile to use
	the non-template version of the __rw_atomic_preincrement() if available.
	Declare static variable ginit as int instead of long because the all
	native atomic functions are defined for int type and the overloads
	for long type just calls overload for int type on platforms where
	sizeof (int) == sizeof (long).


	2008-03-26  Martin Sebor  <sebor@roguewave.com>

	* src/locale_body.cpp (_C_manage): Used the C++ const_cast to cast
	away volatile in favor of the C-style variant introduced in a patch
	for STDCXX-792 (rev 640746) to avoid gcc -Wcast-qual warning: cast
	from type 'volatile int*' to type 'int*' casts away constness.


	2008-04-03  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-811
	* src/locale_global.cpp (std::locale::global): Replace call to
	non-reentrant setlocale() C function with reentrant
	__rw_setlocale object.
	* tests/localization/22.locale.statics.mt.cpp (test_global):
	Fix [un]signed integer conversion warnings.


	2008-04-03  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-811
	* src/setlocale.cpp (__rw_setlocale_mutex): Make mutex visible
	to other translation units.
	* src/locale_global.cpp (std::locale::global): __rw_setlocale
	object won't work because destructor restores previous locale.
	Guard on mutex and revert to original call to setlocale().


	2008-04-04  Farid Zaripov  <farid_zaripov@epam.com>

	* src/once.cpp (__rw_once): Cast init to int& to avoid using mutex
	version of __rw_atomic_preincrement() when atomic version is present.


	2008-04-11 Farid Zaripov <farid_zaripov@epam.com>

	* src/once.cpp (__rw_once): Cast init to int& to avoid using mutex
	version of __rw_atomic_predecrement() when atomic version is present
	(see r644662).


	2008-04-03  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-824
	* src/num_get.cpp (__rw_get_num): If type == _C_pvoid, convert the data
	in buf using __rw_strtoull() instead of __rw_strtoul() on LLP64
	platforms.


	2008-04-09  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-51
	* src/num_put.cpp (__rw_isfinite): New function to detect inf and nan
	values.
	(__rw_signbit): New function to detect the sign of floating point value.
	(__rw_isinf): New function to detect inf values.
	(__rw_isnan): New function to detect nan values.
	(__rw_isqnan): New function to detect quiet nan values.
	(__rw_issnan): New function to detect signaling nan values.
	(__rw_fmat_infinite): New function to format inf and nan values.
	(__rw_put_num): Use __rw_isfinite() and __rw_fmat_infinite() to format
	inf and nan values.


	2008-04-09  Martin Sebor  <sebor@roguewave.com>

	* src/num_put.cpp [_RWSTD_OS_SUNOS]: Included <sunmath.h> signbit()
	on Solaris. Needed to complete the patch for STDCXX-51 committed in
	rev 646396.


	2008-04-09  Martin Sebor  <sebor@roguewave.com>

	* src/num_put.cpp [_RWSTD_OS_SUNOS]: Removed the #inclusion of
	<sunmath.h> mistakenly introduced in rev 646597 as the functions
	declared in the header are defined in libsunmath that we don't
	link with and don't want to start.
	[_RWSTD_OS_SUNOS] (__rw_signbit): Reimplemented using simple
	integer arithmetic. Needed to complete the patch for STDCXX-51	
	initially committed in rev 646396.


	2008-03-15 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-763
	* src/punct.cpp (__rw_get_stdio_fmat): Always use precision in
	conversion from floating-point types according to resolution of
	the lwg issue 231.


	2008-03-26  Martin Sebor  <sebor@roguewave.com>

	* src/punct.cpp (__rw_get_stdio_fmat): Remove unused
	vestigial local variable left behind after resolving
	STDCXX-763 in rev 637393.


	2008-03-29  Martin Sebor  <sebor@roguewave.com>

	STDCXX-98
	* src/version (#pragma VERSIONID): Worked around an HP aCC 3.63 ICE.


	2008-03-31  Martin Sebor  <sebor@roguewave.com>

	* src/version.cpp (__rw_ident): Updated the name of the library.


	2008-03-12  Martin Sebor  <sebor@roguewave.com>

	STDCXX-435
	* src/wcodecvt.cpp (__rw_libc_do_in): Replaces use(s) of mbsrtowcs()
	with mbrtowc() to prevent reading past the end of source sequences
	that aren't NUL-terminated.


	2008-03-12  Martin Sebor  <sebor@roguewave.com>

	* tests/regress/22.locale.codecvt.stdcxx-435.cpp: Added regression
	test for STDCXX-435.


	2008-04-09  Travis Vitek  <vitek@roguewave.com>

	STDCXX-783
	* tests/algorithms/25.random.shuffle.cpp (test_random_shuffle): Avoid
	indexing past the end of arrays when evaluating rw_assert() arguments
	by checking for failure first.


	2008-04-11  Travis Vitek  <vitek@roguewave.com>

	STDCXX-783
	* tests/algorithms/25.random.shuffle.cpp (test_random_shuffle): Move
	rw_assert() into loop to avoid bogus cadvise warning.


	2008-03-31  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-803
	* tests/containers/23.bitset.cpp (test_ctors): Declare bmask as
	unsigned long to resolve ambiguity on MSVC.


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

	* tests/containers/23.list.cons.cpp (ConsRangePtrOverload): Removed
	a pointless const qualifier from the target type of a const_cast to
	silence HP aCC warning #2191-D: type qualifier is meaningless on
	cast type.
	* (test_cons): Cast an argument to the expected type to silence HP
	aCC 6 remark #4271-D: type conversion may lose sign.
	(main): Removed an unused local variable.


	2008-04-07  Travis Vitek  <vitek@roguewave.com>

	* tests/support/18.support.dynamic.cpp: New test exercising
	functions and types for dynamic storage management.
	* tests/support/18.support.rtti.cpp: New test exercising
	types for dynamic type information support.
	* tests/diagnostics/19.std.exceptions.cpp: New test exercising
	standard exception types.


	2008-04-09  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/diagnostics/19.std.exceptions.cpp (run_test): Use rw_warn()
	instead of rw_assert() on platforms where replacement new/delete
	operators can't be defined.


	2008-04-14 Farid Zaripov <farid_zaripov@epam.com>

	* tests/include/21.strings.h: Removed incorrect overload id.
	* tests/src/21.strings.cpp: Ditto.


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

	STDCXX-709
	* tests/include/23.containers.h (ContainerTestCaseData): Declared
	member pointers non-const for 6.0 <= HP aCC <= 6.16 to work around
	a compiler bug.
	(ContainerTestCaseData, ~ContainerTestCaseData): Outlined ctor and
	dtor to reduce code bloat.


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

	* tests/include/23.containers.h (<driver.h>): Moved an #include
	directive from here...
	* tests/src/23.containers.cpp: ...to here to reduce namespace
	clutter.


	2008-04-01  Martin Sebor  <sebor@roguewave.com>

	* test/include/23.containers.h (~ContainerTestCaseData): Tweaked
	a workaround for STDCXX-802 to avoid preprocessor conditionals.


	2008-03-29  Martin Sebor  <sebor@roguewave.com>

	* tests/include/23.list.h (<driver.h>): Added #include directive
	after rev 642384 removed it from tests/include/23.containers.h.
	(<rw_sigdefs.h>): Moved an include directive outside the scope
	of a class and into file scope where it should be.


	2008-03-26  Travis Vitek  <vitek@roguewave.com>

	* tests/src/driver.cpp (rw_enable): Return previous state for the
	diagnostic so it can be safely disabled and restored.
	* tests/include/driver.h (rw_enable): Ditto. Update comments.


	2008-03-28  Travis Vitek  <vitek@roguewave.com>

	* tests/src/driver.cpp (rw_enable): Reverse logic so that returned
	value is correct and consistent with documentation.


	2008-03-27  Travis Vitek  <vitek@roguewave.com>

	STDCXX-716
	* tests/include/rw_locale.h (rw_query_locales): Add declaration
	of new function.
	* tests/src/locale.cpp (atexit_rm_locale_root): Temporarily disable
	disgnostic messages to avoid warnings that occur because function is
	called after run_test() has returned.
	(rw_query_locales): Add new function to query installed locales by
	language, country, codeset or MB_CUR_LEN.


	2008-03-28  Travis Vitek  <vitek@roguewave.com>

	STDCXX-714
	* tests/src/braceexp.cpp: Remove _rw_isspace(), _rw_isupper() and
	_rw_islower(). Use appropriate C library calls instead.
	STDCXX-716
	* tests/src/locale.cpp: Remove _rw_isspace(), _rw_toupper() and
	_rw_tolower(). Use appropriate C library calls instead.
	

	2008-02-17  Travis Vitek  <vitek@roguewave.com>

	STDCXX-714
	* tests/include/rw_braceexp.h: Added a new header to declare the test
	suite helper function rw_brace_expand().
	* tests/src/braceexp.cpp: New source file to define rw_brace_expand().
	* tests/self/0.braceexp.cpp: New test to exercise rw_brace_expand()


	2008-02-18  Martin Sebor  <sebor@roguewave.com>

	* tests/include/rw_braceexp.h: Set svn:eol-style and svn:keywords
	properties.
	* tests/src/braceexp.cpp: Ditto.
	* tests/self/0.braceexp.cpp: Ditto.


	2008-02-19  Travis Vitek  <vitek@roguewave.com>

	* tests/src/braceexp.cpp: Use unsigned values where appropriate
	Use change type of seperator to char instead of int. Inlines a
	few small functions. General cleanup.
	* tests/include/rw_braceexp.h: Ditto. Add documentation for
	rw_brace_expand().


	2008-02-25  Travis Vitek  <vitek@roguewave.com>

	STDCXX-714
	* tests/include/rw_braceexp.h: Add grammar description for
	rw_brace_expand(). Add declaration for rw_shell_expand().
	* tests/src/braceexp.cpp: Add helper type _rw_string_buffer
	to reduce duplicated code.
	(_rw_is_upper): Fix to support EBCDIC encodings.
	(_rw_is_upper): Ditto.
	(_rw_is_space): Add function to detect whitespace.
	(_rw_is_not_space): Add function to detect non whitespace.
	(rw_find_match): Add function to find first character that
	matches according to some callback function.
	(_rw_itoa_10): Add function to write integer values like
	sprintf() without dependencies on the locale.
	(_rw_find_open_brace): Fix to avoid expanding tokens that
	look like shell variable expansions.
	(rw_shell_expand): Add function to do shell-like string
	tokenization and expansion.
	* tests/self/0.braceexp.cpp (run_bash_tests): Removed test.
	(run_brace_expand_tests): Add test to verify old function
	rw_brace_expand. Updated to expect failures with invalid
	expressions.
	(run_shell_expand_tests): Add test to verify new function
	rw_shell_expand.


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

	STDCXX-683
	* tests/include/rw_fnmatch.h: Added a new header declaring
	the rw_fnmatch() test suite helper function paralleling the
	POSIX function with the same name.
	* tests/src/fnmatch.cpp: New source file to define rw_fnmatch().
	* 0.fnmatch.cpp: New test to exercise rw_fnmatch().


	2008-04-08  Eric Lemings  <eric.lemings@roguewave.com>

	* tests/iostream/27.istream.fmat.arith.cpp (test_extractor):
	Typo.


	2008-03-31  Martin Sebor  <sebor@roguewave.com>

	STDCXX-818
	* tests/iostream/27.objects.cpp (operator new): Avoid calling rw_warn()
	except when it has something to warn about in case operator new() is
	being called by the compiler's C++ runtime (e.g., HP aCC 6.16) before
	the driver has been initialized (otherwise the driver aborts).


	2008-04-15 Farid Zaripov <farid_zaripov@epam.com>

	* tests/localization/22.locale.codecvt.mt.cpp: Use %d format instead
	of %zu for printing the number of iterations to avoid printing the
	incorrect value on LLP64 platforms).
	* tests/localization/22.locale.cons.mt.cpp: Ditto.
	* tests/localization/22.locale.ctype.mt.cpp: Ditto.
	* tests/localization/22.locale.messages.mt.cpp: Ditto.
	* tests/localization/22.locale.money.get.mt.cpp: Ditto.
	* tests/localization/22.locale.money.put.mt.cpp: Ditto.
	* tests/localization/22.locale.moneypunct.mt.cpp: Ditto.
	* tests/localization/22.locale.num.get.mt.cpp: Ditto.
	* tests/localization/22.locale.num.put.mt.cpp: Ditto.
	* tests/localization/22.locale.numpunct.mt.cpp: Ditto.
	* tests/localization/22.locale.statics.mt.cpp: Ditto.
	* tests/localization/22.locale.time.get.mt.cpp: Ditto.
	* tests/localization/22.locale.time.put.mt.cpp: Ditto.
	* tests/strings/21.string.cons.mt.cpp: Ditto.
	* tests/strings/21.string.push_back.mt.cpp: Ditto.


	2008-01-15  Martin Sebor  <sebor@roguewave.com>

	STDCXX-700
	* tests/localization/22.locale.codecvt.out.cpp (<cstdio>): Removed
	#include directive.
	(get_mb_chars, find_mb_locale): Replaced calls to std::fprintf()
	with rw_fprintf().
	* tests/localization/22.locale.time.put.cpp (make_LC_TIME): Silenced
	HP aCC 6 warning #2181-D: argument is incompatible with corresponding
	format string conversion.
	* tests/localization/22.locale.time.put.cpp (make_LC_TIME): Same.
	* tests/utilities/20.temp.buffer.mt.cpp (thr_func): Same.
	* tests/support/18.numeric.special.int.cpp (Limits<unsigned short>::
	compute_digits10): Same.
	* util/locale.cpp (print_ce_info, print_charmap): Same.
	* util/ctype.cpp (process_sym_ellipsis): Same.


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

	STDCXX-716
	* tests/src/locale.cpp: Add functions _rw_isspace(), _rw_toupper() and
	_rw_tolower() to avoid problems when sign extending character to int.
	(_rw_all_locales): Avoid using uninitialized struct member in calls to
	rw_note(). Use _rw_isspace(), _rw_toupper() and _rw_tolower(). Remove
	duplicate locales using canonical locale name matching.
	(rw_locale_query): Use larger buffer for cached locale name to avoid
	buffer overflow. Remember to close file on error condition. Use
	_rw_isspace(), _rw_toupper() and _rw_tolower().
	* tests/localization/22.locale.ctype.tolower.cpp: Use rw_locale_query()
	to select a subset of installed locales.
	(run_test): Call test_libc() before test_libstd() to avoid problem with
	our locale utility on windows that causes only C locale to be returned.
	* tests/localization/22.locale.ctype.toupper.cpp: Ditto.
	* tests/localization/22.locale.ctype.scan.cpp: Ditto.
	* tests/localization/22.locale.ctype.cpp: Ditto.
	* tests/localization/22.locale.ctype.narrow.cpp: Ditto.
	* tests/localization/22.locale.ctype.is.cpp: Ditto.
	* tests/localization/22.locale.time.get.cpp: Ditto.


	2008-04-07  Travis Vitek  <vitek@roguewave.com>

	* tests/localization/22.locale.ctype.cpp: Cache result of call to
	rw_locale_query() reduce time needed to run test.
	* tests/localization/22.locale.ctype.is.cpp: Ditto.
	* tests/localization/22.locale.ctype.narrow.cpp: Ditto.
	* tests/localization/22.locale.ctype.scan.cpp: Ditto.
	* tests/localization/22.locale.ctype.toupper.cpp: Ditto.
	* tests/localization/22.locale.ctype.tolower.cpp: Ditto.


	2008-02-27  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/localization/22.locale.num.put.cpp
	(do_test): Fixed error in format string.
	(inf_nan_test): Corrected number of the issue.
	(ldbl_test): Added testcase with a precision == 0.


	2008-03-15 Farid Zaripov <farid_zaripov@epam.com>

	* tests/localization/22.locale.num.put.cpp (dbl_test): Add precision
	in format specification of the expected result to reflect the
	resolution of the lwg issue 231.
	(ldbl_test): Ditto.


	2008-03-27  Travis Vitek  <vitek@roguewave.com>

	* tests/localization/22.locale.time.get.cpp (make_LC_TIME): Add
	namespace qualifier to strlen() call to avoid compile error.


	2008-03-30  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* tests/localization/22.locale.numpunct.cpp: New test exercising
	the required specializations of the std::numpunct facet.


	2008-03-30  Martin Sebor  <sebor@roguewave.com>

	* tests/localization/22.locale.time.put.cpp (make_LC_TIME): Added
	an std:: qualification to a call to strlen() missed in rev 604038
	to appease strictly conforming compilers such as EDG eccp, or Sun
	C++.


	2008-03-30  Martin Sebor  <sebor@roguewave.com>

	* tests/localization/22.locale.time.get.cpp (make_LC_TIME):
	Used rw_fatal() to verify postcondition of fopen().


	2008-04-01  Travis Vitek  <vitek@roguewave.com>

	STDCXX-742
	* tests/localization/22.locale.messages.cpp (run_test): Avoid
	use_facet<>() and has_facet<>() when _RWSTD_NO_DYNAMIC_CAST is
	defined.


	2008-04-01  Martin Sebor  <sebor@roguewave.com>

	STDCXX-812
	* tests/localization/22.locale.numpunct.mt.cpp [_RWSTD_OS_HP_UX
	|| _ILP32] (rw_opt_nlocales): Decreased from the default 16 to
	10 in order to work around an HP-UX inefficiency, and renamed
	to opt_nlocales to avoid inappropriately using rwtest convention.
	* tests/localization/22.locale.time.put.mt.cpp: Same.
	* tests/localization/22.locale.num.put.mt.cpp: Same.
	* tests/localization/22.locale.ctype.mt.cpp: Same.
	* tests/localization/22.locale.money.put.mt.cpp: Same except
	that had to go down to 9 to avoid the same inefficiency.
	* tests/localization/22.locale.money.get.mt.cpp: Same.


	2008-04-02  Martin Sebor  <sebor@roguewave.com>

	* tests/localization/22.locale.money.put.mt.cpp (rw_opt_nthreads,
	rw_opt_nloops, rw_opt_shared_locale): Removed the rw_ prefix from
	the names of glabl variables to avoid using rwtest convention.
	* tests/localization/22.locale.time.put.mt.cpp: Same.
	* tests/localization/22.locale.num.put.mt.cpp: Same.
	* tests/localization/22.locale.money.get.mt.cpp: Same.
	* tests/localization/22.locale.numpunct.mt.cpp: Same.
	(run_test): Added the number of locales to informational output.


	2008-04-03  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/localization/22.locale.num.get.cpp: Silenced warnings on
	64-bit MSVC.
	(test_pvoid) Correctly exercised overflow conditions on LLP64 platforms.


	2008-04-09  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/localization/22.locale.time.put.cpp (set_TZ): New function to
	set TZ environment variable and update the state of the global CRT
	variables using tzset().
	(test_POSIX): Use set_TZ() instead of rw_putenv(). Use three-letter
	time zone name, because the MSVC CRT doesn't supports the time zone
	names longer than three letter.


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

	* tests/localization/22.locale.time.put.cpp (set_TZ): Use tzset() only
	if it's present in libc.
	(test_POSIX): Exercise time zone name of maximum length.


	2008-04-11 Farid Zaripov <farid_zaripov@epam.com>

	* tests/localization/22.locale.statics.mt.cpp (test_classic): Cast
	nthreads to int& to avoid using mutex version of
	__rw_atomic_preincrement() when atomic version is present.


	2008-04-11  Travis Vitek  <vitek@roguewave.com>

	STDCXX-779
	* tests/localization/22.locale.num.get.cpp: Add new macro T_MAX to
	eliminate potential for accessing local variable via pointer after
	it has gone out of scope. Remove global pointer pmax.
	(do_test): Add new pointer parameter pmax.
	(test_flt_uflow): Use new T_MAX macro.
	(test_dbl_uflow): Ditto.
	(test_ldbl_uflow): Ditto.


	2008-04-14 Farid Zaripov <farid_zaripov@epam.com>

	* tests/numerics/26.c.math.cpp: Replace rw_any to rw_any_t (caused
	compilation error of 26.c.math test on Sun C++ 5.9 / Linux).


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

	* tests/regress/22.locale.codecvt.stdcxx-435.cpp (main): Added
	zero element in names array to correctly terminate the loop.


	2008-04-07  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-827
	* tests/regress/22.locale.stdcxx-554.cpp (test_moneypunct,
	test_messages): Use a union containing a pointer to properly
	align storage buffer used for placement new operator.


	2008-04-01  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/regress/21.string.insert.stdcxx-630.cpp: Test removed.
	This test is added simultaneously (the STDCXX-630 issue is about
	assign operation, and test exercises the insert operation).


	2008-03-31  Martin Sebor  <sebor@roguewave.com>

	* tests/regress/27.basic.ios.tie.stdcxx-804.cpp: Added regression
	test exercising STDCXX-804.


	2008-03-30  Martin Sebor  <sebor@roguewave.com>

	STDCXX-809
	* tests/regress/21.string.stdcxx-162.cpp (MUTEX): Corrected
	a typo in the name of the mutex type on Solaris Threads.


	2008-03-25  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/regress/27.stringbuf.overflow.stdcxx-795.cpp: Regression
	test for STDCXX-795 issue.


	2008-03-19  Martin Sebor  <sebor@roguewave.com>

	* tests/regress/27.basic.ios.copyfmt.stdcxx-766.cpp: Added
	a regression test for STDCXX-766.


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

	* tests/regress/27.filebuf.members.stdcxx-308.cpp: Regression
	test exercising STDCXX-308.


	2008-02-06  Martin Sebor  <sebor@roguewave.com>

	* 24.istream.iterator.ops.stdcxx-321.cpp: Added a regression
	test for STDCXX-321.


	2008-02-05  Martin Sebor  <sebor@roguewave.com>

	* 24.istream.iterator.cons.stdcxx-645.cpp: Added a regression
	test for STDCXX-645.


	2008-04-14 Farid Zaripov <farid_zaripov@epam.com>

	* tests/strings/21.string.cons.cpp: Exercise the string
	ctors overloads with allocator parameter.


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

	STDCXX-774
	* tests/strings/21.string.iterators.cpp (test_iterators): Avoid
	dereferencing null pointer.


	2008-04-04  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-638
	* tests/strings/21.cwctype.cpp (test_behavior): Don't check the extra
	bits since C99 standard implicitly allows defining extra bits in
	iswxxx().
	(run_test): Use rw_warn() instead of rw_assert() when
	_RWSTD_STRICT_ANSI macro is not #defined when testing the masking
	macros and presence of the standard C functions in CRT.


	2008-02-29  Travis Vitek  <vitek@roguewave.com>

	STDCXX-597
	* tests/strings/21.string.access.cpp (test_access): Avoid purify
	UMR warning when testing for end of string match


	2008-02-29  Travis Vitek  <vitek@roguewave.com>

	* tests/strings/21.string.access.cpp (test_access): Revert previous
	change.


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

	* 18.numeric.special.int.cpp: Migrated test for integer specializations
	of the std::numeric_limits class template from Rogue Wave test suite.


	2008-01-24  Martin Sebor  <sebor@roguewave.com>

	STDCXX-4
	* tests/support/18.numeric.special.float.cpp: Migrated the test to
	exercise floating point specializations of the numeric_limits class
	template from the Rogue Wave test suite.


	2008-01-24  Martin Sebor  <sebor@roguewave.com>

	* tests/support/18.numeric.special.float.cpp (signaling_NaN):
	Corrected typo.
	(test_limits): Finished migrating to stdcxx test driver missed
	in initial submission (r614980).


	2008-03-26  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/support/18.numeric.special.float.cpp (test_limits):
	Added missing parameters for rw_warn().


	2008-04-01 Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-708
	* tests/support/18.numeric.special.float.cpp: Change expected
	values for std::numeric_limits<FloatT>::has_denorm() to
	std::denorm_present on all HP-UX platforms (inc. PA-RISC and
	IPF) per comments recorded in the issue.


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

	STDCXX-615
	* tests/tr1.util/2.smartptr.shared.cpp (test_copy_ctor): Avoided using
	volatile qualified types with HP aCC 3 without the new +hpxstd98 option
	to work around a compiler bug.


	2008-04-14  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-841
	* trunk/tests/utilities/20.temp.buffer.cpp (test_failure): Print
	correct value of `sizeof (T)' using rw_sprintf() function.
	Prevent division by zero in terminal condition of for statement.
	Also, use parentheses when calculating value of `nelems' to
	indicate precedence of operators explicitly.


	2008-03-27  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/src/23.containers.cpp (_rw_vector_sigcat): Silenced warning
	about unused variable.
	(_rw_deque_sigcat): Same.
	(_rw_queue_sigcat): Same.
	(_rw_stack_sigcat): Same.
	* tests/src/ctype.cpp (_rw_throw): Same.
	* tests/src/opt_lines.cpp (_rw_enable_line): Same.
	* tests/src/fnmatch.cpp (_rw_bracketmatch): ch parameted declared
	as const unsigned char instead of unsigned int. Silenced conversion
	warnings.
	Added svn:eol-slyle=native property.
	* tests/src/locale.cpp (rw_get_wchars): Fill wbuf array with requested
	wide characters.
	* tests/src/printf.cpp (_rw_fmt_pointer): Check return value from
	rw_fmtlong() before adding it to len.


	2008-03-27  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/src/braceexp.cpp (_rw_string_buffer): Declare n parameter as
	_RWSTD_SIZE_T instead of int to silence conversion warning.
	* tests/src/char.cpp (_rw_fmtstringv): Silence size_t to int conversion
	warning.
	* tests/src/process.cpp (rw_process_kill): Silence conversion warning.
	* tests/src/printf.cpp (_rw_vasnprintf_c99): Same.
	(_rw_fmtbadaddr): Same.
	(_rw_fmtarray): Same.
	(_rw_vfprintf): Same. Use OutputDebugString() depending on _WIN32 macro
	instead of _MSC_VER. Don't call IsDebuggerPresent() (which depends on
	macros _WIN32_WINNT and WINVER) because the OutputDebugString() does
	nothing if there is no any attached debugger present.
	* tests/src/rand.cpp (rw_seed32): Declare k as _RWSTD_UINT32 instead
	of _RWSTD_SIZE_T.
	Removed useless casting of table32[ii] of type _RWSTD_UINT32 to
	_RWSTD_SIZE_T before assign the value to _RWSTD_UINT32 seed.
	(rw_seed32): Declare k as _RWSTD_UINT64 instead of _RWSTD_SIZE_T.
	Removed useless casting of table64[ii] of type _RWSTD_UINT64 to
	_RWSTD_SIZE_T before assign the value to _RWSTD_UINT64 seed.


	2008-04-15 Farid Zaripov <farid_zaripov@epam.com>

	* tests/src/driver.cpp [_MSC_VER] (_rw_opt_verbose): Turn on checking
	the memory at every allocation and deallocation in verbose mode.
	(_rw_opt_compat): Disable MSVC debug popup's in compat mode.


	2008-03-16 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-646
	* tests/src/environ.cpp (rw_putenv): Worked around the putenv()
	limitations on Windows.


	2008-03-15 Farid Zaripov <farid_zaripov@epam.com>

	* tests/src/fmt_bits.cpp (_rw_fmtflags): Replace "iostate" to "fmtflags"
	in default output. Conditionally output of the "std::ios::" prefix for
	consistency.
	(_rw_fmt_event): Replace "copyfmt_event" to "event" in default output.
	Conditionally output of the "std::ios::" prefix for consistency.
	* tests/self/0.printf.cpp (test_ios_bitmasks): Exercised the %{If} and
	%{Ie} extensions to format ios::fmtflags and ios::event values.
	(test_locale_category): New function to exercise %{Lc} extension to
	format locale category values.
	(main): Called test_locale_category().


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

	STDCXX-765
	* tests/src/fmt_bits.cpp (_rw_bmpfmt): NUL-terminated string so that
	it can be appended to using the %{+} directive, taking care not to
	make the NUL a part of the formatted string.
	(_rw_fmtflags): Same.
	(_rw_fmtevent): Same.
	(_rw_fmtlc): Same.


	2008-04-04  Travis Vitek  <vitek@roguewave.com>

	STDCXX-755
	* tests/src/locale.cpp (rw_locales): Check return from malloc()
	(_rw_all_locales): Ditto.


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

	* tests/src/locale.cpp (_rw_all_locales): Don't link nodes into result
	when size == 0 to prevent heap corruption in _rw_reset_locales().


	2008-03-16 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-711
	* tests/src/fnmatch.cpp (rw_fnmatch): Check for the end of string
	before invoking _rw_bracketmatch().


	2008-04-11 Farid Zaripov <farid_zaripov@epam.com>

	* tests/src/fnmatch.cpp (rw_fnmatch): Added checking *next for 0 before incrementing
	next in case '?'. Slightly optimized codeand added some _RWSTD_ASSERT's.


	2008-04-02  Martin Sebor  <sebor@roguewave.com>

	* tests/src/braceexp.cpp (UChar): Added a convenience typedef.
	(_rw_find_match, _rw_brace_graph::build_character_sequence): Cast
	char to UChar before passing it to isspace, islower, and isupper
	to avoid undefined behavior on sign extension.
	(_rw_string_buffer, build_and_expand, _rw_brace_node_buffer,
	_rw_brace_node, reset_for_reuse, get_new_node, brace_expand_write,
	build_integer_sequence, brace_expand, rw_brace_expand,
	rw_shell_expand): Used size_t instead of _RWSTD_SIZE_T for
	readability.


	2008-03-30  Martin Sebor  <sebor@roguewave.com>

	* tests/src/braceexp.cpp (_rw_brace_graph::build_anything): Handled
	get_new_node's failure pointed out by HP aCC 6.16 warning #20200-D:
	Potential null pointer dereference is detected.


	2008-03-29  Martin Sebor  <sebor@roguewave.com>

	* tests/src/braceexp.cpp (_rw_is_not_space): Removed.
	(_rw_find_match): Changed last argument from a function pointer
	to bool to avoid having deal with language linkage incompatibility
	with isspace and simplified implementation.
	(rw_shell_expand): Adjusted _rw_find_match calls accordingly.


	2008-03-28  Travis Vitek  <vitek@roguewave.com>

	STDCXX-784
	* tess/src/braceexp.cpp [_RWSTD_NO_NESTED_CLASS_ACCESS]: Work
	around issue that causes a compile failure when using private
	declarations in nested types.


	2008-03-24  Travis Vitek  <vitek@roguewave.com>

	STDCXX-784
	* tests/src/braceexp.cpp: Work around SunPro bug that causes a
	compile failure when using private declarations in nested types.


	2008-02-28  Travis Vitek  <vitek@roguewave.com>

	* tests/src/braceexp.cpp (rw_shell_expand): Eliminate shadowed
	variable warnings for s and n.


	2008-02-21  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/src/braceexp.cpp: #defined _RWSTD_TEST_SRC macro, #included <rw_braceexp.h>.
	(rw_brace_expand): Defined as _TEST_EXPORT.


	2008-04-04  Eric Lemings  <eric.lemings@roguewave.com>

	STDCXX-761
	* tests/src/new.cpp (rwt_checkpoint): Added internal
	rwt_checkpoint_compare function and call it for each array
	member disguised by original loop.


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

	* printf.cpp (rw_snprintf): NUL-terminated string just like
	snprintf() does.


	2008-03-15 Farid Zaripov <farid_zaripov@epam.com>

	* tests/src/printf.cpp (rw_vasnprintf): Add assertion when processing
	the "%{+}" directive to detect buffer overruns.


	2008-03-24  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-790
	* tests/src/printf.cpp (rw_vasnprintf): Corrected condition
	in assertion, introduced in r637394.


	2008-03-27  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-798
	* tests/self/0.printf.cpp (test_memptr): Corrected index calculations
	according to endianness. Removed colon from expected resulting strings.
	* tests/src/printf.cpp (_rw_fmtlong): Simplified code.
	(_rw_fmtllong): Copied from _rw_fmtlong with changing corresponding
	types to long long.
	(_rw_fmtpointer): Corrected index calculations according to endianness.
	Removed adding the colon separator.


	2008-04-14  Travis Vitek  <vitek@roguewave.com>

	STDCXX-857
	* tests/src/fmt_defs.h: Add flag to struct Buffer to indicate
	who owns the allocated buffer.
	* tests/src/printf.cpp (_rw_bufcat): Simplify logic to get
	new buffer size. Avoid checking guard bytes and deallocating
	buffer that we do not own.
	(rw_vasnprintf): Set flag indicating that the caller owns the
	supplied buffer.
	(_rw_fmtarray): Ditto.
	(_rw_fmt_expr): Ditto.
	* tests/self/0.printf.cpp (test_reallocate): Add new test to
	verify buffer reallocation works as expected.


	2008-04-14  Travis Vitek  <vitek@roguewave.com>

	STDCXX-857
	* tests/self/0.printf.cpp (test_reallocate): Revert test for
	changes added in r647908.


	2008-04-14  Travis Vitek  <vitek@roguewave.com>

	STDCXX-857
	* tests/src/printf.cpp: Revert r647908 which indirectly caused
	memory leaks in the test driver and several tests.
	* tests/src/fmt_defs.h: Ditto.


	2008-04-14  Travis Vitek  <vitek@roguewave.com>

	* tests/src/printf.cpp (_rw_bufcat): Simplify logic to get
	new buffer size. Allocate minimum initial size to avoid a
	first allocation that only contains the guard bytes. Add
	comment about guard bytes so others might not get tricked.
	* tests/src/process.cpp (_rw_vsystem): Avoid using static
	buffer (might be freed by _rw_bufcat).
	(_rw_vprocess_create): Ditto.


	2008-04-14 Farid Zaripov <farid_zaripov@epam.com>

	STDXX-862
	* tests/self/0.char.cpp (test_rw_widen): Use UserTraits<UserChar>::compare() instead
	of memcmp() to avoid false assertions due to possibly different binary representation
	of (long double)0 and (long double)0. on Sun C++ 5.9 / Linux.


	2008-02-18  Martin Sebor  <sebor@roguewave.com>

	* 0.braceexp.cpp (run_bash_tests): New function to verify
	rw_brace_expand() passes tests from the Bash test suite.
	(main): Added a handful of tests (some failing), called
	run_bash_tests.


	2008-03-30  Martin Sebor  <sebor@roguewave.com>

	* tests/self/0.braceexp.cpp (test): Used size_t instead
	of the _RWSTD_SIZE_T macro.
	(run_tests): Added tests for embedded whitespace.
	(run_brace_expand_tests): Ditto.
	(run_shell_expand_tests): Ditto.


	2008-04-11 Farid Zaripov <farid_zaripov@epam.com>

	* tests/self/0.fnmatch.cpp (main): Exercised some incomplete patterns.


	2008-02-05  Martin Sebor  <sebor@roguewave.com>

	* 0.printf.cpp (test_ios_bitmasks): Exercised the %{Is} extension
	to format ios::iostate values.


	2008-02-08  Martin Sebor  <sebor@roguewave.com>

	* display.cpp (print_target_plain): Increased column width to
	so as to fit the longest test name (currently 35 characters).


	2008-02-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-736
	* util/locale.cpp [_RWSTD_EDG_ECCP]: Suppressed EDG eccp error #450-D:
	the type "long long" is nonstandard, issued for uses of the type in
	the Linux pthreadtypes.h system header.
	* util/aliases.cpp [_RWSTD_EDG_ECCP]: Same.
	* util/memchk.cpp [_RWSTD_EDG_ECCP && !_WIN32](getpagesize): Declared.


	2008-02-21  Farid Zaripov  <farid_zaripov@epam.com>

	* util/path.cpp: Moved including of the system header files
	on top of the file, to get _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED
	macros defined for all included headers.


	2008-02-28  Farid Zaripov  <farid_zaripov@epam.com>

	* util/display.cpp (print_header_plain): Increased NAME column
	width to reflect the changes in r620027.


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

	STDCXX-281
	* util/collate.cpp (preprocess_collate): Break out of a loop on EOF
	to avoid an infinite loop.


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

	* util/collate.cpp: Updated year of copyright.


	2008-03-20  Martin Sebor  <sebor@roguewave.com>

	STDCXX-750
	* util/aliases.cpp (get_installed_locales): Replaced malloc() with
	a new expression to avoid having to check the returned value and
	to silence HP cadvise warning #20200-D: Potential null pointer
	dereference is detected.
	Changed the type of locals to silence HP aCC 6.16 remark #4298-D:
	addition result could be truncated before cast to bigger sized
	type.


	2008-03-31  Andrew Black  <ablack@roguewave.com>

	STDCXX-426
	* util/output.cpp (struct readback): Add convenience data structure
	for backwards file reading.
	(rbinit): Add method to initialize structure.
	(rbbof): Add method to check if structure points to the beginning
	of a file.
	(rbsync): Add method to synchronize the file handle the structure
	is built on to the structure.
	bgetc): Add method to retrieve a character from the file and
	move the structure one position closer to the start
	(rbscanf): Add methods to search for a string using the
	structure, possibly capturing an unsigned integer in the process.
	(check_test, check_compat_test): Alter to use above methods.


	2008-04-03  Farid Zaripov  <farid_zaripov@epam.com>

	* util/output.cpp (parse_output): Open file in binary mode
	(in text mode on Windows fread() returns value less than
	actually bytes read due to replacing "\r\n" to "\n").


	2008-04-04  Travis Vitek  <vitek@roguewave.com>

	* util/output.cpp (parse_output): Revert recent change to open file in
	binary mode.


	2008-04-07  Travis Vitek  <vitek@roguewave.com>

	* util/output.cpp (parse_output): Open file in binary mode
	to avoid problems with line end translation in rbinit() and
	rbgetc() on windows.
	(check_test): Remove line end sequence from scan because file
	opened in binary mode will not have translated line ends.
	(check_example): Open example output file in binary mode to be
	consistent with other file that is used for diff.


	2008-04-08  Andrew Black  <ablack@roguewave.com>

	STDCXX-426
	* util/output.cpp: Revert r643120, r644314, r645002, and
	r645445. The initial version of the patch for STDCXX-426 (r643120)
	resulted in failed processing of test output on windows. The
	subsequent changes were efforts to resolve this failure, but
	resulted either in failed example diffing on windows, or failed to
	resolve the observed misbehavior.


	2008-04-09  Martin Sebor  <sebor@roguewave.com>

	STDCXX-749
	* util/time.cpp (parse_era): Checked the pointer returned from
	strtok() before dereferencing it and issued an error when it's
	null to silence HP aCC 6.16 potential null pointer dereference
	warning.


	2008-04-11  Travis Vitek  <vitek@roguewave.com>

	STDCXX-751
	* util/locale_stub.cpp (main): Check pointer validity outside of
	strcpy argument list to avoid bogus cadvise warning.


2008-04-04  Farid Zaripov  <farid_zaripov@epam.com>

	* tests/regress/23.vector.modifiers.stdcxx-495.cpp: Regression test
	deleted since STDCXX-495 issue is deferred until 4.3 release.


2008-03-30  Martin Sebor  <sebor@roguewave.com>

	Merged rev 641091 from trunk.
	* tests/regress/18.limits.traps.stdcxx-624.cpp: Added a regression
	test for STDCXX-624.


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

	Merged rev 642297 from trunk.
	* etc/config/acc.config (WARNFLAGS): Coalesced multiple warning
	options into a handful with multiple arguments each.


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

	* bin/buildntest: Copied from the head of trunk.


2008-03-26  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r641324 from trunk.
	* tests/regress/21.string.append.stdcxx-438.cpp: Regression
	test for STDCXX-438 issue.


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

	Merged rev 641116 from trunk.
	* tests/self/0.new.cpp (run_test): Disabled diagnostics issued by
	the replacement operator new and delete defined by the test driver
	in response to deliberate errors caused by this test.


2008-03-25  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r640859 from trunk.
	* etc/config/src/EXCEPTION_SPECIFICATION_ON_NEW.cpp: #included <stddef.h> for size_t type.
	* etc/config/src/ICONV.cpp: Ditto.
	* etc/config/src/NEW_OFLOW_SAFE.cpp: Ditto.
	* etc/config/src/NEW_THROWS.cpp: Ditto.
	* etc/config/src/NEWLINE.cpp: Ditto.
	* etc/config/src/VA_LIST.cpp: Ditto.
	* etc/config/src/VSNPRINTF_RETURN.cpp: Ditto.


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

	Merged rev 640851 from trunk.
	* tests/iostream/27.stringbuf.virtuals.cpp (test_seekoff): Added
	a link to LWG issue 563.


2008-03-24  Travis Vitek  <vitek@roguewave.com>

	Merged rev 639495 from trunk

	2008-03-20  Travis Vitek  <vitek@roguewave.com>

	* tests/regress/23.set.stdcxx-216.cpp: Add regression test for
	issue caused by fix to STDCXX-216.
	* include/rw/_tree.cc: (insert): Ensure tree is not empty before
	comparing keys to avoid uninitialized memory read.


2008-03-18  Eric Lemings <eric.lemings@roguewave.com>

	STDCXX-488
	* etc/config/gcc.config: Add more link flags specifying install
	name and library versioning on Darwin (MacOS X) platforms.


2008-03-18  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r638433 from trunk
	* include/loc/_num_get.h (__rw_check_overflow_int): Corrected a typo.


2008-03-18  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r638382 from trunk with a fix for STDCXX-648
	* include/fstream: Change 'class' keyword to 'struct' to hide MSVC warning C4099:
	'std::ios_base::Init' : type name first seen using 'struct' now seen using 'class'.
	* include/istream [_RWSTD_NO_EXT_NUM_GET] (__rw_extract(istream&, short &)):
	New overload, implemented thus__rw_extract<long>.
	[_RWSTD_NO_EXT_NUM_GET] (__rw_extract(istream&, int &)):
	New overload, implemented thus__rw_extract<long>.
	* src/podarray.h (_C_length): Use inplace algorithm instead of
	char_traits::length when _RWSTD_NO_EXT_CHAR_TRAITS_PRIMARY macro is #defined.


2008-03-18  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r638369 and r638370 from trunk

	2008-03-18  Farid Zaripov  <farid_zaripov@epam.com>

	* include/loc/_num_get.cc (num_get::get): Code checking for overflow moved from here...
	* include/loc/num_get.h (_rw_check_overflow_{short|int}): ... to here.
	* include/rw/_iosfwd.h: Added new define _RWSTD_FMTFLAGS (used in _rw_check_overflow_{short|int}).

	2008-03-18  Farid Zaripov  <farid_zaripov@epam.com>

	* src/podarray.h (_C_length): New method to calculate the length of the pod array.
	(__rw_pod_array): Use _C_length() instead of char_traits<>::length().
	(acquire): Ditto.
	(append): Ditto.
	(assign): Ditto.


2008-03-17  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r637897 from trunk.
	* include/string.cc (__replace_aux): Partially reverted
	changes for STDCXX-170 (r629550).

	* tests/regress/21.string.replace.stdcxx-170.cpp: Deleted
	regression test since STDCXX-170 issue deferred to 4.3 release.


2008-03-14 Farid Zaripov <farid_zaripov@epam.com>

	Merge changes from trunk.

	2008-02-15 Farid Zaripov <farid_zaripov@epam.com>

	* tests/regress/22.locale.num.put.stdcxx-2.cpp: New regression test for STDCXX-2 issue.


	2008-02-19 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-2
	* src/num_put.cpp (__rw_fix_flt): Added new parameter: precision.
	Added workaround for STDCXX-2 issue.
	(__rw_put_num): Pass precision value in the __rw_fix_flt().


	2008-02-19 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-2
	* src/num_put.cpp (__rw_fix_flt): Updated workaround for STDCXX-2 issue.
	Fixed detection of infinity (#INF), added detection of the quiet NAN (#IND).


	2008-02-22  Farid Zaripov  <farid_zaripov@epam.com>

	* src/memattr.cpp (__rw_memattr): Declare errno_save as unused to disable
	eccp warning #177-D "variable "errno_save" declared but not referenced".


	2008-02-22  Farid Zaripov  <farid_zaripov@epam.com>

	* src/time_put.cpp (__rw_get_timepunct): Remove const qualifier to disable
	eccp warning #191-D: "type qualifier is meaningless on cast type".


	2008-02-22  Martin Sebor  <sebor@roguewave.com>

	* time_put.cpp (__rw_get_timepunct): Removed unnecessary
	reinterpret_cast in a call to operator delete().


2008-03-14 Farid Zaripov <farid_zaripov@epam.com>

	Merge r627644 from trunk.
	* src/podarray.h: Don't export internal template class __rw_pod_array<>.
	Use _RWSTD_INSTANTIATE() macro for consistency.
	[__GNUG__ >= 3]: Add #pragma to disable gcc error
	"ISO C++ forbids the use of 'extern' on explicit instantiations".
	* src/ti_podarray.cpp: #define two additional macro values to
	properly expand _RWSTD_INSTANTIATE() macro.


2008-03-14 Farid Zaripov <farid_zaripov@epam.com>

	Merge changes from trunk.


	2008-02-08 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-375
	* include/istream (std::getline, std::operator>>): Declaration moved from here ...
	* include/string (std::getline, std::operator>>): ... to here.
	* include/istream.cc (std::getline, std::operator>>): Added comment about
	declarations in <string>


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

	STDCXX-308
	* include/fstream (~basic_filebuf): Caught and swallowed all exceptions.
	* include/fstream.cc (close): Closed file regardless of whether the call
	to overflow() or codecvt::unshift() fails or throws, as required by the
	resolution of LWG issue 622.


	2008-02-13  Martin Sebor  <sebor@roguewave.com>

	STDCXX-695
	* include/loc/_money_get.cc (_C_get): Introduced a convenience typedef
	for size_t, changed the type of the local __sign to int and cast it to
	size_t to silence the pesky HP aCC 6 remark #4271-D: type conversion
	may lose sign.
	* include/loc/_messages.cc (do_get): Same.
	* include/sstream (str): Avoided pointer math to silence remark #4271.


	2008-02-14  Farid Zaripov  <farid_zaripov@epam.com>

	* include/rw/_defs.h: Move MSVC specific #pragma's from here...
	* include/rw/_config-msvc.h: ... to here. Disable warning C4661.


	2008-02-14  Farid Zaripov  <farid_zaripov@epam.com>

	* include/rw/_defs.h: #define new macro _RWSTD_TI_EXPORT
	to prevent MSVC warning C4910: "'__declspec(dllexport)'
	and 'extern' are incompatible on an explicit instantiation".
	* include/fstream: Use _RWSTD_TI_EXPORT instead of
	_RWSTD_EXPORT on an explicit instantiations.
	* include/istream: Ditto.
	* include/loc/_messages.h: Ditto.
	* include/loc/_money_get.h: Ditto.
	* include/loc/_money_put.h: Ditto.
	* include/loc/_moneypunct.h: Ditto.
	* include/loc/_num_get.h: Ditto.
	* include/loc/_num_put.h: Ditto.
	* include/loc/_numpunct.h: Ditto.
	* include/loc/_punct.h: Ditto.
	* include/loc/_time_get.h: Ditto.
	* include/loc/_time_put.h: Ditto.
	* include/ostream: Ditto.
	* include/rw/_basic_ios.h: Ditto.
	* include/rw/_ioinsert.h: Ditto.
	* include/rw/_mutex.h: Ditto.
	* include/sstream: Ditto.
	* include/streambuf: Ditto.
	* include/string: Ditto.


	2008-02-22  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-375
	* include/string: Declarations of the string inserter's and extractor's
	are moved to  #included <rw/_stringio.h>.
	* include/ostream: Definition of the inline string inserter moved to
	#included <rw/_stringio.h>.
	* include/istream: Definition of the inline std::getline() moved to
	#included <rw/_stringio.h>.
	* include/istream.cc: Definitions of the string extractor's are moved
	to rw/_stringio.cc file.
	* include/rw/_stringio.h: New header file with declarations of the
	string inserter's and extractor's.
	* include/rw/_stringio.cc: New file with definitions of the string extractors.
	* include/rw/_stringio.c: New file for compilers with implicit
	inclusion feature.
	* src/export/cpp: #included <rw/_stringio.h> and <rw/_stringio.cc>.


2008-03-14 Farid Zaripov <farid_zaripov@epam.com>

	Merge r637079 from trunk with a fix for STDCXX-752
	* util/gencat.cpp: Asserted precondition to silence HP aCC
	warning #20200-D: Potential null pointer dereference.


2008-03-12 Farid Zaripov <farid_zaripov@epam.com>

	Merged r634731 from trunk.
	
	2008-01-18  Travis Vitek  <vitek@roguewave.com>

	* examples/include/stocks.h: Change class name from
	FrankFurtStockXchange to FrankfurtStockXchange for
	correctness.
	* examples/tutorial/stocks.cpp (main): Ditto.


	2008-01-18  Travis Vitek  <vitek@roguewave.com>

	* examples/include/stocks.h [AIX, __osf__]: Update locale names
	so that example produces useful output.


	2008-02-13  Martin Sebor  <sebor@roguewave.com>

	* examples/tutoria/alg7.cpp (partial_sort_example): Removed redundant
	list ctor argument to get around an otherwise hard to silence HP aCC
	6 remark #4271-D type conversion may lose sign. See STDCXX-727.
	(merge_example): Ditto


	2008-02-14  Farid Zaripov  <farid_zaripov@epam.com>

	* examples/manual/money_manip.cpp (put_money): Change the parameter type
	from long double to const long double& to prevent assigning the reference
	to the temporary value which is deleted when reference is used..


2008-03-12 Farid Zaripov <farid_zaripov@epam.com>

	Merged r634731 from trunk.
	
	2007-11-12  Martin Sebor  <sebor@roguewave.com>

	* GNUmakefile.exm (RUNFLAGS): Bumped up virtual size limit
	to half a gig to prevent errors on HP-UX/IPF.


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

	* GNUmakefile.exm (RUNFLAGS): Updated comment and moved it
	above the definition of the variable.


	2008-02-28  Farid Zaripov  <farid_zaripov@epam.com>

	* etc/config/gcc.config [CYGWIN]: Force .exe suffix for the executables.


	2008-02-14  Farid Zaripov  <farid_zaripov@epam.com>

	* etc/config/windows/configure.wsf (configure): Save the
	configuration info in global variable. Don't compile libraries
	before the compiling the tests, because the libraries could depend
	on some of the tests.
	(compileLibs): Function removed as unnecessary.
	(runExeTests): Build the libraries in common order with the tests.
	(checkDependencies): Don't skip the libraries.


	2008-02-28  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-507
	* etc/config/gcc.config [CYGWIN]: #define _RWSHARED in shared builds.
	* include/rw/_config-gcc.h [__CYGWIN__ && _RWSHARED]: disable exporting
	template instantiations in shared builds.


	2008-03-07  Farid Zaripov  <farid_zaripov@epam.com>

	* etc/config/src/nodbg.h: New header file with definition of
	the nodbg() to prevent GUI popups on Windows.
	* etc/config/src/DYNAMIC_CAST.cpp: Removed invoking of the
	_CrtSetReportMode(), using nodbg() instead.
	* etc/config/src/GLOBAL_BAD_ALLOC.cpp: Ditto.
	* etc/config/src/STD_BAD_ALLOC.cpp: Ditto.
	* etc/config/src/THREAD_SAFE_EXCEPTIONS.cpp: Ditto.
	* etc/config/src/NO_DBL_TRAPS.cpp: Invoke nodbg() before test to
	prevent the Dr.Watson popups (was detected on Borland Turbo C++).


	2008-03-07  Farid Zaripov  <farid_zaripov@epam.com>

	* etc/config/src/NEW_THROWS.cpp: Split test to two independent
	tests: NEW_THROWS and NEW_OFLOW_SAFE to prevent _RWSTD_NO_NEW_THROWS
	#defined when operator new() throws exception, but check for overflow
	is failed with Access Violation (as on the Borland Turbo C++).
	* etc/config/src/NEW_OFLOW_SAFE.cpp: New config test to check if
	operator new() checks the argument for overflow.


2008-03-04  Travis Vitek  <vitek@roguewave.com>

	Merged rev 629291 from trunk

	2008-02-19  Martin Sebor  <sebor@roguewave.com>

	STDCXX-735
	* tests/src/process.cpp (EINTR, SIGALRM): Defined to the known
	Linux value for EDG eccp in strict mode if not already #defined.



2008-03-03  Travis Vitek  <vitek@roguewave.com>

	Merged rev 633233 from trunk.

	2008-03-03  Travis Vitek  <vitek@roguewave.com>

	STDCXX-665
	* tests/localization/22.locale.messages.cpp [_RWSTD_OS_AIX] (run_test):
	Set LC__FASTMSG environment variable to false to work around a
	catopen() issue on AIX.


2008-02-26  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r629828 from trunk with a fix for STDCXX-738
	* etc/config/src/INFINITY.cpp: #including the "float_defs.h"
	instead of <float.h> to #define FLT_MIN, DBL_MIN, LDBL_MIN
	constants on EDG eccp.


2008-02-26  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r627616 from trunk.
	* etc/config/src/extern_function_template_imp.h: New header file to
	check the extern function templates.
	* etc/config/src/extern_function_template_imp.cpp: Removed definitions
	of struct S<> and foobar<>(), #included extern_function_template_imp.h.
	* etc/config/src/EXTERN_FUNCTION_TEMPLATE.cpp: Ditto.


2008-02-26  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r629825 from trunk.
	* etc/config/src/float_defs.h: New file with a definitions
	of the floating point constants.
	* etc/config/src/FLOAT.cpp: #including the "float_defs.h"
	instead of defining the floating point constants in file.
	* etc/config/src/LDBL_PRINTF_PREFIX.cpp: Ditto.

	Merged r629900 from trunk.
	* etc/config/src/FLOAT.cpp: Updated comment, erroneously changed in
	r629825.


2008-02-22  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r629550 from trunk with a fix for STDCXX-170
	* include/string.cc (__rw_replace): Use temporary string object
	when __first2 and __last2 are input iterators to satisfy string
	exception safety requirements (string should be unchanged if an
	exception occurs during replacing).
	(__rw_replace_aux): Correctly replacing characters in the case
	when [__first2, __last2) range belongs to the self string.


2008-02-22  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r629551 from trunk.
	* tests/regress/21.string.replace.stdcxx-170.cpp: New
	regression test for STDCXX-170 issue.

2008-02-21  Farid Zaripov  <farid_zaripov@epam.com>

	Merged r629812 from trunk with a fix for STDCXX-737
	* etc/config/GNUmakefile.cfg: Check for the LDOPTS dependences
	and setup LOPT variable when building the executable target
	(restored r627618 after fixing bug).


2008-02-14  Travis Vitek  <vitek@roguewave.com>

	Merged rev 619587 from trunk.

	2008-02-07  Travis Vitek  <vitek@roguewave.com>

	STDCXX-249
	* include/istream.cc (operator>>): Read stream data in blocks where
	possible for efficiency.
	* include/streambuf: Add operator>> as friend for access to protected
	member functions.



2008-02-11  Travis Vitek  <vitek@roguewave.com>

	Merged rev 604073 from trunk.

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

	STDCXX-673
	* etc/config/src/LIMITS.cpp (main): Always use signed
	types for definition of _RWSTD_INT[8,16,32,64]_T macros.


2008-02-09  Farid Zaripov  <farid_zaripov@epam.com>

	* include/exception: Swapped member declarations for ICC/Linux
	and MSVC | ICC/Windows to simplify the preprocessor condition.
	* src/exception.cpp: Ditto. Use MSVC code on ICC/Windows.


2008-02-09  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-720
	* tests/regress/21.string.io.stdcxx-250.cpp: Give name to
	the unnamed struct to workaround bug of the ICC/Windows.
	* tests/regress/27.filebuf.virtuals.stdcxx-522.cpp: Ditto.


2008-02-08  Farid Zaripov  <farid_zaripov@epam.com>

	* etc/config/windows/icc-10.1.config: New config file for 32-bit
	ICC 10.1.
	* etc/config/windows/icc-10.1-x64.config: New config file for 64-bit
	ICC 10.1.


2008-02-08 Farid Zaripov <farid_zaripov@epam.com>

	Merged r619904 from trunk with a fix for STDCXX-548.
	
	* src/punct.h: New header file with declaration of the
	__rw_get_stdio_fmat().
	* src/num_get.cpp: #included punct.h, removed declaration of
	the __rw_get_stdio_fmat().
	* src/num_put.cpp: Ditto.
	* src/punct.cpp: #included punct.h, use _RWSTD_STREAMSIZE instead
	of _STD::streamsize.


2008-02-06  Farid Zaripov  <farid_zaripov@epam.com>

	STDCXX-685
	* etc/config/windows/configure.wsf (makeLibrary): Use '\'
	instead of '/' in path for consistency.


2008-02-05 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-698
	* etc/config/src/headers.inc: Removed duplicate of the wcstod.


2008-02-04  Travis Vitek  <vitek@roguewave.com>

	Merged rev 618385 from trunk.

	STDCXX-625
	* tests/src/process.cpp (rw_waitpid): Use sigaction() instead of
	signal() where available.



2008-02-02  Travis Vitek  <vitek@roguewave.com>

	Merged rev 617841 from trunk.

	* tests/regress/21.string.stdcxx-231.cpp: Fix compile error.


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

	Merged rev 616976 from trunk.
	
	2008-01-30 Martin Sebor <sebor@roguewave.com>

	STDCXX-705
	* tests/self/0.printf.cpp [_RWSTD_OS_HP_UX](bad_address): Used
	(0 - 32) as an invalid address.


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

	Merge 617300 from trunk.

	* include/istream.cc: Call clear() instead of erase() to avoid
	unnecessary overhead and for consistency.



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

	Merged rev 617251 and 617276 from trunk.

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

	STDCXX-231
	* include/string (clear): Avoid deallocating string body unless
	necessary.
	* include/string.cc (replace): Ditto.
	* include/istream.cc (getline): Call clear () instead of erase()
	to avoid unnecessary overhead.

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

	* tests/regress/21.string.stdcxx-231.cpp: Added regression test for
	STDCXX-231.



2008-01-30  Travis Vitek  <vitek@roguewave.com>

	Merged rev 616673 with a fix for STDCXX-216 fron trunk.
	* include/rw/_tree.cc (insert): Optimize insertion when hint iterator
	is not begin() or end(). Add some much needed documentation.



2008-01-29  Travis Vitek  <vitek@roguewave.com>

	Merged rev 615419 with a fix for STDCXX-573 from trunk.
	* etc/config/makefile.rules: Use WITH_PURIFY or WITH_CADVISE to enable
	or disable purify and cadvise tools.
	* GNUmakefile: Document new parameters and cache them in makefile.in.


2008-01-29 Farid Zaripov <farid_zaripov@epam.com>

	* include/rw/_config-msvc.h: Disable compiler warning C4231.


2008-01-28 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-712
	* tests/utilities/20.temp.buffer.cpp [_MSC_VER]: Disabled
	"Invalid allocation size: 4294967292 bytes" message box from malloc().


2008-01-24 Farid Zaripov <farid_zaripov@epam.com>

	* tests/regress/21.string.stdcxx-162.cpp: Corrected name of the file
	in comment.


2008-01-24 Farid Zaripov <farid_zaripov@epam.com>

	* include/rw/_allocator.h [!_RWSTD_ALLOCATOR] (address): Corrected
	type in reinterpret_cast expression.


2008-01-24 Farid Zaripov <farid_zaripov@epam.com>

	* include/string.cc (replace): Use copy () method instead of move ().


2008-01-24 Farid Zaripov <farid_zaripov@epam.com>

	* include/string.cc: Corrected formatting.


2008-01-24 Farid Zaripov <farid_zaripov@epam.com>

	* include/rw/_config-msvcrt.h [_MSC_VER <= 1300]:
	#define _RWSTD_LONG_LONG as __int64 on MSVC 7.0.


2008-01-23  Martin Sebor  <sebor@roguewave.com>

	Merged rev 614760 with a fix for STDCXX-704 from trunk.
	* driver.cpp [__EDG__](RW_TEST_COMPILER): Moved conditional #definition
	last to avoid preempting the more-specific compiler macro.
	[__HP_aCC](RW_TEST_COMPILER): Correctly detected HP aCC 6 even though
	it uses the EDG front end and added the version of EDG eccp to the
	definition of the macro.


2008-01-22  Farid Zaripov  <farid_zaripov@epam.com>

	* include/rw/_mutex.h: Remove unused declaration of the
	InterlockedXXX() Win32 API functions.
	* etc/config/src/ATOMIC_OPS.cpp: Delete unused configuration test.


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

	Merged rev 611016 and 611019 from trunk.

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

	* 27.ostream.unformatted.stdcxx-626.cpp: Added regression test
	for STDCXX-626.

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

	STDCXX-626
	* ostream.cc (flush): Implemeneted proposed resolution of LWG
	issue 581 and reverted the resolution of issue 60 wrt ostream
	::flush().


2008-01-16  Farid Zaripov  <farid_zaripov@epam.com>

	* include/rw/_mutex.h: Use intrinsic interlocked functions on MSVC 7.1
	and ICC.
	Declare the interlocked functions instead of #including <intrin.h>.


2008-01-16  Farid Zaripov  <farid_zaripov@epam.com>

	* include/rw/_config-msvcrt.h: Don't #define _RWSTD_NO_LONG_LONG as
	__int64 if long long type is supported by compiler.


2008-01-12  William A. Rowe, Jr.  <wrowe@apache.com>

	* /repos/asf/incubator/stdcxx: stdcxx has graduated to a TLP,
	moved svn to...
	* /repos/asf/stdcxx: ...here.


2008-01-11  Travis Vitek  <vitek@roguewave.com>

	Merged rev 611307 from trunk with implementation of STDCXX-577

	* examples/include/stocks.h: Removed StockXchange destructor
	implementation.
	* examples/tutorial/stocks.cpp: Add StockXchange destructor
	that properly deallocates memory.
	(main): Avoid allocation of facets when the locale that uses
	them is not available. Change Xchange to hold pair values to
	avoid having to deallocate those pairs explicitly. Cache the
	locale initially imbued on stream, then restore it to ensure
	that facets are deallocated.



2008-01-11  Travis Vitek  <vitek@roguewave.com>

	Merged rev 610576 from trunk with implementation of STDCXX-605.

	* examples/tutorial/dynatype.cpp: Add overloaded method
	that discards const to avoid looking in wrong map when
	non-const conversion operator is used with a const type.
	(main): Display text and converted value in two separate
	statements to ensure output is generated the same on all
	platforms. Add a return 0 for correctness.
	* examples/tutorial/out/dynatype.out: Update output file
	to match expected output format.


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

	Merged revs 608712 and 608713 from trunk:

	2008-01-03 Martin Sebor <sebor@roguewave.com>
	
	STDCXX-195
	* include/ansi/cstdio [_RWSTD_STRICT_ANSI] (fpos_t, remove, rename,
	tmpfile, tmpnam, fclose, fflush, fopen, freopen, setbuf, setvbuf,
	fprintf, fscanf, printf, scanf, sprintf, sscanf, vfprintf, vprintf,
	vsprintf, fgetc, fgets, fputc, fputs, getc, getchar, gets, putc,
	putchar, puts, ungetc, fread, fwrite, fgetpos, fseek, fsetpos, ftell,
	rewind, clearerr, feof, ferror, perror): Undefined shadow macros in
	strict mode (only).

	2008-01-03 Martin Sebor <sebor@roguewave.com>

	* tests/regress/27.cstdio.stdcxx-195.cpp: New regression test for
	STDCXX-195.


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

	Merged rev 605744 with a tweak for STDCXX-240 from trunk.
	* include/rw/_config-xlc.h [__IBMCPP__]: Conditionally disable
	exception support if command line option is set and the compiler
	is version 7.0 or later.


2007-12-19 Farid Zaripov <farid_zaripov@epam.com>

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


2007-12-19 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-250
	* istream.cc (operator>>): Move counter __i out from the try/catch block
	and rename to __gcount for consistency with getline(). Increment
	__gcount after sbumpc() but before sgetc() to correctly reflect the
	number of extracted characters. Set ios_base::failbit if no characters
	extracted.


2007-12-19 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-226
	* include/rw/_defs.h (_RWSTD_RATIO_DIVIDER): New macro defined the value
	to divide the _RWSTD_{NEW|STRING}_CAPACITY_RATIO.
	(_RWSTD_NEW_CAPACITY_RATIO): The value with floating point replaced to
	integer value using multiplication with _RWSTD_RATIO_DIVIDER.
	(_RWSTD_STRING_CAPACITY_RATIO): Ditto.
	* include/rw/_specialized.h (__rw_new_capacity): Floating point
	operations replaced to integer operations.
	* include/sstream (_C_grow): Ditto.
	* include/string (__rw_new_capacity): Ditto.


2007-12-19 Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-585
	* etc/config/src/BAD_ALLOC_ASSIGNMENT.cpp: Don't define ~bad_alloc()
	when testing the presence of the other members to avoid multiply
	defined sybmol linker errors.


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

	Merged rev 605368 with a fix for STDCXX-240 from trunk.
	* include/rw/_config-acc.h: Conditionally disable exception
	support if appropriate command line option is set.
	* include/rw/_config-deccxx.h: Ditto.
	* include/rw/_config-eccp.h: Ditto.
	* include/rw/_config-gcc.h: Ditto.
	* include/rw/_config-icc.h: Ditto.
	* include/rw/_config-mipspro.h: Ditto.
	* include/rw/_config-xlc.h: Ditto.


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

	Merged revs 601922, 601927, and 601935 from trunk:

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

	STDCXX-443
	* etc/config/vacpp.config: Remove -Q compile flag for AIX
	optimized builds to be consistent with IBM documentation.

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

	STDCXX-676
	* tests/locale/22.locale.time.put.cpp [_MSC_VER] (rw_strftime):
	Avoid passing unsupported format specifiers to strftime().

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

	STDCXX-603
	* include/valarray (apply): Avoid use of typedef in function
	type to avoid linker error with VisualAge C++.


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

	Merged rev 604038 with a fix for STDCXX-524 from trunk.
	* tests/localization/22.locale.codecvt.length.cpp (create_locale):
	Check return code from rw_snprintf().
	* tests/localization/22.locale.codecvt.out.cpp (create_locale):
	Ditto.
	* tests/localization/22.locale.time.get.cpp (make_LC_TIME):
	Ditto. Use rw_snprintf() instead of sprintf(), use larger
	fixed buffer sizes.
	* tests/localization/22.locale.time.put.cpp (make_LC_TIME):
	Ditto.
	* tests/src/locale.cpp (): Ditto.


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

	Merged in rev 602770 with a fix for STDCXX-650 from trunk.
	* etc/config/makefile.rules: Duplicated rules for sources matching
	"*.out.cpp" and objects matching "*.out.o" (Only the latter appears
	necessary).


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

	* etc/config/windows/build.wsf (DiffTime): New function to get the
	difference between two times.
	(TimeEcho): Modified to print time similat to the unix script.
	(build): Print relative time per each build step instead of
	printing the timestamp.


2007-11-29 Travis Vitek <vitek@roguewave.com>

        Merged rev 601040 with fix for STDCXX-604 from trunk.
        * tests/regress/23.bitset.cons.stdcxx-297.cpp (main): Avoid passing
        temporary to constructor to work around ICE with IBM VA C++.


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

	Merged rev 594730 from trunk with the implementation of STDCXX-623.

	* util/target.h (target_status): Changed the type of user, system, and
	wall clock time counters from clock_t* to plain clock_t and renamed to
	usr_time, sys_time, and wall_time, respectively.
	* util/exec.cpp (calculate_usage, exec_file): Eliminated static locals
	and instead directly used the target_status object passed in by caller.
	(exec_file):
	* util/display.cpp (print_status_plain, print_status_verbose): Checked
	for times equal to -1 as an indicator of validity.
	(print_footer_plain): Printed cumulative times for all targets.
	* util/runall.cpp (run_target): Accumulated target times.


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

	* etc/config/windows/build.wsf (TimeEcho): Print timestamp with the
	format identical to unix format.


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

	* include/streambuf (imbue): Removed name of the unused parameter.


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

	* 27.streambuf.imbue.stdcxx-307.cpp (main): Added missing "return 0".


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

	* 27.streambuf.imbue.stdcxx-307.cpp: New regression test for STDCXX-307.


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

	STDCXX-307
	* streambuf (imbue): Code storing the locale moved from here...
	(pubimbue): ... to here.


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

	STDCXX-671
	* include/loc/_convenience.h: _V3_USE_FACET macro renamed to _RWSTD_USE_FACET.
	* include/loc/_messages.cc: Ditto.
	* include/loc/_money_get.cc: Ditto.
	* include/loc/_money_put.cc: Ditto.
	* include/loc/_num_get.cc: Ditto.
	* include/loc/_num_put.cc: Ditto.
	* include/loc/_punct.cc: Ditto.
	* include/loc/_time_get.cc: Ditto.
	* include/loc/_time_put.cc: Ditto.
	* include/rw/_defs.h: Ditto.
	* tests/localization/22.locale.moneypunct.cpp: Ditto.


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

	STDCXX-637
	* include/ansi/cwchar [_RWSTD_STRICT_ANSI]: #undefine getwc
	and putwc masking macros.
	* tests/strings/21.cwchar.cpp (test_macros): Issue rw_warn()
	instead of rw_assert() in non strict ANSI mode.
	(test_functions): Issue rw_warn() instead of rw_assert().


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

	STDCXX-663
	* rw/_config_msvcrt.h: #define _RWSTD_NO_WCSTOK and _RWSTD_NO_WCSTOK_IN_LIBC
	macros since the MSVC has the non-standard prototype of the wcstok().
	* ansi/cwchar [_MSC_VER >= 1400]: Define inline wcstok() function using wcstok_s().
	#undefine _RWSTD_NO_WCSTOK and _RWSTD_NO_WCSTOK_IN_LIBC macros.


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

	* 26.valarray.cassign.cpp (run_test): Corrected condition in preprocessor directive.


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

	STDCXX-649
	* printf.cpp (_rw_fmtinteger): Implement `z' format specifier
	support to avoid issues on platforms where size_t is not the
	same size as int.


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

	STDCXX-607
	* messages.cpp (__rw_cat_close): Put lock guard into local scope
	to avoid recursive acquire on error.


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

	STDCXX-594
	* include/rw/_defs.h (_V3_LOCALE): Replaced the obsolete macro with _STD.
	* include/loc/_locale.h: Ditto.
	* include/loc/_codecvt.cc: Ditto.
	* include/loc/_codecvt.h: Ditto.
	* include/loc/_collate.cc: Ditto.
	* include/loc/_collate.h: Ditto.
	* include/loc/_convenience.h: Ditto.
	* include/loc/_ctype.cc: Ditto.
	* include/loc/_ctype.h: Ditto.
	* include/loc/_messages.cc: Ditto.
	* include/loc/_messages.h: Ditto.
	* include/loc/_money_get.cc: Ditto.
	* include/loc/_money_put.cc: Ditto.
	* include/loc/_moneypunct.cc: Ditto.
	* include/loc/_moneypunct.h: Ditto.
	* include/loc/_num_get.cc: Ditto.
	* include/loc/_num_put.cc: Ditto.
	* include/loc/_numpunct.cc: Ditto.
	* include/loc/_numpunct.h: Ditto.
	* include/loc/_time_get.cc: Ditto.
	* include/loc/_time_put.cc: Ditto.
	* src/use_facet.h: Ditto.


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

	* terminate.h: Removed eventually inserted duplicate lines.


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

	* extern_template_imp.cpp: #include <config.h> replaced to
	#include "config.h" for consistency.
	* LIMITS.cpp: #include "config.h" placed after the ASL header.


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

	STDCXX-558
	* BAD_ALLOC_COPY_CTOR.cpp: Removed unnecessary #include "config.h".
	* 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.
	* BOOL.cpp: Ditto.
	* CLASS_PARTIAL_SPEC.cpp: Ditto.
	* COLLAPSE_STATIC_LOCALS.cpp: Ditto.
	* COLLAPSE_TEMPLATE_LOCALS.cpp: Ditto.
	* COLLAPSE_TEMPLATE_STATICS.cpp: Ditto.
	* CTYPE_BITS.cpp: Ditto.
	* DEFAULT_TEMPLATE_ARGS.cpp: Ditto.
	* DEPRECATED_LIBC_IN_STD.cpp: Ditto.
	* EXCEPTION_ASSIGNMENT.cpp: Ditto.
	* EXCEPTION_COPY_CTOR.cpp: Ditto.
	* EXCEPTION_DEFAULT_CTOR.cpp: Ditto.
	* EXCEPTION_DTOR.cpp: Ditto.
	* EXCEPTION_WHAT.cpp: Ditto.
	* EXPLICIT.cpp: Ditto.
	* EXPLICIT_ARG.cpp: Ditto.
	* EXPLICIT_FUNC_INSTANTIATION.cpp: Ditto.
	* EXTERN_FUNCTION_TEMPLATE.cpp: Ditto.
	* EXTERN_INLINE.cpp: Ditto.
	* EXTERN_TEMPLATE.cpp: Ditto.
	* FUNCTION_TRY_BLOCK.cpp: Ditto.
	* GLOBAL_TYPE_INFO.cpp: Ditto.
	* ICONV.cpp: Ditto.
	* lib_exceptions.lib.cpp: Ditto.
	* LLONG_PRINTF_PREFIX.cpp: Ditto.
	* LONG_DOUBLE.cpp: Ditto.
	* MUNMAP.cpp: Ditto.
	* NATIVE_WCHAR_T.cpp: Ditto.
	* NEW_CLASS_TEMPLATE_SYNTAX.cpp: Ditto.
	* NEWLINE.cpp: Ditto.
	* NL_TYPES_H.cpp: Ditto.
	* NO_DBL_TRAPS.cpp: Ditto.
	* NO_INT_TRAPS.cpp: Ditto.
	* STD_TERMINATE.cpp: Ditto.


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

	STDCXX-557
	* terminate.h: New header file with a definition of the std::terminate().
	* BAD_ALLOC_ASSIGNMENT.cpp (terminate): Function removed,
	#included "terminate.h" instead.
	* DYNAMIC_CAST.cpp: Ditto.
	* EXCEPTIONS.cpp: Ditto.
	* FLOAT.cpp: Ditto.
	* GLOBAL_BAD_ALLOC.cpp: Ditto.
	* GLOBAL_BAD_CAST.cpp: Ditto.
	* GLOBAL_BAD_EXCEPTION.cpp: Ditto.
	* GLOBAL_BAD_TYPEID.cpp: Ditto.
	* GLOBAL_EXCEPTION.cpp: Ditto.
	* GLOBAL_UNCAUGHT_EXCEPTION.cpp: Ditto.
	* LIB_EXCEPTIONS.cpp: Ditto.
	* LIMITS.cpp: Ditto.
	* NEW_THROWS.cpp: Ditto.
	* OPERATOR_DELETE_ARRAY_PLACEMENT.cpp: Ditto.
	* OPERATOR_DELETE_PLACEMENT.cpp: Ditto.
	* OPERATOR_NEW_ARRAY_PLACEMENT.cpp: Ditto.
	* OPERATOR_NEW_PLACEMENT.cpp: Ditto.
	* STD_BAD_ALLOC.cpp: Ditto.
	* STD_BAD_CAST.cpp: Ditto.
	* STD_BAD_EXCEPTION.cpp: Ditto.
	* STD_BAD_TYPEID.cpp: Ditto.
	* STD_EXCEPTION.cpp: Ditto.
	* STD_UNCAUGHT_EXCEPTION.cpp: Ditto.
	* TYPE_INFO_DTOR.cpp: Ditto.


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

	* BAD_ALLOC_ASSIGNMENT.cpp: Corrected __GNUG__ macro (was GNUG__).


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

	Merged rev 596704 from trunk.
	* rw_locale.h (rw_set_locale_root): Updated comments.


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

	Merged r596354 from trunk with a fix for STDCXX-669.
	* 20.auto.ptr.cpp (test_auto_ptr): Worked around bug in MSVC 7.x.


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

	* 22.locale.ctype.cpp (run_test<>): The compile time
	checks moved to test_libstd(); The function run_test<>()
	removed; The test_libstd() and test_libc() functions are
	invoked from non-template run_test() to invoke them in
	the following order: test_libc<char>(), test_libc<wchar_t>(),
	test_libstd<char>(), test_libstd<wchar_t>().
	(write_string): Function removed.
	(create_locale): Function removed. The locale source character
	array moved from here ...
	(test_libstd): ... to here. Use rw_create_locale() instead of create_locale().


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

	* 22.locale.ctype.cpp (test_libstd_toupper_tolower): Added braces
	around multiline TEST macro.
	(test_libstd_mask): Corrected '\xa0' value to '\xa2'.


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

	* 22.locale.ctype.is.cpp (run_test<>): The compile time
	checks moved to test_libstd(); The function run_test<>()
	removed; The test_libstd() and test_libc() functions are
	invoked from non-template run_test() to invoke them in
	the following order: test_libc<char>(), test_libc<wchar_t>(),
	test_libstd<char>(), test_libstd<wchar_t>().


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

	Merged r596316 from trunk.
	* deque (_C_bufsize): Use _RWSTD_NEW_CAPACITY macro
	instead of __rw_new_capacity().
	* list.cc (_C_add_buffer): Ditto.
	* rw/_tree.cc (_C_add_new_buffer): Ditto.
	* vector.cc (_C_realloc): Ditto.


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

	* examples/tutorial/icecream.cpp: define
	eventComparator::operator() as a const member.
	* doc/stdlibug/11-3.html: Ditto.


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

	* stdlibug/11-3.html: Updated example source according to
	changes in r594966.


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

	STDCXX-661
	* tutorial/icecream.cpp (class event): Removed unused operator>().
	(eventComparator): Defined as separate struct instead of typedef
	std::greater<>.
	* tutorial/out/icecream.out: Updated .out file to reflect the
	changes above.


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

	* locale.cpp [_WIN32]: Added missing space in LS_1 command.


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

	STDCXX-662
	* 17.names.cpp [_WIN32 && 1400 <= _MSC_VER]: Added #include <intrin.h>
	because it will be included by the library.


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

	STDCXX-659
	* 22.locale.moneypunct.cpp (check_moneypunct): Set all categories
	instead setting the only monetary category.


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

	STDCXX-658
	* 27.istream.fmat.arith.cpp (test_llong): Corrected typename "long"
	to "long long".
	(test_ullong): Corrected typename "long long" to "unsigned long long".


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

	Merged rev 593361 from trunk with a workaround for STDCXX-616.
	* 20.auto.ptr.cpp (test_auto_ptr_void): Worked around HP aCC bugs.


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

	* exec.cpp [_WIN32]: Added STATUS_HEAP_CORRUPTION
	to the nt_status_map (detected on Vista).


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

	Merged rev 593006 from trunk.
	STDCXX-654
	* 18.setjmp.cpp (run_test): Qualified a local variable with volatile
	to work around what looks like a gcc optimized bug.


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

	Merged rev 592995 from trunk.

	STDCXX-651
	* 23.vector.stdcxx-611.cpp: Avoided calling the test function
	in a compile-only test.

	STDCXX-652
	* 23.vector.stdcxx-611.cpp: Explicitly initialized a const
	array of objects of user-defined type with no default ctor
	to avoid compiler errors.


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

	Merged rev 592890 from trunk.
	* NOTICE.txt: Added HP copyright from src/parisc/atomic.s.


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

	* build.wsf (build): The order of running examples, tests
	and locales on Windows arranged to the order of running
	on UNIX (locales, tests, examples).


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

	STDCXX-634
	* 25.random.shuffle.cpp (test_random_shuffle): Corrected data
	in the result array.


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

	STDCXX-625
	* process.cpp (sig_handler): Don't re-register for signal from
	within signal handler to avoid stack overflow on HP-UX and AIX.
	(rw_waitpid): Set and restore signal handler inside loop so we
	can avoid using the signal handler to do it.


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

	* projectdef.js (projectCreateVCProject): Generate source pdb
	in OutDir only for static libraries. For the other projects
	generate the binary pdb in OutDir, and source pdb in IntDir.


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

	STDCXX-414
	* util.cpp (rw_signal): Guarded with _RWSTD_EDG_ECCP instead of
	_RWSTD_NO_PURE_C_HEADERS as done in rev 588734 since the latter
	is #defined with other compilers including Sun C++ on Linux and
	it's on Linux where rw_signal() must be implemented in terms of
	sigaction() to do what we want.


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

	* CTYPE_BITS.cpp (main): Removed a stray '=' from test output.


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

	* build.wsf (TimeEcho): New function to print the message with timestamp.
	Use TimeEcho() for the printing messages on every build stage.


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

	* exec.cpp [!_WIN32 && !_RWSTD_NO_PURE_C_HEADERS] (kill, fdopen):
	Skip the functions declaration on Windows.


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

	Merged r581667 from trunk
	* 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-30 Farid Zaripov <farid_zaripov@epam.com>

	Merged r581946 from trunk with a fix for 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-30 Farid Zaripov <farid_zaripov@epam.com>

	Merged r585460 from trunk with a fix for STDCXX-601
	* 20.auto.ptr (test_auto_ptr): Ensure allocated
	object is value-initialized to avoid uninitialized memory
	read error.


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

	Merged r583398 from trunk with a fix for STDCXX-582
	* 0.printf.cpp (test_errno): Deallocate memory allocated
	automatically by rw_snprintfa().


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

	Merged r585143 from trunk with a fix for STDCXX-109
	* etc/config/makefile.rules ($(CATFILE)): Make failure to execute
	the gencat utility non-fatal.


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

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


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

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


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

	Merged /tests/regress/ from trunk
	* 21.string.io.stdcxx-206.cpp: Regression test for STDCXX-206.
	* 26.valarray.members.stdcxx-313.cpp: Regression test for STDCXX-313.
	* 26.valarray.members.stdcxx-318.cpp: Regression test for STDCXX-318.
	* 26.valarray.sub.stdcxx-224.cpp: Regression test for STDCXX-224.
	* 26.valarray.unary.stdcxx-314.cpp: Regression test for STDCXX-314.
	* 27.stringbuf.xsputn.stdcxx-576.cpp: Regression test for STDCXX-576.


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

	Merged r580981 from trunk
	* 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-30 Farid Zaripov <farid_zaripov@epam.com>

	Merged r581626 from trunk
	* 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-30 Farid Zaripov <farid_zaripov@epam.com>

	* 21.string.swap.cpp: Corrected $Id line.


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

	* etc/config/src/DAYLIGHT.cpp: Updated svn:eol-style and svn:keywords properties.
	* examples/manual/insert_wchar.cpp: Ditto.
	* examples/manual/mbsrtowcs.cpp: Ditto.
	* include/complex.c: Ditto.
	* include/complex.cc: Ditto.
	* src/logic_error.cpp: Ditto.
	* tests/strings/21.string.cons.mt.cpp: Ditto.
	* util/locale_stub.cpp: Ditto.


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

	STDCXX-621
	* examples/manual/binary_search.cpp: Updated ASL header.
	* examples/manual/merge.cpp: Ditto.
	* examples/manual/reverse_iterator.cpp: Ditto.
	* include/fstream: Ditto.
	* include/iosfwd: Ditto.
	* include/loc/_money_get.h: Ditto.
	* include/loc/_money_put.h: Ditto.
	* include/loc/_num_get.h: Ditto.
	* include/loc/_time_get.h: Ditto.
	* include/loc/_time_put.h: Ditto.
	* include/ostream: Ditto.
	* include/rw/_basic_ios.h: Ditto.
	* include/rw/_config-acc.h: Ditto.
	* include/rw/_config-deccxx.h: Ditto.
	* include/rw/_config-icc.h: Ditto.
	* include/rw/_config-mipspro.h: Ditto.
	* include/rw/_config-sunpro.h: Ditto.
	* include/rw/_config-xlc.h: Ditto.
	* include/rw/_ioinsert.cc: Ditto.
	* include/rw/_ioinsert.h: Ditto.
	* include/rw/_ioiter.h: Ditto.
	* include/rw/_iterator.h: Ditto.
	* include/rw/_mutex.h: Ditto.
	* include/rw/_streamiter.h: Ditto.
	* include/stack: Ditto.
	* include/streambuf: Ditto.
	* include/streambuf.cc: Ditto.
	* include/tr1/_smartptr.h: Ditto.
	* include/tr1/cstdint: Ditto.
	* include/tr1/stdint.h: Ditto.
	* LICENSE.txt: Ditto.
	* src/bitset.cpp: Ditto.
	* src/instance.cpp: Ditto.
	* src/locale_body.cpp: Ditto.
	* src/ti_filebuf.cpp: Ditto.
	* src/ti_wfilebuf.cpp: Ditto.
	* tests/include/any.h: Ditto.
	* tests/include/rw_alloc.h: Ditto.
	* tests/include/rw_ctype.h: Ditto.
	* tests/include/rw_exception.h: Ditto.
	* tests/include/rw_new.h: Ditto.
	* tests/include/rw_streambuf.h: Ditto.
	* tests/iostream/27.filebuf.codecvt.cpp: Ditto.
	* tests/iostream/27.istream.unformatted.get.cpp: Ditto.
	* tests/localization/22.locale.time.put.cpp: Ditto.
	* tests/self/0.alloc.cpp: Ditto.
	* tests/self/0.char.cpp: Ditto.
	* tests/self/0.cmdopts.cpp: Ditto.
	* tests/self/0.ctype.cpp: Ditto.
	* tests/src/alarm.cpp: Ditto.
	* tests/src/char.cpp: Ditto.
	* tests/src/cmdopt.cpp: Ditto.
	* tests/src/ctype.cpp: Ditto.
	* tests/src/fmt_defs.h: Ditto.
	* tests/strings/21.string.capacity.cpp: Ditto.
	* tests/strings/21.string.compare.cpp: Ditto.
	* tests/strings/21.string.copy.cpp: Ditto.
	* tests/strings/21.string.erase.cpp: Ditto.
	* tests/strings/21.string.find.cpp: Ditto.
	* tests/strings/21.string.find.first.of.cpp: Ditto.
	* tests/strings/21.string.find.last.not.of.cpp: Ditto.
	* tests/strings/21.string.find.last.of.cpp: Ditto.
	* tests/strings/21.string.io.cpp: Ditto.
	* tests/strings/21.string.iterators.cpp: Ditto.
	* tests/strings/21.string.op.plus.cpp: Ditto.
	* tests/strings/21.string.op.plus.equal.cpp: Ditto.
	* tests/strings/21.string.operators.cpp: Ditto.
	* tests/strings/21.string.replace.cpp: Ditto.
	* tests/strings/21.string.rfind.cpp: Ditto.
	* tests/strings/21.string.substr.cpp: Ditto.
	* tests/strings/21.string.swap.cpp: Ditto.
	* tests/tr1.c99/8.cstdint.cpp: Ditto.
	* tests/utilities/20.auto.ptr.cpp: Ditto.
	* tests/utilities/20.specialized.cpp: Ditto.


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

	STDCXX-624
	* etc/config/src/NO_INT_TRAPS.cpp (main): Worked even harder to foil
	optimizers and trigger a trap (such as SIGFPE) for integer arithmetic.


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

	* _config.h (_RWSTD_VER): Bumped up micro version number to 1.
	(_RWSTD_VER_STR): Updated the version string to reflect the
	above, i.e., to "4.2.1"


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

	* genxviews (process_results): Corrected a list of suffixes
	and documented the build type convention.


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

	Merged the head of branches/4.2.x.
	* genxviews: New.
	* xbuildgen: Merged rev 589433.


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

	STDCXX-614
	* 27.stringbuf.xsputn.stdcxx-515.cpp (main): Include header
	and add namespace qualifier as required to compile.


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

	STDCXX-617
	* 26.valarray.transcend.stdcxx-315.cpp (main): Work around
	bug in Intel C++ 10.0.025 (and other EDG eccp derivatives)
	that does not consider const copy-assignment operator before
	attempting to generate one.


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

	* 23.vector.allocator.cpp (address): Use the proper Pointer<> ctor.


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

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


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

	* util.h (rw_sleep, rw_signal): Declared helper functions.
	* cmdopt.cpp (rw_sleep, rw_signal): Moved formerly static
	functions from here...
	* util.cpp: ...to here and declared extern.
	* exec.cpp (SIGHUP, SIGQUIT, SIGKILL, SIGALRM, ESRCH, EINTR,
	ECHILD, EINVAL): #defined macros when they're not #defined
	in system headers.
	[!_RWSTD_NO_PURE_C_HEADERS] (kill, fdopen): Declared.
	(wait_for_child): Called rw_signal() instead of sigaction()
	directly.

	STDCXX-414
	* util.cpp: [!_RWSTD_NO_PURE_C_HEADERS] (rw_signal): Implemented
	in terms of signal() instead of sigaction() so as to avoid
	a dependency on POSIX symbols in <signal.h>.


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

	* 23.vector.stdcxx-611.cpp: The regression test for STDCXX-611.


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

	STDCXX-437
	* include/list [_MSC_VER < 1300]: Remove MSVC 6.0 specific code.
	* include/loc/_locale.h: Ditto.
	* include/map: Ditto.
	* include/rw/_config-msvc.h: Ditto.
	* include/rw/_config-msvcrt.h: Ditto.
	* include/rw/_defs.h: Ditto.
	* include/rw/_tree.h: Ditto.
	* include/set: Ditto.
	* include/string: Ditto.
	* include/vector: Ditto.
	* src/exception.cpp: Ditto.
	* src/ti_ios.cpp: Ditto.
	* src/ti_wios.cpp: Ditto.


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

	Fixed the r588659
	* ios_bits.cpp [_MSC_VER > 1300]: Remove unnecessary
	conditional compilation directive.


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

	* ios_bits.cpp [_MSC_VER > 1300]: Remove unnecessary
	conditional compilation directive.


2007-10-26 Travis Vitek <vitek@roguewave.com>
	   Farid Zaripov <farid_zaripov@epam.com>

	STDCXX-619
	* 25.remove.cpp (test_remove): Move rw_assert()'s inside the
	for-loop body, to avoid invoking them when the for-loop was
	iterated 0 times).


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

	* projectdef.js (projectCreateVCProject): Generate .pdb file
	in $(OutDir) instead of $(IntDir). Use common .pdb file
	instead of two (compiler's and linker's).


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

	* README (Source Directory Structure): Removed references to
	the now unused runall.sh script.
	(Build Directory Structure): Same. Added links to the exec
	utility.
	(Library Build Instructions): Documented that BUILDTYPE is
	optional. Clarified the same for BUILDTYPE and BUILDMODE,
	and explained the effect of specifying neither.
	(VisualStudio Setup Instructions): Added msvc-9.0 and
	msvc-9.0-x64.
	(Test Suite Build Instructions): Corrected the placement of
	the .d files, removed comments about examples and tests being
	optionalm and described how to run everything from ${BUILDDIR}.
	Removed mentions of the runall.sh script.


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

	Merged r583889 from trunk with a fix for STDCXX-580
	* strstream.cpp (main): Unfreeze streambuf so destructor
	will deallocate memory.


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

	* 20.temp.buffer.mt.cpp (thr_func): Remove setting
	default zero values for buffers since std::pair
	default ctor already do that.


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

	STDCXX-584
	* 18.exception.cpp (test_throw_proc): Deallocate exception
	description string passed to user throw proc to avoid memory
	leak.


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

	STDCXX-587
	* 20.temp.buffer.mt.cpp (test_return_buffer): Set buffer pointer
	to 0 after deallocating.
	(thr_func): Provide default values for buffers. Deallocate buffers
	that remain allocated after thread loop.


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

	* locale.cpp: Updated copyright year after a prior change.
	* thread.cpp: Same.


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

	* locale.cpp (_XOPEN_SOURCE): Avoided #defining macro when
	_RWSTD_NO_PURE_C_HEADERS is not #defined (e.g., EDG eccp).
	* file.cpp: Same.


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

	* thread.cpp [!_RWSTD_NO_PURE_C_HEADERS](popen): Declared function
	for super-strict mode (e.g., EDG eccp).


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

	STDCXX-611
	* vector.cc (_C_insert_n): Use overloads of the uninitialized
	algorithms that take a reference to Allocator as the last argument.


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

	STDCXX-593
	* locale.cpp (rw_locale): Update used array size to avoid
	writing past the end of the allocated buffer. Use a growth
	constant variable to avoid writing the same value in many
	places. Use precalculated name length instead of calling
	strlen() repeatedly.
	[_WIN32]: Hide _malloc_dbg and _free_dbg behind macros
	to clean up multiple conditional blocks and to avoid memory
	block type mismatch.


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

	* vector.cc (_C_insert_1): Reverted changes from r587164
	since the STDCXX-495 issue is deferred to 4.3 release.


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

	* ctype.html: Removed #include <examples.h> from example code.
	* locale.html: Ditto.
	* money-put.html: Ditto.
	* moneypunct.html: Ditto.
	* num-put.html: Ditto.
	* numpunct.html: Ditto.
	* strstreambuf.html: Ditto.
	* valarray.html: Ditto.


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

	STDCXX-578
	* time_put.cpp (__rw_get_timepunct): changed to use operator
	new/delete for memory allocation to avoid new/delete mismatch with
	facet destructor.


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

	STDCXX-609
	* generate.wsf (generateBuildBatch): Use 11s build type as default
	if no any build type specified.


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

	* strstreambuf.html: Updated the example source and
	the program output according to changes in r587173.


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

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


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

	STDCXX-495
	* vector.cc (_C_insert_1): Allow inserting the values from *this.
	If the value_type is a fundamental type, then save the inserting value
	in a temporary copy before the moving [it; end()) range toward to end.
	If the value_type is not a fundamental type, then save the pointer to
	the inserting value and adjust the pointer if the inserting value belongs
	to the range [it; end()).


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

	* 23.vector.modifiers.stdcxx-495.cpp: Regression test for STDCXX-495.


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

	Merged r585116 from trunk with a fix for STDCXX-596
	* 0.printf.cpp (_rw_fmtarray): Check pointer bounds before
	examining the contents to avoid uninitialized memory read.


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

	STDCXX-581
	* printf.cpp (_rw_fmtstr): Provide reasonable length value
	to call to __rw_memattr() to avoid touching uninitialized
	memory.
	(_rwfmtwstr): Ditto.
	(_rwfmtarray): Ditto.


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

	* ChangeLog: Regenerated.


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

	STDCXX-350
	* _rawiter.h [__GNUG__ >= 4] (get_temporary_buffer,
	return_temporary_buffer): Used __attribute__ (__may_alias__) to
	tell the gcc optimizier about type-punning in a reinterpret_cast()
	and to silence gcc 4 warning: dereferencing type-punned pointer will
	break strict-aliasing rules.


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

	* 26.valarray.cassign.cpp (run_test): Disabled tests exercising
	valarray specializations on a user-defined type for 4.2.0 and
	prior since they are known to fail to compile due to STDCXX-512.


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

	* _config.h (_RWSTD_VER): Corrected comments explaining source
	and binary compatibility rules controlling changes to the library
	version number.


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

	* README (Index): Update section names and numbers.
	(VisualStudio Directory Structure): Add new section
	describing expected directory structure.
	(VisualStudio Setup Instructions): Remove filename
	extension from the list of supported configuration
	options so that the provided names match the names
	allowed by the configure script.


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

	* etc/config/windows/configure.wsf (configure): #define
	_RWSTD_NO_REENTRANT macro in config.h file for single-threaded builds
	for compatibility with prior versions of stdcxx on Windows (MSVC 7.x),
	i.e., in order to make 8s and 11s build types non-reentrant even when
	the compiler itself doesn't have a non-reentrant runtime (MSVC 8 and
	beyond).
	* include/rw/_config-msvcrt.h (_RWSTD_REENTRANT): #define macro only if
	#defined _MT and not #defined _RWSTD_NO_REENTRANT, for single-threaded
	builds with compilers that don't have a single-threaded CRT (i.e. MSVC
	8, MSVC 9).


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

	Merged rev 586502 from branches/4.2.0.
	* _config-msvcrt.h [_DLL]: Define configuration macros
	to maintain binary compatibility with 4.1.x on MSVC
	only for dynamic builds to prevent the multiple
	definition symbols linker errors.


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

	* README (Disclaimer): Added an explanation.
	(Contents): Expanded to document LICENSE.txt and NOTICE.txt.
	(Compatibility): Added a new subsection.
	(Unpacking Intructions): Expanded  to clarify tarball names.
	(Source Directory Structure): Added documentation of top-level files
	new in this release and removed the no longer relevant blurb about
	the fixtree.sh script.
	(Library Utilities): Briefly documented the new utility programs,
	exec and gencat.
	(Test Suite Files): Added a few words about the exec utility.
	(Examples and Tutorials): Expanded and clarified.
	(Build Directory Structure): Removed obsolte text about tests being
	optional.
	(Library Build Instructions): Updated top-level directory listing.
	(Library Installation on UNIX Systems): New section documenting
	the install make target.
	(Library Installation on Microsoft Windows): Placeholder for future
	work.
	(config.h): Documented confih.log.
	(Compiler Configuration Macros): Documented _RWSTD_NO_OBJECT_MANGLING.
	(C Library Configuration Macros): Documented _RWSTD_NO_PURE_C_HEADERS.
	(Macros Controlling Strings): Documented _RWSTD_USE_STRING_ATOMIC_OPS.
	(HP aCC): Arranged compiler versions from most recent to oldest.
	(SGI MIPSpro): Added "tested with" versions.
	(Sun C++): Added x86 to the set of arches.


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

	* ChangeLog: Regenerated.


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

	* branches/4.2.x: Created a copy of the head of branches/4.2.0
	in preparation for maintenance (micro) releases after 4.2.0.


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

	STDCXX-509
	* limits_bits.cpp [_RWSTD_VER_MAJOR < 5 && _MSC_VER && _DLL]
	(__rw_flt_denorm_min_vc, __rw_flt_infinity_vc, __rw_flt_qNaN_vc,
	__rw_flt_sNaN_vc, __rw_dbl_denorm_min_vc, __rw_dbl_infinity_vc,
	__rw_dbl_qNaN_vc, __rw_dbl_sNaN_vc, __rw_ldbl_denorm_min_vc,
	__rw_ldbl_infinity_vc, __rw_ldbl_qNaN_vc, __rw_ldbl_sNaN_vc):
	New constants exported as the corresponding floating constants
	with the same mangled names as those from 4.1.3 (sans the _vc
	suffix) for the binary compatibility with prior releases.


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

	* string (__replace_aux): Made member function template public
	as intended (but not actually done) in rev 586118 to get HP aCC
	3 and 5 to compile the code again (and to restore the solution
	implemented for STDCXX-271).


2007-10-18  Travis Vitek  <vitek@roguewave.com>
	    Martin Sebor  <sebor@roguewave.com>

	* _config-msvc.h: Reverted rev 586112 and applied the same patch
	below (modulo some additional noise that had accidentally slipped
	in).
	* _config-msvcrt.h [_RWSTD_VER_MAJOR < 5]: Define configuration
	macros to maintain binary compatibility with 4.1.x on both MSVC
	and Intel C++ on Windows.


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

	* string (_C_grow): Made private again, after inadvertently making
	it public for MSVC in rev 544975 while fixing STDCXX-271 for HP aCC
	and braking binary compatibiliy in programs compled with MSVC that
	invoke the replace() member function template (which in turn calls
	the inline but exported _C_grow()).


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

	* _config-msvc.h [_RWSTD_VER_MAJOR < 5]: Define configuration
	macros to maintain binary compatibility with 4.1.x on MSVC.


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

	Disabled fix for STDCXX-469 for Microsoft Visual Studio to maintain
	binary compatibility with stdcxx 4.1.x (the compiler mangles the
	access specifier of class members into their names).
	* include/loc/_facet.h [_MSC_VER] (__rw_facet, ~__rw_facet): Made
	class ctor and dtor public again until stdcxx 5.0.


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

	Disabled fix for STDCXX-162 for binary compatibility with stdcxx 4.1.x.
	* include/rw/_config.h (_RWSTD_NO_STRING_ATOMIC_OPS): New macro #defined
	on x86_64 Linux unless _RWSTD_USE_STRING_ATOMIC_OPS is #defined on the
	command line (or in the generated config.h header).
	* include/rw/_strref.h (_RWSTD_NO_STRING_MUTEX): Guarded by the new
	_RWSTD_NO_STRING_ATOMIC_OPS macro.


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

	* README: Merged rev 585595 from trunk.


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

	Merged changes for STDCXX-505 from trunk.
	* doc/stdlibref/acknow.html: Renamed...
	* doc/stdlibref/history.html: ...to this.
	* doc/stdlibref/frames-intro-contents.html: Reflected the above.
	* doc/stdlibug/acknow.html: Renamed...
	* doc/stdlibug/history.html: ...to this.
	* doc/stdlibug/frames-intro-contents.html: Reflected the above.

	* doc/stdlibref/history.html: Updated.
	* doc/stdlibug/history.html: Same.


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

	Merged rev 584997 from trunk.
	* 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-16  Martin Sebor  <sebor@roguewave.com>

	Merged rev 585216 from trunk.
	* 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>

	STDCXX-600
	* 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-15  Martin Sebor  <sebor@roguewave.com>

	* src/ChangeLog: Merged in from trunk.
	* include/ChangeLog: Likewise.
	* examples/ChangeLog: Likewise.
	* tests/ChangeLog: Likewise.
	* util/ChangeLog: Likewise.


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

	STDCXX-599
	* file.cpp [!_RWSTD_NO_PURE_C_HEADERS] (mkstemp): Relaxed a guard
	around a declaration of a POSIX (but not C) function to enable it
	in strict C++ environments (e.g., with EDG eccp).


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

	STDCXX-509
	* 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.
	* limits_bits.cpp: Same as above for definitions of constants.
	* num_get.cpp  [_RWSTD_NO_OBJECT_MANGLING] (__rw_flt_infinity,
	__rw_dbl_infinity, __rw_ldbl_infinity): Same.


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

	* valarray.cpp: Merged from trunk at rev 584618.


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

	* exception: Merged from trunk at rev 583667.
	* new: Same.


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

	* NO_OBJECT_MANGLING.cpp: Merged from trunk at rev 584880.
	* object_mangling_imp.cpp: Same.


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

	* branches/4.2.0: Merged changes required to port to EDG eccp.
	* branches/4.2.0/include/rw/_config-eccp.h: from trunk at rev 583987.
	* branches/4.2.0/include/ansi/_cerrno.h: from trunk at rev 583997.
	* branches/4.2.0/src/file.cpp: from trunk at rev 583990.
	* branches/4.2.0/etc/config/src/WCHAR_T.cpp: from trunk at rev 583980.


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

	* branches/4.2.0/doc: Merged the latest trunk.


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

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


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-564
	* _punct.cc (__rw_match_name): Cast 1UL constant to _RWSTD_SIZE_T
	to avoid 64-bit MSVC warning C4334: '<<' : result of 32-bit shift
	implicitly converted to 64 bits (was 64-bit shift intended?).
	* file.cpp [_WIN64]: Disable 64-bit MSVC warning C4244 for
	__rw_fseek(), __rw_fread(), __rw_fwrite() functions.


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

	STDCXX-576
	* sstream.cc (xsputn): If __s is a part of the
	internal buffer and buffer reallocation is needed,
	save the offset of the __s from pbase() anc correct
	__s value after the buffer reallocation.


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

	STDCXX-568
	* mapfile.gcc: Add ASL header.
	* mapfile.gcc-2: Same.


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

	STDCXX-568
	* rwstdmessages.cpp: Add ASL header.
	* rwstdmessages.msg: Same.
	* rwstdmessages.rc: Same.


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

	STDCXX-561
	* T.61-8BIT: Add ASL header.
	* ISO_646.IRV: Same.


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

	STDCXX-560
	* MADVISE.cpp: Add ASL header.


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

	STDCXX-452
	* setlocale.cpp (~__rw_setlocale): Restore the previous
	locale in a threadsafe manner. Simplified.


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

	STDCXX-452
	STDCXX-453
	* punct.cpp (__rw_get_moneypunct): After creating __rw_setlocale
	object check if the locale data is initialized by another thread
	to avoid doing unnecessary work and leaking memory.
	(__rw_get_numpunct): Ditto.


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

	* branches/4.2.0: Merged the head of trunk.


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

	* libc_decl.sh: Merged with r573411 of trunk:
	http://svn.apache.org/viewvc?view=rev&revision=573411.
	* acc.config: Same.


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

	STDCXX-470
	STDCXX-479
	STDCXX-481
	* etc/config/src/LIMITS.cpp: Revert
	http://svn.apache.org/viewvc?view=rev&revision=554421 ,
	accidentally merged to 4.2.0 prematurely as part of
	http://svn.apache.org/viewvc?view=rev&revision=569152 .
	* GNUmakefile: Deploy
	http://svn.apache.org/viewcvs?view=rev&rev=555061 to enable
	building with Sun C++ 5.9 (Sun Studio 12).
	* etc/config/GNUmakefile.cfg: Ditto.
	* etc/config/sunpro.config: Ditto.
	* etc/config/makefile.rules: Ditto.

2007-08-23  Andrew Black  <ablack@roguewave.com>
	STDCXX-482
	* LIMITS.cpp: Deploy http://svn.apache.org/viewvc?view=rev&rev=555106 to 4.2.0 to avoid stalls in nightly testing testing system (caused by usage of the 4.2.0 branch in the nightly testing system.)


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

	* stdcxx/branches/4.2.0: Merged the head of stdcxx/trunk.


* 4.2.0: New branch based off of trunk/ at rev 536028.

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.
	* _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.
	* 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.


2005-07-30  Nick Gunn  <gunn@roguewave.com>

	STDCXX-8
        * 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.


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).


Set the executable property.


Set the executable property.


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

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

start stdcxx project in incubator
