blob: d491eb612d0a92f2dbf41e6d031f6a9f9e17a45e [file] [log] [blame]
2007-08-06 Martin Sebor <sebor@roguewave.com>
* ChangeLog: Updated, keeping original TABs.
2007-07-27 Farid Zaripov <Farid_Zaripov@epam.com>
* gcc.config [__CYGWIN__]: Added -D_REENTRANT option in
multithreaded builds. Don't define AS_EXT as .s.
* atomic.s [__CYGWIN__]: Prepend symbol names by '_'.
2007-07-17 Martin Sebor <sebor@roguewave.com>
STDCXX-486
* time_put.cpp (tzset): Added throw() to the declaration.
2007-07-13 Martin Sebor <sebor@roguewave.com>
STDCXX-485
* locale_body.cpp (_C_manage): Reset the capacity of the locale
buffer to the capacity of the statically allocated buffer after
its size shrinks below that level.
2007-07-10 Farid Zaripov <Farid_Zaripov@epam.com>
STDCXX-508
* catalog.cpp (catopen): while() loop replaced to for() loop
with checking for max iterations.
2007-07-08 Martin Sebor <sebor@roguewave.com>
STDCXX-478
* locale_eq.cpp (operator==): Removed the assumption that the same
user-defined facets must be stored at the same index in the array
in order for two locales in which they are installed to compare
equal.
2007-07-08 Martin Sebor <sebor@roguewave.com>
STDCXX-477
* locale_eq.cpp (operator==): Considered the names of locales when
all their standard and byname facet masks are the same and all their
facet pointers are the same.
2007-07-08 Martin Sebor <sebor@roguewave.com>
STDCXX-395
* etc/config/src/LIMITS.cpp (_RWSTD_WCHAR_T_MAX, _RWSTD_WCHAR_T_MIN,
_RWSTD_WCHAR_T_SIZE): Renamed to _RWSTD_WCHAR_MAX, _RWSTD_WCHAR_MIN,
and _RWSTD_WCHAR_SIZE, respectively, for consistency with the libc
macros.
* tests/src/locale.cpp: Same.
* tests/src/char.cpp: Same.
* tests/src/printf.cpp: Same.
* tests/localization/22.locale.codecvt.out.cpp: Same.
* tests/self/0.printf.cpp: Same.
* include/limits: Same.
* include/tr1/cstdint: Same.
* include/ansi/_cwchar.h: Same.
* src/wctype.cpp: Same.
* src/wcodecvt.cpp: Same.
* util/ctype.cpp: Same.
* util/charmap.cpp: Same.
2007-07-06 Martin Sebor <sebor@roguewave.com>
* ctype_bits.cpp (_RWSTD_NO_V3_LOCALE): Removed unnecessary guards
and replaces references to _V3_LOCALE with _STD and std, whichever
is appropriate.
* time_get.cpp: Same.
* iso2022.cpp: Same.
* wctype.cpp: Same.
* iso2022.h: Same.
* locale_bits.cpp: Same.
* locale_eq.cpp: Same.
* codecvt.cpp: Same.
* locale_name.cpp: Same.
* locale_classic.cpp: Same.
* locale_core.cpp: Same.
* wcodecvt.cpp: Same.
* locale_global.cpp: Same.
* locale_body.h: Same.
* locale_combine.cpp: Same.
2007-07-06 Martin Sebor <sebor@roguewave.com>
* mman.h: Header with declarations of portability helper functions
for the manipulation of memory mapped files.
* mman.cpp: Definitions of the said helpers.
* facet.cpp (__rw_mmap, __rw_unmmap): Moved functions to mman.cpp.
2007-07-05 Martin Sebor <sebor@roguewave.com>
* use_facet.h (_RWSTD_DEFINE_FACET_FACTORY): Documented macro
and "constified" a local variable in its definition.
2007-07-05 Martin Sebor <sebor@roguewave.com>
* stdexcept (range_error, domain_error, runtime_error): Declared
virtual destructors instead of relying on the compiler to generate
them automatically to avoid generating the class vtable in every
translation unit that uses each of the classes.
* range_error.cpp: Defined range_error destructor.
* domain_error.cpp: Defined domain_error destructor.
* runtime_error.cpp: Defined runtime_error destructor.
2007-06-28 Martin Sebor <sebor@roguewave.com>
STDCXX-461
* num_put.cpp (__rw_fix_flt): Corrected the formatting of Infinities
and NaN's when precision exceeds the length of the formatted string.
2007-06-23 Martin Sebor <sebor@roguewave.com>
STDCXX-457
* podarray.cc: Updated license statement.
* podarray.c: Same.
* version.cpp: Updated copyright.
2007-06-23 Martin Sebor <sebor@roguewave.com>
STDCXX-457
* catalog.h: Updated license statement.
* access.h: Same.
* use_facet.h: Same.
* iso2022.h: Same.
* setlocale.h: Same.
* version.cpp: Same.
* iosdata.h: Same.
* locale_body.h: Same.
* strtol.h: Same.
2007-06-23 Martin Sebor <sebor@roguewave.com>
STDCXX-457
* ti_istream.cpp: Updated license statement.
* ti_stringbuf.cpp: Same.
* ti_string.cpp: Same.
* ti_wmoney_put.cpp: Same.
* ctype_bits.cpp: Same.
* ti_ostream.cpp: Same.
* memory.cpp: Same.
* ti_wstreambuf.cpp: Same.
* ti_collate.cpp: Same.
* ti_insert_dbl.cpp: Same.
* strtol.cpp: Same.
* ti_wistream.cpp: Same.
* ti_wnumpunct.cpp: Same.
* ti_moneypunct.cpp: Same.
* ti_wostream.cpp: Same.
* time_get.cpp: Same.
* iso2022.cpp: Same.
* ti_winsert_int.cpp: Same.
* limits.cpp: Same.
* ti_numpunct.cpp: Same.
* ti_wcollate.cpp: Same.
* ti_wmoney_get.cpp: Same.
* ti_money_put.cpp: Same.
* ti_winsert_ptr.cpp: Same.
* ti_num_put.cpp: Same.
* ti_streambuf.cpp: Same.
* ti_ios.cpp: Same.
* locale_core.cpp: Same.
* ti_wstring.cpp: Same.
* typeinfo.cpp: Same.
* assert.cpp: Same.
* ti_winsert_dbl.cpp: Same.
* ti_wtime_put.cpp: Same.
* ti_wnum_put.cpp: Same.
* ios_bits.cpp: Same.
* ti_wios.cpp: Same.
* rwstderr.cpp: Same.
* locale_bits.cpp: Same.
* random.cpp: Same.
* ti_money_get.cpp: Same.
* ti_time_put.cpp: Same.
* ti_wmoneypunct.cpp: Same.
* locale_eq.cpp: Same.
* strstream.cpp: Same.
* version.cpp: Same.
* ti_wstringbuf.cpp: Same.
* num_put.cpp: Same.
* codecvt.cpp: Same.
* vecbool.cpp: Same.
* ios.cpp: Same.
* ti_num_get.cpp: Same.
* catalog.cpp: Same.
* ti_wmessages.cpp: Same.
* locale_name.cpp: Same.
* locale_classic.cpp: Same.
* ti_messages.cpp: Same.
* ti_insert_int.cpp: Same.
* locale_global.cpp: Same.
* ti_wtime_get.cpp: Same.
* ti_wnum_get.cpp: Same.
* limits_bits.cpp: Same.
* ti_insert_ptr.cpp: Same.
* ti_time_get.cpp: Same.
* locale_combine.cpp: Same.
2007-06-22 Farid Zaripov <Farid_Zaripov@epam.com>
* _error.h(__rw_free_what_buf): Removed inline in declaration.
* exception.cpp(__rw_free_what_buf): The same.
2007-06-22 Farid Zaripov <Farid_Zaripov@epam.com>
STDCXX-454
* _error.h: Added declaration of the __rw_free_what_buf.
* exception.cpp (__rw_free_what_buf): Added _RWSTD_EXPORT to prototype.
Added assertion on __rw_what_refcnt value.
(_C_assign): If whatstr == __rw_what_buf, just reuse it without
allocation
of the new buffer.
* rwexcept.cpp: Use __rw_free_what_buf() instead of delete[].
2007-06-21 Farid Zaripov <Farid_Zaripov@epam.com>
STDCXX-293
* exception.cpp (__rw_throw): Don't delete allocated what string because
of __rw_throw_proc() takes ownership and must delete what string.
2007-06-21 Farid Zaripov <Farid_Zaripov@epam.com>
STDCXX-293
* exception.cpp (__rw_free_what_buf): New function to free buffer,
allocated by __rw_vfmtwhat().
Used __rw_free_what_buf() instead of delete[].
2007-06-19 Martin Sebor <sebor@roguewave.com>
* punct.cpp (_RWSTD_NO_V3_LOCALE): Removed a dead guard.
(_RWSTD_SIZE_T): Replaced with size_t throughout.
Removed the :: scope resolution operator from references
to C library functions.
2007-06-09 Martin Sebor <sebor@roguewave.com>
STDCXX-446
STDCXX-447
* complex (pow, operator>>, operator<<): Removed inline definitions.
* complex.cc (pow, operator>>, operator<<): Defined out-of-line and
exported.
* complex.c: #included complex.cc.
* export.cpp (<complex>, complex.cc): #included.
2007-06-08 Martin Sebor <sebor@roguewave.com>
* src/wctype.cpp (do_widen): Explicitly specified template argument
list to work around HP aCC 3 and 5 bug resulting in Error 331: Illegal
cast expression; cannot cast expression type '<no type>' to 'wchar_t'.
See STDCXX-445.
2007-06-07 Martin Sebor <sebor@roguewave.com>
* _ctype.h (do_toupper, do_tolower, do_widen, do_narrow): Outlined
virtual member functions of ctype<wchar_t> since they can almost
never be inlined anyway.
* wctype.cpp: Same.
2007-06-06 Farid Zaripov <Farid_Zaripov@epam.com>
STDCXX-188
* typeinfo.cpp: use ::_C_name or std::_C_name depending on
_RWSTD_NO_STD_TYPE_INFO macro.
2007-06-05 Farid Zaripov <Farid_Zaripov@epam.com>
STDCXX-188
* typeinfo.cpp: silenced warning: _C_name was declared
but never referenced
2007-06-01 Martin Sebor <sebor@roguewave.com>
STDCXX-432
* _config.h (_config-eccp.h): Avoided #including when using HP aCC.
* exception.cpp (stdarg.h): Used _RWSTD_EDG_ECCP to guard against
inclusion when using EDG eccp based compilers including HP aCC 6.
2007-05-28 Martin Sebor <sebor@roguewave.com>
STDCXX-402
* strtol.cpp (__rw_strtoul, __rw_strtol, __rw_strtoull, __rw_strtoll):
Asserted preconditions.
(LLong, ULLong): New convenience typedefs at namespace scope.
(__rw_strtoull, __rw_strtoll): Corrected off by one errors.
2007-05-15 Martin Sebor <sebor@roguewave.com>
STDCXX-417
* atomic.s (TYPE_DIR): New macro conditionally defined to the .type
directive for GNU as on ELF targets.
2007-05-15 Martin Sebor <sebor@roguewave.com>
STDCXX-416
* stdexcept (logic_error): Declared dtor.
* logic_error.cpp: New file.
(logic_error): Defined class dtor
2007-04-07 Martin Sebor <sebor@roguewave.com>
STDCXX-387
* DAYLIGHT.cpp: New config test to determine whether the system
supports the XSI POSIX extension daylight.
* time_put.cpp (daylight): #defined to 0 when _RWSTD_NO_DAYLIGHT
is #defined.
2007-03-28 Martin Sebor <sebor@roguewave.com>
* ctype.cpp (ctype_byname ctor): Asserted a precondition.
(_RWSTD_NO_V3_LOCALE, _V3_LOCALE): Removed/replaced obsolete macros.
2007-03-07 Martin Sebor <sebor@roguewave.com>
STDCXX-349
* iostore.cpp (_C_copyfmt): Zeroed out a_size array to prevent
(bogus) gcc warnings about the variable being used uninitialized.
2007-01-04 Farid Zaripov <faridz@kyiv.vdiweb.com>
* string.cpp (__rw_memchr, __rw_wmemchr): Fixed bug: the function
returns incorrect result when nbytes == 0 and *src == c
2006-12-11 Martin Sebor <sebor@roguewave.com>
STDCXX-309
* valarray (operator[]): Invoked next_ind() at most once per each
iteration of the loop.
* valarray.cpp (next_ind): Returned start() instead of 0 after
wrapping around.
2006-12-05 Martin Sebor <sebor@roguewave.com>
* string.cpp (__rw_memcpy, __rw_memmove, __rw_memchr, __rw_memset,
__rw_memcmp, __rw_strlen): Defined each helper without depending
on the corresponding libc function in order to avoid infinite
recursion.
(__rw_wmemcpy, __rw_wmemmove, __rw_wmemchr, __rw_wmemset, __rw_wmemcmp,
__rw_wcslen): Same.
2006-11-29 Martin Sebor <sebor@roguewave.com>
* time_put.cpp [MSVC >= 8.0] (__rw_put_time): Used the conforming
swprintf() rather than the legacy Microsoft one without the size
argument as suggested by the compiler warning.
2006-11-14 Martin Sebor <sebor@roguewave.com>
* memattr.cpp (__rw_memattr): Used msync() instead of the unreliable
madvise() on IRIX.
2006-10-09 Martin Sebor <sebor@roguewave.com>
* wcodecvt.cpp (__rw_libc_do_in): Corrected a typo in conditionally
compiled code.
2006-10-09 Farid Zaripov <faridz@kyiv.vdiweb.com>
STDCXX-93
* time_put.cpp (__rw_get_timepunct): Corrected buffer size in
wcsftime() calls; _RWSTD_SIZE_MAX changed to size of source
string in mbstowcs() calls to deal with MSVC 8.0 CRT
2006-10-05 Martin Sebor <sebor@roguewave.com>
* time_put.cpp (__rw_get_time_put_data): Added braces around
the initializer of a local array to silence a gcc warning.
2006-10-04 Farid Zaripov <faridz@kyiv.vdiweb.com>
* exception.cpp [_MSC_VER]: #undefined _RWSTD_NO_VSNPRINTF after
#define vsnprintf _vsnprintf
2006-10-03 Farid Zaripov <faridz@kyiv.vdiweb.com>
Set svn:eol-style property.
2006-09-29 Farid Zaripov <faridz@kyiv.vdiweb.com>
* _num_put.cc: Updated the licensing header
* _select.h: The same
* file.cpp: The same
2006-09-29 Farid Zaripov <faridz@kyiv.vdiweb.com>
* _num_put.cc (__rw_iter_failed): Removed const to resolve
ambiguity on MSVC 7.0
* _select.h [_RWSTD_NO_CLASS_PARTIAL_SPEC]: Added __rw_is_same
for compilers which not support the partial template specialization
* file.cpp: Declare fileno() only if it not declared in CRT header,
but present in libc
* NEW_THROWS.cpp: Returned 1 if operator new doesn't throws
2006-08-28 Martin Sebor <sebor@roguewave.com>
STDCXX-280
* wcodecvt.cpp (__rw_libc_do_out): Used wcrtomb instead of wcsrtombs
in order to avoid reading past the end of the source sequence when
it doesn't contain an embedded NUL.
2006-08-20 Martin Sebor <sebor@roguewave.com>
* collate.cpp ("podarray.cc"): Removed #include directive
to prevent multiple definition errors.
(__rw_pod_array): Moved explicit instantiation...
* podarray.h: ...to here.
2006-08-18 Martin Sebor <sebor@roguewave.com>
* messages.cpp: Constified locals and sanitized formatting.
(_RWSTD_NO_V3_LOCALE): Removed dead macro.
(_V3_LOCALE): Replaced with _STD.
2006-08-18 Martin Sebor <sebor@roguewave.com>
* collate.cpp (podarray.cc): #included in order to be able
to explicitly instantiate __rw_pod_array.
2006-08-14 Martin Sebor <sebor@roguewave.com>
* podarray.h: Moved brace closing a namespace to the correct place.
2006-08-14 Martin Sebor <sebor@roguewave.com>
STDCXX-276
* podarray.h (__rw_pod_array): Moved member initialization into
the body of the ctor in order to prevent HP aCC 3.70 ICE.
2006-08-13 Martin Sebor <sebor@roguewave.com>
* exception.cpp: Added/modified comments.
* iostream.cpp: Same.
* tmpbuf.cpp: Same.
* facet.cpp: Same. Removed dead macro.
* setlocale.cpp: Same.
2006-08-13 Martin Sebor <sebor@roguewave.com>
STDCXX-274
* collate.cpp (__rw_pod_array): Explicitly instantiated for Compaq C++
and other compilers that do not do so automatically when a template
specialization is used.
(_RWSTD_NO_V3_LOCALE, _V3_LOCALE): Removed dead macros.
* podarray.h (__rw_pod_array): Added explicit instantiation directive.
* ti_podarray.cpp: New file for the explicit instantiation of class
__rw_pod_array.
2006-06-26 Anton Pevtsov <antonp@moscow.vdiweb.com>
* include/rw/_mutex.h: Added missed _RWSTD_EXPORT directive.
* src/exception.cpp: Added missed _RWSTD_EXPORT directive.
2006-06-15 Martin Sebor <sebor@roguewave.com>
* atomic-64.s: Updated copyright notice.
* atomic.s: Same.
2006-06-14 Martin Sebor <sebor@roguewave.com>
* collate.cpp (wcstombs): Decorated with dllimport to silence
MSVC warnings about incompatible DLL linkage.
* wcodecvt.cpp (wctomb): Same.
2006-06-13 Martin Sebor <sebor@roguewave.com>
STDCXX-200
* _localedef.h (__rw_time_t): Changed function argument types
to silence Sun C++ 5.8 64-bit conversion/truncation warnings.
* punct.cpp (__rw_get_numpunct, __rw_get_moneypunct): Explicitly
cast wide expressions to the (narrower) destination type in order
to silence Sun C++ 5.8 64-bit truncation warnings.
* time_put.cpp (__rw_get_timepunct, __rw_get_zone): Same.
2006-06-01 Martin Sebor <sebor@roguewave.com>
STDCXX-192
* atomic.s: Removed .type directives to prevent as errors
on Mac OS X.
2006-05-12 Martin Sebor <sebor@roguewave.com>
* instance.cpp (__nullref): Increased the size of the array to make
big enough to accommodate std::wstring times two with some extra
space to spare.
2006-04-20 Martin Sebor <sebor@roguewave.com>
* bitset.cpp (__rw_bit_count): Reimplemented to work around
an uncharacterized MSVC 8.0 codegen bug on EM64T and for
better efficiency (> 2x speedup on ILP32, likely much greater
on LP64).
2006-03-28 Martin Sebor <sebor@roguewave.com>
* memattr.cpp (__rw_memattr): Checked errno for EFAULT and ENOMEM
after caling madvise() on Linux to prevent false negatives when
errno is set to EBADF for mapped address ranges not backed by a
file.
2006-03-25 Martin Sebor <sebor@roguewave.com>
* locale_body.cpp (__rw_cats): Guarded the use of _RWSTD_CAT_5
and used _RWSTD_CAT_0 in its place when not #defined (e.g., by
dumb windoze).
2006-03-25 Martin Sebor <sebor@roguewave.com>
* _defs.h (_RWSTD_VA_COPY): New helper macro.
* VA_LIST.cpp(_RWSTD_NO_VA_COPY): New macro #defined in response
to the C99 va_copy() macro not being #defined in <stdarg.h>.
* exception.cpp (__rw_vfmtwhat): Unconditionally used _RWSTD_VA_COPY().
* printf.cpp (rw_vasnprintf): Used _RWSTD_VA_COPY.
(rw_sprintf, rw_snprintf): Provided definitions.
2006-03-25 Martin Sebor <sebor@roguewave.com>
* memattr.cpp (__rw_memattr): Used mvalid() instead of madvise()
on Tru64 UNIX.
Removed checks for errno values EFAULT and EINVAL for portability
and simply tested for any non-zero errno value.
2006-03-22 Martin Sebor <sebor@roguewave.com>
STDCXX-140
* locale_body.cpp (_C_is_managed): Avoided an infinite loop
when _RWSTD_CAT_SEP is #defined to the empty string ("").
2006-03-22 Martin Sebor <sebor@roguewave.com>
* locale_body.cpp (size_t): Used instead of _RWSTD_SIZE_T for
readability.
(_V3_LOCALE, _RWSTD_NO_V3_LOCALE): Removed dead macro/guard.
Minor formatting adjustments for consistency.
2006-03-18 Martin Sebor <sebor@roguewave.com>
STDCXX-165
* num_get.cpp (__rw_get_num): Checked _LONG_DOUBLE in addition to __hpux
before using struct long_double in case the struct is not defined e.g.,
when using gcc's replacement <stdlib.h> on HP-UX.
2006-03-17 Martin Sebor <sebor@roguewave.com>
* exception.cpp (_C_assign): Replaced size_t (~0) with SIZE_MAX
to avoid HP aCC remark 4237.
(operator=): Avoided the use of a comma expression in the return
statement to prevent the bogus HP aCC remark 4284 (operator= does
not return reference to *this).
2006-03-17 Martin Sebor <sebor@roguewave.com>
* ti_filebuf.cpp (<stdio.h>): Included before <fstream> to get
the extended member functions of basic_filebuf that take FILE*
as an argument defined and to prevent unsats from programs that
do the same thing when extern template is enabled.
* ti_filebuf.cpp: Ditto.
2006-03-16 Martin Sebor <sebor@roguewave.com>
* memattr.cpp (__rw_memattr): Handled EFAULT (set by HP-UX)
in addition to ENOMEM.
2006-03-09 Martin Sebor <sebor@roguewave.com>
* collate.cpp (_RWSTD_MB_MAX): Defined to avoid using MB_LEN_MAX
in case it's less than 8 (the theoretical maximum for UTF-8) or
even less than 6 (the real maximum for UTF-8). Noted by HP aCC
6.07.
(__rw_get_w_ce_offset, __rw_get_wchar_offset, do_transform): Used
_RWSTD_MB_MAX.
(__rw_strnxfrm, __rw_wcsnxfrm): Plugged a potential memory leak
noted by HP aCC 6.07.
2006-03-06 Martin Sebor <sebor@roguewave.com>
* atomic-cxx.S: Changed copyright to the ASF.
2006-03-06 Martin Sebor <sebor@roguewave.com>
STDCXX-162
* _config.h (_RWSTD_NO_STRING_MUTEX): Removed conditional definition.
* _mutex.h (_RWSTD_ATOMIC_OPS): Corrected spelling and simplified the
handling of the macro. Handled x86_64 in the same block as IA64.
* _strref.h (_RWSTD_NO_STRING_MUTEX): Defined in response to
_RWSTD_ATOMIC_OPS being undefined.
* atomic.s: Handled __x86_64 (and __x86_64__).
* i86_64/atomic.s: AMD64/EM64T implementation.
2006-03-03 Martin Sebor <sebor@roguewave.com>
* wcodecvt.cpp (wcrtomb): Corrected declaration.
2006-02-02 Martin Sebor <sebor@roguewave.com>
* wcodecvt.cpp [_RWSTD_NO_WCRTOMB] (__rw_libc_do_out): Corrected
the spelling of wctomb() in conditionally compiled code.
Updated.
2006-02-01 Martin Sebor <sebor@roguewave.com>
* wcodecvt.cpp (__rw_libc_do_out): Removed the RWSTD_WCRTOMB macro and
instead explicitly spelled out the code the macro used to expand to.
(__rw_libc_do_unshift): Same.
(__rw_libc_do_in): Same for _RWSTD_MBRTOWC().
2006-02-01 Martin Sebor <sebor@roguewave.com>
* wctype.cpp (<stdlib.h>): Included for wctomb.
(_RWSTD_NO_V3_LOCALE): Removed dead macro.
(__rw_toupper): Used _STD instead of _V3_LOCALE.
(__rw_tolower): Same.
2006-01-19 Martin Sebor <sebor@roguewave.com>
* ChangeLog: Generated and added.
2006-01-19 Martin Sebor <sebor@roguewave.com>
* string.cpp [_RWSTD_NO_MEMCPY] (__rw_memcpy): Corrected logic
errors in conditionally compiled code.
[_RWSTD_NO_MEMCHR] (__rw_memchr): Same.
[_RWSTD_NO_MEMCMP] (__rw_memcmp): Same.
[_RWSTD_NO_STRLEN] (__rw_strlen): Same(!)
[_RWSTD_NO_WMEMCPY] (__rw_wmemcpy): Same.
[_RWSTD_NO_WMEMCHR] (__rw_wmemchr): Same.
[_RWSTD_NO_WMEMCMP] (__rw_wmemcmp): Same.
[_RWSTD_NO_WSTRLEN] (__rw_wcslen): Same.
2006-01-19 Martin Sebor <sebor@roguewave.com>
* string.cpp [_RWSTD_NO_MEMCPY] (__rw_memcpy): Explicitly cast void*
to char* before doing any arithmetic on the value.
(__rw_memchr): Same.
(__rw_memset): Same.
(__rw_memcmp): Same.
(__rw_memmove): Same. Added a missing return statement.
[_RWSTD_NO_WMEMMOVE] (__rw_wmemmove): Added a missing return statement.
2006-01-19 Martin Sebor <sebor@roguewave.com>
* wcodecvt.cpp [_RWSTD_NO_MBTOWC] (mbtowc): Declared when not
declared in <stdlib.h> but known to be defined in the libc binary.
(do_in, do_out, do_length): Guarded references to mbtowc() with
_RWSTD_NO_MBTOWC.
[_RWSTD_NO_MBRLEN && _RWSTD_NO_MBLEN] (__rw_libc_mbrlen): Silenced
an unused variable warning.
(do_unshift): Removed an unnecessary scope resolution operator
from a call to mbtowc().
2006-01-16 Martin Sebor <sebor@roguewave.com>
STDCXX-104
* wcodecvt.cpp (__rw_libc_do_out): Used the _RWSTD_WCSLEN() macro
instead of invoking wcslen() directly.
2006-01-14 Martin Sebor <sebor@roguewave.com>
* codecvt.cpp (StateT): Moved convenience typedef from __rw_mbsinit
to file scope and used it to declare the function's formal argument.
2006-01-14 Martin Sebor <sebor@roguewave.com>
* wcodecvt.cpp (StateT): New convenience typedef.
(__rw_libstd_do_out): Documented the purpose of dead code
and unreachable warnings.
2006-01-12 Martin Sebor <sebor@roguewave.com>
* codecvt.cpp: Removed assumptions about _RWSTD_MBSTATE_T being
a simple type (not really necessary after r368468 but it doesn't
hurt to be extra safe).
* wcodecvt.cpp: Same.
2006-01-12 Martin Sebor <sebor@roguewave.com>
STDCXX-108
* TIMEZONE.cpp: New test to determine whether the POSIX timezone
variable is declared in <time.h>.
* time_put.cpp (__rw_get_zone): Changed to return 0 instead of void
on success (and non-zero on error) and handled _RWSTD_NO_TIMEZONE.
(__rw_get_time_put_data): Handled __rw_get_zone failure.
2006-01-11 Andrew Black <ablack@roguewave.com>
STDCXX-103
* time_put.cpp [_RWSTD_NO_NL_LANGINFO] (<langinfo.h>): Guarded
against inclusion when the header is detected to be missing at
configuration time.
* _defs.h [_RWSTD_NO_WCHAR_H] (_RWSTD_ANSI_C_WCHAR_H): Defined
to <rw/_defs.h> when the header is absent on a platform.
2006-01-10 Martin Sebor <sebor@roguewave.com>
* _mbstate.h (_RWSTD_MBSTATE_T): New macro for std::mbstate_t,
::mbstate_t, the internal ::__mbstate_t (on Linux and Solaris),
char* on AIX, char on IRIX, and int for MSVC.
* iosfwd (_mbstate.h, _RWSTD_MBSTATE_T): Unconditionally included
and used the macro instead of referring to mbstate_t directly.
* _codecvt.h: Same.
* _locale.h: Same.
* _messages.cc: Same.
* _traits.h: Same.
* codecvt.cpp: Same.
* iso2022.cpp: Same.
* iso2022.h: Same.
* wcodecvt.cpp: Same.
2006-01-10 Martin Sebor <sebor@roguewave.com>
* string.cpp [_RWSTD_NO_WMEMCHR] (wmemchr): Corrected a typo
in function name.
2006-01-09 Martin Sebor <sebor@roguewave.com>
STDCXX-104
* collate.cpp (wsccoll, wcsxfrm, wcstombs): Declared when the functions
are known to be defined in the libc binary but not declared in the libc
headers.
(__rw_wcsxfrm): New. Just like wcsxfrm but implemented in terms of
mbstowcs and strxfrm when wcxfrm is not implemented by the system's
libc.
(_RWSTD_WCSXFRM): New macro expands to wcsxfrm or __rw_wcsxfrm.
(__rw_wcsnxfrm): Used _RWSTD_WCSXFRM.
[_RWSTD_NO_WCSCOLL] (collate_byname::do_compare): Implemented in terms
of do_transform when there is no support for wcscoll in libc.
2006-01-09 Martin Sebor <sebor@roguewave.com>
STDCXX-106
* memattr.cpp (__rw_memattr): Used getpagesize(3) instead of sysconf(3)
when neither _SC_PAGE_SIZE or _SC_PAGESIZE is #defined in <unistd.h>
(e.g., on BSD UNIX).
Restored errno to its original value if it got clobbered by one of the
called functions.
2006-01-07 Martin Sebor <sebor@roguewave.com>
* time_put.cpp (__rw_get_timepunct): Removed unnecessary qualification
from references to libc functions. Inserted a wide NUL character, not
just a narrow one, at the beggining of the __rw_time_t structure.
(__rw_put_time): NUL-terminated format string before passing it to
strftime and wcsftime.
2006-01-07 Martin Sebor <sebor@roguewave.com>
* locale_body.cpp (__rw_locale): Removed a stray std:: qualification
from a call to strlen().
(_C_is_managed): Eliminated a gcc -Wextra warning: operation may be
undefined.
2006-01-07 Martin Sebor <sebor@roguewave.com>
* string.cpp: New file with defitions of string helpers.
2006-01-07 Martin Sebor <sebor@roguewave.com>
* locale_core.cpp (_C_get_std_facet): Used size_t instead of the
_RWSTD_SIZE_T macro and explicitly cast the result of an expression
to the type to silence the asinine HP aCC +DD64 Warning (suggestion)
887: # Type 'int' is smaller than type 'unsigned long', unwanted
widening in value may result.
2006-01-05 Martin Sebor <sebor@roguewave.com>
* wctype.cpp (wchar.h): Included for wctomb().
2005-12-06 Martin Sebor <sebor@roguewave.com>
* mapfile.gcc: Exported additional symbols.
2005-12-05 Martin Sebor <sebor@roguewave.com>
* typeinfo.cpp: Corrected preprocessor guards around definitions
of class bad_typeid member functions.
2005-12-02 Martin Sebor <sebor@roguewave.com>
STDCXX-81
* assert.cpp: On Solaris 8 and beyond, declared the printstack function
instead of #including <ucontext.h>, the system header in which it is
declared, in order to avoid having to #define enabling macros (i.e.,
__EXTENSIONS__) and deal with the breakage when using a strict compiler
such as EDG eccp with the long long extension (used in some system other
headers) disabled.
2005-12-02 Martin Sebor <sebor@roguewave.com>
STDCXX-73
* typeinfo: Used guard macros appropriate for each class instead
of fudging it based on what appears to work in most cases (except
for MSVC 8).
* typeinfo.cpp: Same. Also indented preprocessor conditionals for
readability.
2005-12-01 Martin Sebor <sebor@roguewave.com>
* collate.cpp (__rw_strnxfrm): As a workaround for STDCXX-68 and
STDCXX-69, provided dummy destination buffers instead of passing
in 0 when calling strxfrm and wcsxfrm with the last argument of
0 in case the functions are buggy (such as those implemented by
MSVC) and try to write to the buffer anyway.
(__rw_wcsnxfrm): Same.
2005-12-01 Martin Sebor <sebor@roguewave.com>
STDCXX-80
* GNUmakefile: Wrote the definition of the MAPFLAGS variable to
makefile.in. Wrote out the definition of MAPFILE using/relative
to TOPDIR, and the definition of LIBDIR relative to BUILDDIR.
* GNUmakefile.lib: Appended MAPFILE to LDFLAGS, after MAPFLAGS.
* gcc.config: Defined MAPFLAGS on Solaris and defined MAPFILE
as a relative pathname WRT TOPDIR.
* mapfile.gcc-3: Renamed...
* mapfile.gcc: ...to this file (used with gcc 3 and beyond) and
populated it with exported symbols.
2005-11-30 Martin Sebor <sebor@roguewave.com>
STDCXX-76
* exception.cpp: (uncaught_exception): With MSVC 7 and better, used
__uncaught_exception() to implement std::uncaught_exception() instead
of relying on the global symbol.
2005-11-08 Martin Sebor <sebor@roguewave.com>
STDCXX-64
* ti_num_get.cpp: Silenced HP aCC warning 933: Null macro argument.
* ti_num_put.cpp: Same.
* ti_numpunct.cpp: Same.
2005-09-29 Martin Sebor <sebor@roguewave.com>
STDCXX-22
* _time_put.cc (__rw_put_time): Changed to an ordinary function.
* time_put.cpp (__rw_put_time): Changed linkage from internal to
external.
2005-09-28 Martin Sebor <sebor@roguewave.com>
STDCXX-43
* i86/atomic.s (__rw_atomic_add): renamed to __rw_atomic_add32.
(__rw_atomic_xchg): renamed to __rw_atomic_xchg32.
* sparc/atomic-64.s: Ditto.
* _mutex.h: Simplified by factoring out common code from platform
specific blocks to a single platform-independent block (wherever
possible).
(__rw_atomic_add): renamed to __rw_atomic_add32.
(__rw_atomic_xchg): renamed to __rw_atomic_xchg32.
2005-09-28 Martin Sebor <sebor@roguewave.com>
STDCXX-22
* time_put.cpp (__rw_put_time): Changed from a function template
and its two specializations to overloads of an ordinary function
to prevent an SGI MIPSpro 7.41 ICE.
2005-09-28 Martin Sebor <sebor@roguewave.com>
* time_put.cpp: Removed unnecessary scope resolution operators from
global names.
(__rw_put_time): Renamed the 6-argument overloads taking a character
pointer as the last argument to __rw_fmt_time in order to distinguish
them from the 12-argument function template and its specializations.
2005-09-19 Martin Sebor <sebor@roguewave.com>
* atomic.s: Included the correct IA64 implementation files, along
the lines of rev 230382 (inadvertently reverted in rev 290311).
2005-09-19 Martin Sebor <sebor@roguewave.com>
* atomic-ia64-32.s: Renamed...
* ia64/atomic.s: ...to this.
2005-09-19 Martin Sebor <sebor@roguewave.com>
* ia64/atomic.s: Renamed...
* ia64/atomic-64.s: ...to this for consistency with the other
assembly files.
2005-09-19 Martin Sebor <sebor@roguewave.com>
STDCXX-14 (part 2)
* atomic.S: Renamed...
* atomic-cxx.S: ...to this.
2005-09-19 Martin Sebor <sebor@roguewave.com>
* atomic-64.s: Changed the name of the included file to correspond
to its new location (see rev 290311).
2005-09-19 Martin Sebor <sebor@roguewave.com>
STDCXX-14 (part 1)
* src/atomic-i86.s: Renamed to...
* src/i86/atomic.s: ...this.
* src/atomic-ia64.s: Renamed to...
* src/ia64/atomic.s: ...this.
* src/atomic-pa2.s: Renamed to...
* src/parisc/atomic.s: ...this.
* src/atomic-pa2-64.s: Renamed to...
* src/parisc/atomic-64.s: ...this.
* src/atomic-sparc.s: Renamed to...
* src/sparc/atomic.s: ...this.
* src/atomic-sparc64.s Renamed to...
* src/sparc/atomic-64.s: ...this.
* src/atomic.s: Changed the names of included files according
to the above.
* GNUmakefile: Introduced the AS_EXT variable and set it to.S by
default (unless already defined in the .config file).
* makefile.common: Replaced platform-specific hackery with a more
general handling of assembly files.
* makefile.rules: Introduced the AS_EXT variable into the %.o: %.s
suffix rule and guarded the whole thing against expanding when AS_EXT
is not defined or valid.
* acc.config: Defined AS_EXT to .s.
* mipspro.config: Same.
* vacpp.config: Defined AS_EXT to an invalid value on AIX to prevent
the assembly of .{S,s} files (Linux will use the default extension
defined in GNUmakefile).
* eccp.config: Defined AS_EXT to an invalid value to disable the
processing of assembly files until a solution to invoke the system
assembler is implemented.
2005-09-15 Martin Sebor <sebor@roguewave.com>
STDCXX-21
* wcodecvt.cpp (__rw_libstd_do_out): Converted each character
to unsigned long before comparing its value against the surrogate
pair ranges in order to silence gcc warning on Cygwin (where
sizeof(wchar_t) == 2): comparison is always true due to limited
range of data type.
2005-09-15 Martin Sebor <sebor@roguewave.com>
STDCXX-19
* memattr.cpp: #defined _SC_PAGE_SIZE to _SC_PAGESIZE when the former
is not #defined (such as Cygwin).
STDCXX-20
* memattr.cpp: #defined _WIN32 when __CYGWIN__ is #defined to take
advantage of the Windows Memory Management API and to work aound
the lack of madvise().
2005-08-04 Nicole Willson <willson@roguewave.com>
Martin Sebor <sebor@roguewave.com>
STDCXX-11:
* include/rw/_mutex.h (__rw_atomic_preincrement,
__rw_atomic_predecrement, __rw_atomic_exhange): Added
long long overloads for 32-bit IA64.
* src/atomic.s: Conditionally #included atomic-ia64-32.s.
* src/atomic-ia64-32.s: New. Same as atomic-ia64.s except
for 32-bit mode.
2005-07-26 Martin Sebor <sebor@roguewave.com>
Set the svn:keywords property and enabled the expansion of the Id
keyword.
2005-07-19 Martin Sebor <sebor@roguewave.com>
Initial import of the Rogue Wave C++ Standard library 4.1.2.