blob: 5c9010a9f0aadd3195553fe03aa9bb6a8c8dfe95 [file] [log] [blame]
2008-04-24 Martin Sebor <sebor@roguewave.com>
Merged revs 648509 and 648403 from trunk.
2008-04-15 Martin Sebor <sebor@roguewave.com>
STDCXX-832
* include/string.cc (_C_get_rep): Used two static_casts via void*
instead of a single reinterpret_cast to prevent HP aCC 6 warning
#4232: conversion from "wchar_t*" to a more strictly aligned type.
2008-04-15 Martin Sebor <sebor@roguewave.com>
STDCXX-874
* include/string (__rw_replace, __rw_replace_aux): Decorated
exported templates with the export keyword.
* include/string.cc: Same.
2008-04-24 Martin Sebor <sebor@roguewave.com>
* ChangeLog: Regenerated.
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