2007-08-06 Martin Sebor * ChangeLog: Updated, keeping original TABs. 2007-07-27 Farid Zaripov * 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 STDCXX-486 * time_put.cpp (tzset): Added throw() to the declaration. 2007-07-13 Martin Sebor 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 STDCXX-508 * catalog.cpp (catopen): while() loop replaced to for() loop with checking for max iterations. 2007-07-08 Martin Sebor 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 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 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 * 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 * 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 * use_facet.h (_RWSTD_DEFINE_FACET_FACTORY): Documented macro and "constified" a local variable in its definition. 2007-07-05 Martin Sebor * 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 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 STDCXX-457 * podarray.cc: Updated license statement. * podarray.c: Same. * version.cpp: Updated copyright. 2007-06-23 Martin Sebor 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 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 * _error.h(__rw_free_what_buf): Removed inline in declaration. * exception.cpp(__rw_free_what_buf): The same. 2007-06-22 Farid Zaripov 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 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 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 * 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 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.cc): #included. 2007-06-08 Martin Sebor * 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 '' to 'wchar_t'. See STDCXX-445. 2007-06-07 Martin Sebor * _ctype.h (do_toupper, do_tolower, do_widen, do_narrow): Outlined virtual member functions of ctype since they can almost never be inlined anyway. * wctype.cpp: Same. 2007-06-06 Farid Zaripov STDCXX-188 * typeinfo.cpp: use ::_C_name or std::_C_name depending on _RWSTD_NO_STD_TYPE_INFO macro. 2007-06-05 Farid Zaripov STDCXX-188 * typeinfo.cpp: silenced warning: _C_name was declared but never referenced 2007-06-01 Martin Sebor 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 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 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 STDCXX-416 * stdexcept (logic_error): Declared dtor. * logic_error.cpp: New file. (logic_error): Defined class dtor 2007-04-07 Martin Sebor 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 * ctype.cpp (ctype_byname ctor): Asserted a precondition. (_RWSTD_NO_V3_LOCALE, _V3_LOCALE): Removed/replaced obsolete macros. 2007-03-07 Martin Sebor 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 * string.cpp (__rw_memchr, __rw_wmemchr): Fixed bug: the function returns incorrect result when nbytes == 0 and *src == c 2006-12-11 Martin Sebor 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 * 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 * 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 * memattr.cpp (__rw_memattr): Used msync() instead of the unreliable madvise() on IRIX. 2006-10-09 Martin Sebor * wcodecvt.cpp (__rw_libc_do_in): Corrected a typo in conditionally compiled code. 2006-10-09 Farid Zaripov 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 * 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 * exception.cpp [_MSC_VER]: #undefined _RWSTD_NO_VSNPRINTF after #define vsnprintf _vsnprintf 2006-10-03 Farid Zaripov Set svn:eol-style property. 2006-09-29 Farid Zaripov * _num_put.cc: Updated the licensing header * _select.h: The same * file.cpp: The same 2006-09-29 Farid Zaripov * _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 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 * 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 * messages.cpp: Constified locals and sanitized formatting. (_RWSTD_NO_V3_LOCALE): Removed dead macro. (_V3_LOCALE): Replaced with _STD. 2006-08-18 Martin Sebor * collate.cpp (podarray.cc): #included in order to be able to explicitly instantiate __rw_pod_array. 2006-08-14 Martin Sebor * podarray.h: Moved brace closing a namespace to the correct place. 2006-08-14 Martin Sebor 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 * 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 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 * include/rw/_mutex.h: Added missed _RWSTD_EXPORT directive. * src/exception.cpp: Added missed _RWSTD_EXPORT directive. 2006-06-15 Martin Sebor * atomic-64.s: Updated copyright notice. * atomic.s: Same. 2006-06-14 Martin Sebor * collate.cpp (wcstombs): Decorated with dllimport to silence MSVC warnings about incompatible DLL linkage. * wcodecvt.cpp (wctomb): Same. 2006-06-13 Martin Sebor 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 STDCXX-192 * atomic.s: Removed .type directives to prevent as errors on Mac OS X. 2006-05-12 Martin Sebor * 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 * 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 * 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 * 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 * _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 . * 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 * 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 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 * 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 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 on HP-UX. 2006-03-17 Martin Sebor * 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 * ti_filebuf.cpp (): Included before 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 * memattr.cpp (__rw_memattr): Handled EFAULT (set by HP-UX) in addition to ENOMEM. 2006-03-09 Martin Sebor * 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 * atomic-cxx.S: Changed copyright to the ASF. 2006-03-06 Martin Sebor 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 * wcodecvt.cpp (wcrtomb): Corrected declaration. 2006-02-02 Martin Sebor * wcodecvt.cpp [_RWSTD_NO_WCRTOMB] (__rw_libc_do_out): Corrected the spelling of wctomb() in conditionally compiled code. Updated. 2006-02-01 Martin Sebor * 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 * wctype.cpp (): 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 * ChangeLog: Generated and added. 2006-01-19 Martin Sebor * 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 * 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 * wcodecvt.cpp [_RWSTD_NO_MBTOWC] (mbtowc): Declared when not declared in 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 STDCXX-104 * wcodecvt.cpp (__rw_libc_do_out): Used the _RWSTD_WCSLEN() macro instead of invoking wcslen() directly. 2006-01-14 Martin Sebor * 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 * wcodecvt.cpp (StateT): New convenience typedef. (__rw_libstd_do_out): Documented the purpose of dead code and unreachable warnings. 2006-01-12 Martin Sebor * 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 STDCXX-108 * TIMEZONE.cpp: New test to determine whether the POSIX timezone variable is declared in . * 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 STDCXX-103 * time_put.cpp [_RWSTD_NO_NL_LANGINFO] (): 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 when the header is absent on a platform. 2006-01-10 Martin Sebor * _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 * string.cpp [_RWSTD_NO_WMEMCHR] (wmemchr): Corrected a typo in function name. 2006-01-09 Martin Sebor 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 STDCXX-106 * memattr.cpp (__rw_memattr): Used getpagesize(3) instead of sysconf(3) when neither _SC_PAGE_SIZE or _SC_PAGESIZE is #defined in (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 * 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 * 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 * string.cpp: New file with defitions of string helpers. 2006-01-07 Martin Sebor * 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 * wctype.cpp (wchar.h): Included for wctomb(). 2005-12-06 Martin Sebor * mapfile.gcc: Exported additional symbols. 2005-12-05 Martin Sebor * typeinfo.cpp: Corrected preprocessor guards around definitions of class bad_typeid member functions. 2005-12-02 Martin Sebor STDCXX-81 * assert.cpp: On Solaris 8 and beyond, declared the printstack function instead of #including , 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 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 * 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 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 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 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 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 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 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 * 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 * atomic.s: Included the correct IA64 implementation files, along the lines of rev 230382 (inadvertently reverted in rev 290311). 2005-09-19 Martin Sebor * atomic-ia64-32.s: Renamed... * ia64/atomic.s: ...to this. 2005-09-19 Martin Sebor * ia64/atomic.s: Renamed... * ia64/atomic-64.s: ...to this for consistency with the other assembly files. 2005-09-19 Martin Sebor STDCXX-14 (part 2) * atomic.S: Renamed... * atomic-cxx.S: ...to this. 2005-09-19 Martin Sebor * atomic-64.s: Changed the name of the included file to correspond to its new location (see rev 290311). 2005-09-19 Martin Sebor 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 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 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 Martin Sebor 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 Set the svn:keywords property and enabled the expansion of the Id keyword. 2005-07-19 Martin Sebor Initial import of the Rogue Wave C++ Standard library 4.1.2.